Google maps API区域参数不会从文本搜索查询的格式化地址参数中省略国家/地区名称

时间:2018-03-30 13:11:22

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

我正在尝试为美国实现谷歌地图API文本搜索查询结果。 用户可能会输入不明确的地址查询,这就是我选择文本搜索请求API而不是谷歌提供的其他APIS的原因。

我使用以下网址 description(关键是错误的,出于保密目的)

我知道尽管添加了区域参数,我可能会根据其他国家/地区的相关性获得结果。查询中存在的纬度和经度也不是来自美国。

但是根据Google使用区域参数时提供的文档:

  

使用此参数时,对于指定区域中的结果,结果的formatted_address中将省略国家/地区名称

我得到的回复没有省略国名,

响应的一部分如下:

"results" : [
  {
     "formatted_address" : "Maharashtra, India",
     "geometry" : {
        "location" : {
           "lat" : 19.2183307,
           "lng" : 72.9780897
        },
        "viewport" : {
           "northeast" : {
              "lat" : 19.296441,
              "lng" : 73.07666159999999
           },
           "southwest" : {
              "lat" : 19.1313429,
              "lng" : 72.926259
           }
        }
     }]

我也尝试使用components参数代替region参数,但我想它只适用于自动完成API。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

  1. 你自己粘贴了这句话
  2.   

    国家/地区名称省略指定区域的结果

    在您的示例查询中,您在印度指定了location,在“us”中指定了一个区域(这没有任何意义)所以在这种情况下,国家/地区名称被省略,这是隐含的预期的行为。

    如果您执行相同的请求,只指定区域(印度的in),则格式化的地址不包含国家/地区:

    https://maps.googleapis.com/maps/api/place/textsearch/json?%20sensor=false&query=thane&region=in

    {
      "html_attributions": [],
      "results": [{
        "formatted_address": "Maharashtra",
        "geometry": {
          "location": {
            "lat": 19.2183307,
            "lng": 72.9780897
          },
          "viewport": {
            "northeast": {
              "lat": 19.296441,
              "lng": 73.07666159999999
            },
            "southwest": {
              "lat": 19.1313429,
              "lng": 72.926259
            }
          }
        },
        "icon": "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
        "id": "5a575922f6db500ba22b52c62751717dd2548e0b",
        "name": "Thane",
        "photos": [{
          "height": 576,
          "html_attributions": [
            "\u003ca href=\"https://maps.google.com/maps/contrib/105961144843321217972/photos\"\u003eA Google User\u003c/a\u003e"
          ],
          "photo_reference": "CmRaAAAAXwGLh6JweZeWjWdKDFbKvdUP7rR5XWwNeZ4vImjPagRztcOVoTsQQdkjnstw3NkjWPBQja3rFVo6o14-KspWomJi-8wCP5ViiNAJgkCYllSc1LUF_UsoxzWM5pTQzGI_EhAjL3hmEjPCFQPkvmu4nTkOGhTaSXKV4u3aasoPi-QILWPfKI6LnQ",
          "width": 786
        }],
        "place_id": "ChIJWf12_vy45zsRgwLF94V9Ns8",
        "reference": "CmRbAAAAJCtYPdY98PuNeZt1quzUSGMYGZIJAUAtt17HlcZzOAU0tAsXttmjJjn2dUWjg57wm3d3N_6vU57uZMjXzokFf4HIIDB6DpWX9INXYc-GSfcneQQYoJottDmrzdCnGCaYEhA-R7L3cmzO0HQw6bHuzCUPGhQLfvZ-YgwMIpG-D3V2UYirW71iCw",
        "types": ["locality", "political"]
      }],
      "status": "OK"
    }
    
    1. 文档还提到了
    2.   

      如果指定位置参数,还必须指定半径参数。

      现在,如果您的目标是根据某个区域进行结果分析,那么我认为使用位置和半径并不合理。