在查询Google Maps API时,我得到的结果与#34;纽约,美国和#34;相同。和#34;纽约,纽约,美国"

时间:2017-02-03 20:48:37

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

我们的网站上有一个嵌入式搜索栏,它使用Google Maps API提供建议和结果。当用户搜索"纽约"并特别点击建议,表明他们正在搜索纽约州,这个api呼叫是:

https://maps.googleapis.com/maps/api/js/GeocodeService.Search?4sNew%20York%2C%20United%20States&7sUS&8m2&1scountry&2sUS&9sen-US&callback=xdc._ohwoca&token=44216

当他们只是输入"纽约"并点击回车,或选择表示"纽约,纽约"的建议,进行此API呼叫:

https://maps.googleapis.com/maps/api/js/GeocodeService.Search?4sNew%20York%2C%20NY%2C%20United%20States&7sUS&8m2&1scountry&2sUS&9sen-US&callback=xdc._n2ga8u&token=62787

问题是返回的JSON在两者之间是相同的,但回调标题除外:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "New York",
               "short_name" : "New York",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "New York",
               "short_name" : "NY",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "New York, NY, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 40.9175771,
                  "lng" : -73.70027209999999
               },
               "southwest" : {
                  "lat" : 40.4773991,
                  "lng" : -74.25908989999999
               }
            },
            "location" : {
               "lat" : 40.7127837,
               "lng" : -74.0059413
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 40.9152555,
                  "lng" : -73.70027209999999
               },
               "southwest" : {
                  "lat" : 40.4960439,
                  "lng" : -74.25573489999999
               }
            }
         },
         "place_id" : "ChIJOwg_06VPwokRYv534QaPC8g",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}

这会导致向我们的用户提供不正确的搜索结果。具体来说,我们关闭了"types"字段。由于两个文件都指明用户搜索了一个地点'我们总是返回纽约市而不是纽约州的结果。

这是Google Maps API中的错误吗?我们是否需要指定一些标志来强制更严格地解释我们发送的内容?其他想法?

请注意,如果您对面向www.google.com/maps的用户执行此搜索,您将获得NY State而不是NYC。我不太了解该页面与API的不同之处,以了解其中的内容。

0 个答案:

没有答案