Google自动填写地点,从预测中忽略用户所在国家/地区的名称

时间:2015-04-06 07:34:02

标签: google-maps google-places-api google-geocoder google-places

我正在使用google.maps.places.AutocompleteService();获取查询预测。是否可以从用户位置的预测列表中省略国家/地区名称。为了eaxmple。如果我在美国,当我寻找sanfransisco。它不应该在预测列表中显示美国(国家名称)。但如果我在印度寻找位置德里,它应该显示'德里印度'(国名)。

这是否可以使用此服务或任何其他谷歌API服务。

请注意,我需要建议列表,而不是与文本字段绑定的内容。 非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果不手动处理结果,则无法进行此操作。因此,在收到json数据作为响应后,您需要检查建议的国家/地区是否与用户的国家/地区相同,如果是,则不在文本字段中显示。

JSON响应如下所示:在值字段中,您可以检查国家/地区,并通过将其与应用程序中某处需要设置的用户所在国家/地区进行比较来决定是否显示该国家/地区。

我相信JSON响应将保存在List<HashMap<String, String>>中,因此您可以循环并省略该国家/地区。

{
  "status": "OK",
  "predictions" : [
      {
         "description" : "Paris, France",
         "id" : "691b237b0322f28988f3ce03e321ff72a12167fd",
         "matched_substrings" : [
            {
               "length" : 5,
               "offset" : 0
            }
         ],
         "place_id" : "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
         "reference" : "CjQlAAAA_KB6EEceSTfkteSSF6U0pvumHCoLUboRcDlAH05N1pZJLmOQbYmboEi0SwXBSoI2EhAhj249tFDCVh4R-PXZkPK8GhTBmp_6_lWljaf1joVs1SH2ttB_tw",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Paris"
            },
            {
               "offset" : 7,
               "value" : "France"
            }
         ],
         "types" : [ "locality", "political", "geocode" ]
      },
      {
         "description" : "Paris Avenue, Earlwood, New South Wales, Australia",
         "id" : "359a75f8beff14b1c94f3d42c2aabfac2afbabad",
         "matched_substrings" : [
            {
               "length" : 5,
               "offset" : 0
            }
         ],
         "place_id" : "ChIJrU3KAHG6EmsR5Uwfrk7azrI",
         "reference" : "CkQ2AAAARbzLE-tsSQPgwv8JKBaVtbjY48kInQo9tny0k07FOYb3Z_z_yDTFhQB_Ehpu-IKhvj8Msdb1rJlX7xMr9kfOVRIQVuL4tOtx9L7U8pC0Zx5bLBoUTFbw9R2lTn_EuBayhDvugt8T0Oo",
         "terms" : [
            {
               "offset" : 0,
               "value" : "Paris Avenue"
            },
            {
               "offset" : 14,
               "value" : "Earlwood"
            },
            {
               "offset" : 24,
               "value" : "New South Wales"
            },
            {
               "offset" : 41,
               "value" : "Australia"
            }
         ],

...

参考:https://developers.google.com/places/webservice/autocomplete#location_biasing