将具有Google地理位置信息的Intent从Google Maps发送到Android应用

时间:2018-11-09 22:07:39

标签: android google-maps

我想将Intent从Google Maps发送到我正在开发的Android应用程序,其中包括地理信息(纬度,经度等)。

我知道这需要设置一个意图过滤器,但是到目前为止,我唯一使用的过滤器是纯文本/文本过滤器:

<intent-filter>
    <action android:name="android.intent.action.SEND"/>
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="text/plain"/>
</intent-filter>

但这只是给我文字描述,如下所示:

899 Green St, San Francisco, CA 94133, https://goo.gl/maps/R4A82MNvUpA2

我已经尝试了以下方法,但是没有用(意图甚至没有在Google Maps中注册):

<intent-filter>
    <category android:name="android.intent.category.DEFAULT" />
    <action android:name="android.intent.action.VIEW" />
    <data android:scheme="geo" />
</intent-filter>

有人知道该怎么做吗?我正在使用Android 9(Pie)。

2 个答案:

答案 0 :(得分:3)

我遇到了类似的问题,并且找到了解决方法。

使用地理编码获取位置数据:

https://maps.googleapis.com/maps/api/geocode/json?address=899+Green+St,+San+Francisco,+CA+94133&key=your_key

您将把lat和lng以及其他一系列数据:

{
    "results": [
        {
            "address_components": [
                {
                    "long_name": "899",
                    "short_name": "899",
                    "types": [
                        "street_number"
                    ]
                },
                {
                    "long_name": "Green Street",
                    "short_name": "Green St",
                    "types": [
                        "route"
                    ]
                },
                {
                    "long_name": "Russian Hill",
                    "short_name": "Russian Hill",
                    "types": [
                        "neighborhood",
                        "political"
                    ]
                },
                {
                    "long_name": "San Francisco",
                    "short_name": "SF",
                    "types": [
                        "locality",
                        "political"
                    ]
                },
                {
                    "long_name": "San Francisco County",
                    "short_name": "San Francisco County",
                    "types": [
                        "administrative_area_level_2",
                        "political"
                    ]
                },
                {
                    "long_name": "California",
                    "short_name": "CA",
                    "types": [
                        "administrative_area_level_1",
                        "political"
                    ]
                },
                {
                    "long_name": "United States",
                    "short_name": "US",
                    "types": [
                        "country",
                        "political"
                    ]
                },
                {
                    "long_name": "94133",
                    "short_name": "94133",
                    "types": [
                        "postal_code"
                    ]
                }
            ],
            "formatted_address": "899 Green St, San Francisco, CA 94133, USA",
            "geometry": {
                "bounds": {
                    "northeast": {
                        "lat": 37.7989435,
                        "lng": -122.4128121
                    },
                    "southwest": {
                        "lat": 37.7982939,
                        "lng": -122.4138552
                    }
                },
                "location": {
                    "lat": 37.7988047,
                    "lng": -122.4131897
                },
                "location_type": "ROOFTOP",
                "viewport": {
                    "northeast": {
                        "lat": 37.79996768029149,
                        "lng": -122.4119846697085
                    },
                    "southwest": {
                        "lat": 37.7972697197085,
                        "lng": -122.4146826302915
                    }
                }
            },
            "place_id": "ChIJrd0tGO6AhYARxCp3djZ6Ka0",
            "types": [
                "premise"
            ]
        }
    ],
    "status": "OK"
}

答案 1 :(得分:-1)

您感兴趣的是位置信息。

有一些选择

  1. 从Google地图接收意图。  您只会以带有google mapa网址的文本格式获取它

    • 如果未在Google地图上注册该地点,则您会发现经纬度很长,包含在网址中,如“掉落的大头针” 中央邦Sehore附近的酒店 https://maps.google.com/?q=22.959831,76.863252
    • 最后两个数字是lat和long。
    • 但是如果该地点已注册,您会得到类似Govardhan Ecovillage(GEV)的信息 马哈拉施特拉邦帕加尔Wada(Taluka),Galtare村,Guhir Road 091672 04666 https://maps.google.com/?cid=18415851068014862302
      • 您需要长时间使用Cid在google地图上查询纬度。
  2. 使用GPS获取位置