0

우리 사이트에는 Google Maps API를 활용 한 제안 된 검색 바가 있습니다 결과. 사용자는 "뉴욕"에 대한 검색 특히 그들은 뉴욕 주에 대한 검색이 API를 호출이 있음을 나타냅니다하는 제안을 클릭하면 :Google Maps 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에 직면 한 사용자에 대해이 검색을 수행하면 NYC가 아닌 NY 주를 얻을 수 있습니다. 그 페이지가 API와 어떻게 다른지 잘 모르겠습니다.

+0

문제를 재현 할 수있는 [Minimal, Complete, Verifiable example] (http://stackoverflow.com/help/mcve)를 제공해주십시오. 이 결과를 어떻게 얻습니까? 어떤 버전의 API를 사용하고 있습니까? 나는 같은 결과를 얻지 못하고있다. – MrUpsidown

+0

@MrUpsidown 제 링크가 문제를 재현 할 수있는 방법을 제공한다고 생각했습니다. maps.googleapis.com/maps-api-v3/api/js/27/12/에서 API 버전을 사용 중입니다. 또한 Google의 자체 API 문서 (https://developers.google.com/maps/documentation/geocoding/intro)에서 비 뉴욕 주를 시험해 볼 수 있으며 상태가 표시됩니다. "NY"또는 "New York"을 입력하면 주보다는 도시를 되 찾을 수 있습니다. – Necoras

답변

1

Google지도 팀에 issue 개를 오픈했습니다. 그들의 엔지니어에 따르면, 이것은 예상되는 행동입니다. 그들은 대부분의 사용자가 주보다는 "뉴욕"을 검색 할 때 "뉴욕시"를 특별히 보려고한다고 믿습니다. 우리는 "City"매개 변수없이 "New York"을 지정한 경우 사용자의 검색어를 포착하고 Google 시스템에서 주 검색을 강제 종료했습니다.