从 Google 地图向带有地理信息的 Android 应用发送 Intent

Posted

技术标签:

【中文标题】从 Google 地图向带有地理信息的 Android 应用发送 Intent【英文标题】:Sending an Intent from Google Maps to an Android app with geo information 【发布时间】:2019-04-13 12:05:30 【问题描述】:

我想从 Google 地图向我正在开发的 android 应用发送 Intent,其中将包括地理信息(纬度、经度等)。

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

<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 地图中注册):

<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)。

【问题讨论】:

什么时候发送意图? 当分享按钮被按下时 【参考方案1】:

我遇到了类似的问题,我找到了办法。

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

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"

【讨论】:

关于地点 ID 的概述:developers.google.com/places/place-id 嘿@Sean 如果宽限期结束并且他没有接受我的回答,那么赏金会发生什么。??

以上是关于从 Google 地图向带有地理信息的 Android 应用发送 Intent的主要内容,如果未能解决你的问题,请参考以下文章

带有多个信息窗口的Google地图

带有两个可点击按钮或 ImageView 的 Google 地图 v2 自定义信息窗口

前向地理编码

怎么使用谷歌地图

谷歌地图怎么使用

交通地图背后的软件概念是什么?