无论我们使用什么搜索字词,Google地理编码API始终会从英国中心返回一个长度

时间:2016-08-05 10:00:36

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

我们很长一段时间以来一直在使用这个API。我们可以看到从英国和英国退回的地址。因此将地理编码URL更改为仅限于英国。

http://maps.googleapis.com/maps/api/geocode/xml?latLng=54,-2&address=gdfgsdgsd,GB

http://maps.googleapis.com/maps/api/geocode/xml?latLng=54,-2&address=gdfgsdgsd,GB&安培;组分=国家:GB

请检查上述两个网址的结果。 第一个URL返回ZERO_RESULTS,这是正确的。 无论我们使用什么搜索词,第二个总是从英国中心返回一个纬度。

您也可以尝试替换'地址'复制问题: 452376452334,^ $%^ $%^ $%,458352462354 ^ $%^ $%^

2 个答案:

答案 0 :(得分:2)

根据Google地理编码API关于Component Filtering

  

包含组件过滤器的查询仅返回地理编码   与过滤器匹配的结果。如果未找到匹配项,则为地理编码器   将返回与过滤器本身匹配的结果。

请求:

https://maps.googleapis.com/maps/api/geocode/json?address=someincomprehesibleaddress&components=administrative_area:TX|country:US&key=YOUR_API_KEY

{
"results" : [
      {
         "address_components" : [
            {
               "long_name" : "Texas",
               "short_name" : "TX",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Texas, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 36.5007041,
                  "lng" : -93.5080389
               },
               "southwest" : {
                  "lat" : 25.8371638,
                  "lng" : -106.6456461
               }
            },
            "location" : {
               "lat" : 31.9685988,
               "lng" : -99.9018131
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 36.5015087,
                  "lng" : -93.5080389
               },
               "southwest" : {
                  "lat" : 25.8371638,
                  "lng" : -106.6456461
               }
            }
         },
         "partial_match" : true,
         "place_id" : "ChIJSTKCCzZwQIYRPN4IGI8c6xY",
         "types" : [ "administrative_area_level_1", "political" ]
      }
   ],
   "status" : "OK"
}

仅当您提供相互排斥的过滤器时,组件过滤才会返回ZERO_RESULTS响应。

请求:

https://maps.googleapis.com/maps/api/geocode/json?components=administrative_area:TX|country:FR&key=YOUR_API_KEY

{
   "results" : [],
   "status" : "ZERO_RESULTS"
}

答案 1 :(得分:1)

看起来我找到了解决此问题的方法。 我现在使用的URL模式是: http://maps.googleapis.com/maps/api/geocode/xml?address=Leeds,UK|GB

以下网址现在提供ZERO_RESULTs http://maps.googleapis.com/maps/api/geocode/xml?address=gdfgsdgsd,UK|GB

正如Joyson建议的那样,我们也可以检查返回的国家&显示错误消息。