API геокода Google не возвращает район в ответ

Я использую Google Geocode API для получения окрестностей по широте и долготе.

Ниже указан URL-адрес запроса -

https://maps.googleapis.com/maps/api/geocode/json?latlng=-15.535573,-47.336828&sensor=true

Ниже ответ -

{
    "results": [
        {
            "address_components": [
                {
                    "long_name": "1224-1282",
                    "short_name": "1224-1282",
                    "types": [
                        "street_number"
                    ]
                },
                {
                    "long_name": "Rua Visconde de Porto Seguro",
                    "short_name": "R. Visc. de Porto Seguro",
                    "types": [
                        "route"
                    ]
                },
                {
                    "long_name": "Centro",
                    "short_name": "Centro",
                    "types": [
                        "political",
                        "sublocality",
                        "sublocality_level_1"
                    ]
                },
                {
                    "long_name": "Formosa, Goiás",
                    "short_name": "Formosa, Goiás",
                    "types": [
                        "locality",
                        "political"
                    ]
                },
                {
                    "long_name": "Formosa",
                    "short_name": "Formosa",
                    "types": [
                        "administrative_area_level_2",
                        "political"
                    ]
                },
                {
                    "long_name": "Goiás",
                    "short_name": "GO",
                    "types": [
                        "administrative_area_level_1",
                        "political"
                    ]
                },
                {
                    "long_name": "Brazil",
                    "short_name": "BR",
                    "types": [
                        "country",
                        "political"
                    ]
                },
                {
                    "long_name": "73801-670",
                    "short_name": "73801-670",
                    "types": [
                        "postal_code"
                    ]
                }
            ]
}

Моя проблема: мне нужно название окрестности широты и долготы, которые я передал в запросе API.

Я проверил документ API геокодирования Google, здесь они показывают район в ответ, пожалуйста, проверьте ссылку и ответ ниже.

https://developers.google.com/maps/documentation/geocoding/start

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "277",
               "short_name" : "277",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Bedford Avenue",
               "short_name" : "Bedford Ave",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Williamsburg",
               "short_name" : "Williamsburg",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Brooklyn",
               "short_name" : "Brooklyn",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "Kings",
               "short_name" : "Kings",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "New York",
               "short_name" : "NY",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "11211",
               "short_name" : "11211",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA",
         "geometry" : {
            "location" : {
               "lat" : 40.714232,
               "lng" : -73.9612889
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 40.7155809802915,
                  "lng" : -73.9599399197085
               },
               "southwest" : {
                  "lat" : 40.7128830197085,
                  "lng" : -73.96263788029151
               }
            }
         },
         "place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
         "types" : [ "street_address" ]
      },

   ... Additional results truncated in this example[] ...

   ],
   "status" : "OK"
}

Поделитесь, пожалуйста, предложением, если кто-нибудь это сделал.

Заранее спасибо .


person Rahul Gaikwad    schedule 02.02.2018    source источник
comment
все эти типы компонентов строго основаны на системе каждой страны, пробовали ли вы использовать другие адреса в Бельгии? Сможете ли вы найти какой-нибудь район? Можете ли вы сказать мне название района, в который вы нацелены?   -  person betofarina    schedule 02.02.2018
comment
Мне нужно название района для адресов Бразилии (широта и долгота), я проверил адреса в США (широта и долгота) в том, что API дает имя района в результатах, но не для Бразилии. Итак, есть ли документация, в которой я найду этот мудрый ответ страны на этот API?   -  person Rahul Gaikwad    schedule 05.02.2018
comment
omt, ты можешь назвать мне район, в который ты нацелился? дайте мне реальный адрес или координаты, которые находятся в этом районе   -  person betofarina    schedule 05.02.2018
comment
Я не нацелен ни на один район. Мое требование очень простое: мне нужно название района из текущего местоположения пользователя (долгая широта), это означает, что я хочу передать долгую широту в запросе, а в ответ мне нужно имя окрестности этого географического местоположения. Вот пример названия квартала Centro, который я передал в запросе. maps.googleapis.com/maps/api / geocode / Это для районов Бразилии.   -  person Rahul Gaikwad    schedule 05.02.2018
comment
наконец-то! Хорошо, теперь ... centro - это район, и он находится под типом address_components: sublocality и sublocality_level_1, теперь я хочу, чтобы вы выполнили несколько запросов в районах, которые вы знаете (в Бразилии), и проверьте, все ли они имеют один из этих двух типов (sublocality и sublocality_level_1) под их адресом компонента (где отображается название окрестности). Я бы сделал это, но я не так хорошо знаю Бразилию   -  person betofarina    schedule 05.02.2018
comment
Я проверил некоторые районы Бразилии и их приближение к sublocality_level_1, но моя проблема в том, что я считаю это районом? потому что в google api docs сублокальность и окрестности - это разные типы адресов. См. документ ниже. developers.google.com/maps/documentation/geocoding/intro#Types   -  person Rahul Gaikwad    schedule 05.02.2018
comment
да! вот и все, как я сказал в моем 1-м комментарии, эти типы могут отличаться от страны к стране, то, что является соседством в США, может быть чем-то другим в Бразилии, теперь вы точно знаете, что это находится в sublocality_level_1. если вам нужно что-то еще, дайте мне знать   -  person betofarina    schedule 05.02.2018


Ответы (1)


Итак, чтобы ответить на ваш вопрос, хотите ли вы получить соседство в ответе, вы можете выполнить итерацию через component_address и с помощью статуса If проверить типы.

var ac = results.address_components;
 // FOR loop to iterate 
if( types == "sublocality_level_1") { // for brasil (and remember that types is also and array)
var neighborhood = ac[i].long_name;
}

Надеюсь, вы уловили идею

person betofarina    schedule 05.02.2018
comment
Да, я полностью понимаю ваш ответ и ценю, я проверил несколько адресов Бразилии, и в ответ на sublocality_level_1 приходит соседство, но мой вопрос: есть ли письменное заявление в документе API Google, что мы можем рассматривать sublocality_level_1 как район для Бразилия? - person Rahul Gaikwad; 06.02.2018
comment
Я боюсь, что они этого не делают, и никогда не будут в ближайшем будущем, поскольку API-интерфейсы постоянно меняются, попробуйте представить, чтобы постоянно обновлять документ обо всех странах. Я предлагаю попытаться найти шаблон в component_address или, если вам повезет, попросить добавить эту информацию в документацию в Issuetracker Issueetracker.google.com - person betofarina; 06.02.2018