【问题标题】:Android - Getting a list of nearby placesAndroid - 获取附近地点的列表
【发布时间】:2014-08-23 02:57:44
【问题描述】:

我需要能够在我的应用中获取附近地点的列表。我也希望它在 NavigationDrawer 中。就像 Google Now 的“附近地点”卡片一样:

虽然我希望将其包装在 NavigationDrawer 中。有什么办法吗?

谢谢。

【问题讨论】:

    标签: java android google-places-api google-now


    【解决方案1】:

    Google Places API 是基于网络的服务,因此您需要发送请求至:

    https://maps.googleapis.com/maps/api/place/search/json
      ?location=COORDINATES_IN_LAT_LONG
      &radius=DISTANCE_IN_METERS
      &key=YOUR_API_KEY  
    

    您将得到的结果将是 JSON,使用 GSON 很容易解析:

    {
       "html_attributions" : [],
       "results" : [
          {
             "geometry" : {
                "location" : {
                   "lat" : 37.79593620000001,
                   "lng" : -122.40000320
                },
                "viewport" : {
                   "northeast" : {
                      "lat" : 37.80475270,
                      "lng" : -122.38399580
                   },
                   "southwest" : {
                      "lat" : 37.78711860,
                      "lng" : -122.41601060
                   }
                }
             },
             "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
             "id" : "7498697d87cb1a28280277cb7825e0a4c21387d6",
             "name" : "Financial District",
             "reference" : "CoQBegAAAFrgJ9ZyeZrV_a9QWteNl9hrNGq-9qhPIP0M9yIL00HhKzBJNERhX95nEnAAtgBKqc2e51Yq2-OG3g-D8YZ20pcFKK7n3Pipd3Rpz7JmFedlg-gimYv3YGhOYVhblHYhhJM8y48J7tbDT4QPKsnumhsyhTf-5YktikanlFKt3NKNEhDwKmUyXRDhsYS1-rzHCZSRGhQP5VmDcuvvxvYE7e7dC-0PWYhfjw",
             "types" : [ "neighborhood", "political" ],
             "vicinity" : "San Francisco"
          },
          {
             "geometry" : {
                "location" : {
                   "lat" : 37.7856560,
                   "lng" : -122.4012520
                }
             },
             "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/art_gallery-71.png",
             "id" : "5e693f5ae4f1cd1512732b1568ff0e4b67ab0291",
             "name" : "San Francisco Museum of Modern Art",
             "rating" : 4.30,
             "reference" : "CpQBgQAAAO9fVOGklWz3ugJeJ0DuVibD60yFJ_z19hm5Cm7f4NYsIECaVqC2yhQ746w2vMmAJmA-jYNNwp5_ot7hsRxVmcbO1TdvBtYG3LZ6JD2vxgMXSCFK3U2McAywoOsbPwjU-9fN6jtHmvuiCXNDamIUP4IX462NsmyO06digENJcMoLES75jTTvVBjuRvNFRdIJnRIQDtf7lhNra8eTmAYy1PKKnhoU7hDZ-Y6TB8HRnHBsVDnsWnL5E0o",
             "types" : [ "art_gallery", "store", "establishment" ],
             "vicinity" : "151 Third Street, San Francisco"
          },
          {
             "geometry" : {
                "location" : {
                   "lat" : 37.7791590,
                   "lng" : -122.4158080
                }
             },
             "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/library-71.png",
             "id" : "b1c83827c82c9fa59ffcdad652d1e8a1b04a4ae8",
             "name" : "San Francisco Public Library",
             "rating" : 4.20,
             "reference" : "CoQBewAAAP-wCLLWVV2kys-vTPPr9LZPUkZXqrUUjG6LTRmcVARlehuh_SkvisDlH5X6WgoX6BG16e7RSS94xxhZbj0B3i7gC1KFDz_Oc88hK6YUj3w8Ix0N5M6UmKfAIXq1CYXLMrt_KAR7WsNF65MiSnj-Nqu0AMxwW-dMvRfmHOk7xGW0EhCyRZgNzYmPV08XAHZ-HBx_GhQYlLxuAU4MH8FvkdMWbQ1Xvf7WxA",
             "types" : [ "library", "establishment" ],
             "vicinity" : "100 Larkin Street, San Francisco"
          },  
    

    然后,您可以将其传递给导航抽屉的适配器,如果您愿意的话。如果您想在离线模式下在导航抽屉中显示此数据,请将此数据缓存在 txt 文件中并在启动应用程序时读取它。通过仅在用户选择时刷新此数据,这还将具有节省带宽的额外优势。

    如果您想要按距离对地点进行排名,请将&rankby=distance 添加到您的请求网址。

    Source

    【讨论】:

    • 你能给我举个例子来说明如何在应用程序中实现它吗?
    • 这将是相当长的,但请查看 HttpURLConnectionURL 类来发出请求和 GSON 反序列化文本。
    • 谢谢,我去看看。
    • 有免费的替代品吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多