Лучший способ получить список мест на уровне штата (Google places api)

#google-maps-api-3 #google-places-api

#google-maps-api-3 #google-places-api

Вопрос:

В настоящее время я работаю над проектом с требованием получить список мест на уровне штата. Я пробовал следующие два API, но ни один из них не может на 100% соответствовать требованиям:

  • API автозаполнения Google. Чтобы избавиться от подробных мест на уровне улиц, которые я передал types: ["(regions)"] , что нормально с точки зрения бизнеса (хотя идеально было бы только на уровне штата, но уровень города все еще в порядке). Однако, когда пользовательский поиск по Washington, USA API возвращает только 5 городов с именем Вашингтон, и пользователю приходится искать WA, USA вместо этого.
  • API Google Places. Этот API может успешно справиться Washington с описанным выше случаем. Однако я не смог найти способ ограничить API, чтобы избавиться от мест на уровне улицы, если я не отфильтрую возвращенные места по types атрибуту.

Кто-нибудь знает, какой API лучше всего использовать для этого сценария?

Комментарии:

1. Что такое место уровня штата? Вы ищете штаты / провинции для всех стран?

2. @geocodezip Спасибо за ответ. Я хочу, чтобы при поиске Washington, USA API возвращал штат Вашингтон, а не города с именем Вашингтон, но в других штатах. На данный момент единственное решение, которое у меня есть, — сохранить результаты API Google Places, которые имеют administrative_area_level_1 тип.

Ответ №1:

Выполнение запроса текстового поиска со строкой поиска, поскольку Washington, USA я получаю только 1 результат, который, по-видимому, является состоянием WA.

Запрос (используйте свой собственный ключ API): https://maps.googleapis.com/maps/api/place/textsearch/json ?запрос= Вашингтон, USAamp;language=ruamp;key=YOUR_API_KEY

Результат:

 {
   "html_attributions" : [],
   "results" : [
      {
         "formatted_address" : "Washington, USA",
         "geometry" : {
            "location" : {
               "lat" : 47.7510741,
               "lng" : -120.7401385
            },
            "viewport" : {
               "northeast" : {
                  "lat" : 49.0024442,
                  "lng" : -116.91558
               },
               "southwest" : {
                  "lat" : 45.543541,
                  "lng" : -124.8489739
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/geocode-71.png",
         "name" : "Washington",
         "photos" : [
            {
               "height" : 2124,
               "html_attributions" : [
                  "u003ca href="https://maps.google.com/maps/contrib/101488181553592859672"u003eArko Bhattacharjeeu003c/au003e"
               ],
               "photo_reference" : "ATtYBwLa-P4aH5Uh3rD2CKaZmwb8HyNPWZ1WZUnw_y4iaUouh4B6BKOwAo52kkiBNSfn3MJmkW6Ju50H_e7zhxs5m5oBJva-dywtTv2cF_OgX6COeUfnre_SVmXw1qA4Fof924hSOvutwFnjsO6MJ1R71ozhBfieWrtvN9dSwVbgQbvMu-3y",
               "width" : 1440
            }
         ],
         "place_id" : "ChIJ-bDD5__lhVQRuvNfbGh4QpQ",
         "reference" : "ChIJ-bDD5__lhVQRuvNfbGh4QpQ",
         "types" : [ "administrative_area_level_1", "political" ]
      }
   ],
   "status" : "OK"
}
 

Дважды проверьте это, выполнив запрос сведений о месте с возвращенным идентификатором места ChIJ-bDD5__lhVQRuvNfbGh4QpQ :

Запрос (используйте свой собственный ключ API): https://maps.googleapis.com/maps/api/place/details/json?place_id=ChIJ-bDD5__lhVQRuvNfbGh4QpQamp;language=enamp;key=YOUR_API_KEY

Результат:

 {
   "html_attributions" : [],
   "result" : {
      "address_components" : [
         {
            "long_name" : "Washington",
            "short_name" : "WA",
            "types" : [ "administrative_area_level_1", "political" ]
         },
         {
            "long_name" : "United States",
            "short_name" : "US",
            "types" : [ "country", "political" ]
         }
      ],
      "adr_address" : "u003cspan class="region"u003eWashingtonu003c/spanu003e, u003cspan class="country-name"u003eUSAu003c/spanu003e",
      "formatted_address" : "Washington, USA",
      "geometry" : {
         "location" : {
            "lat" : 47.7510741,
            "lng" : -120.7401386
         },
         "viewport" : {
            "northeast" : {
               "lat" : 49.00256875707851,
               "lng" : -116.9155800245149
            },
            "southwest" : {
               "lat" : 45.54354101516995,
               "lng" : -124.8489739457119
            }
         }
      },
      "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/geocode-71.png",
      "name" : "Washington",
      "photos" : [],
      "place_id" : "ChIJ-bDD5__lhVQRuvNfbGh4QpQ",
      "reference" : "ChIJ-bDD5__lhVQRuvNfbGh4QpQ",
      "types" : [ "administrative_area_level_1", "political" ],
      "url" : "https://maps.google.com/?q=Washington, USAamp;ftid=0x5485e5ffe7c3b0f9:0x944278686c5ff3ba",
      "utc_offset" : -480,
      "website" : "http://www.access.wa.gov/"
   },
   "status" : "OK"
}