Google Maps网站是否会返回与Google Maps Geocoding API返回的第一个结果相同的内容?

时间:2016-02-29 11:08:00

标签: google-maps google-maps-api-3

有人知道Google地图在显示搜索位置的纬度/经度时是否有任何默认设置?

我正在使用Google Maps Geocoding API查找用户输入的搜索地址的地理位置lat / lng值。我希望尽可能将结果与Google地图进行匹配 - 是否可以像使用API​​返回的第一个结果一样简单?

示例:如果我在Google地图中搜索“Kassel”,则lat / lng结果为51.3149724,9.3904035。

Google Maps result for searching "Kassel"

使用Google API搜索会产生两个结果,其中第一个结果的位置值比第二个结果更接近Google地图:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Kassel",
               "short_name" : "Kassel",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Kassel",
               "short_name" : "KS",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Hesse",
               "short_name" : "HE",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Germany",
               "short_name" : "DE",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Kassel, Germany",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 51.36940509999999,
                  "lng" : 9.570128199999999
               },
               "southwest" : {
                  "lat" : 51.2603671,
                  "lng" : 9.3511015
               }
            },
            "location" : {
               "lat" : 51.3127114,
               "lng" : 9.4797461
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 51.36940509999999,
                  "lng" : 9.570128199999999
               },
               "southwest" : {
                  "lat" : 51.2603671,
                  "lng" : 9.3511015
               }
            }
         },
         "place_id" : "ChIJHWx6n04_u0cRRxciWD1jhC8",
         "types" : [ "locality", "political" ]
      },
      {
         "address_components" : [
            {
               "long_name" : "Kassel",
               "short_name" : "Kassel",
               "types" : [ "sublocality_level_1", "sublocality", "political" ]
            },
            {
               "long_name" : "Biebergemünd",
               "short_name" : "Biebergemünd",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Darmstadt",
               "short_name" : "DA",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Hessen",
               "short_name" : "HE",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Germany",
               "short_name" : "DE",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "63599",
               "short_name" : "63599",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "Kassel, 63599 Biebergemünd, Germany",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 50.2173498,
                  "lng" : 9.3059744
               },
               "southwest" : {
                  "lat" : 50.18299649999999,
                  "lng" : 9.271353399999999
               }
            },
            "location" : {
               "lat" : 50.2066898,
               "lng" : 9.279060399999999
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 50.2173498,
                  "lng" : 9.286410699999999
               },
               "southwest" : {
                  "lat" : 50.2006739,
                  "lng" : 9.271353399999999
               }
            }
         },
         "place_id" : "ChIJG4zo1CMvvUcRQPWOqlJDIgo",
         "types" : [ "sublocality_level_1", "sublocality", "political" ]
      }
   ],
   "status" : "OK"
}

我能找到的唯一文档如下:

为什么Google Maps API地理编码器提供的位置与Google地图不同? API地理编码器和Google地图地理编码器有时会使用不同的数据集(具体取决于国家/地区)。 API地理编码器偶尔会使用新数据进行更新,因此您可以预期结果会随着时间的推移而发生变化或改善。

https://developers.google.com/maps/faq#geocoder_differences

2 个答案:

答案 0 :(得分:0)

(受过教育的猜测)

我相信Google地图还会根据您帐户中之前的地图和位置搜索为您提供结果。

很难相信他们使用提供给开发人员的相同API而没有重大改进。

结果还可能会考虑以前的网络搜索,您的位置等。

开发人员API只是他们使用的一小部分功能。

希望这有帮助!

答案 1 :(得分:0)

您无法将结果与Google地图完全匹配,因为Google Maps Geocoding API会返回受发送请求的地区(通常是国家/地区)影响的地址结果。例如,搜索“旧金山”可能会返回不同的结果,如果从美国境内的域发送,而不是从西班牙发送的域。

地理编码结果可能会对主要Google地图应用程序正式启动的每个域产生偏差。请注意,偏置仅优先于特定域的结果;如果在该域之外存在更多相关结果,则可以包含它们。

有关详情,请点击此link