2016-03-17 10 views
1

Я пытаюсь понять, как получить правильные данные из Google Geocoding api, и я не могу понять, как получить правильные данные.Google Geocoding Api возвращает непоследовательные данные

Я пытаюсь получить город Costa Calma на острове Фуэртевентура Когда я смотрю на город с URL: https://maps.googleapis.com/maps/api/geocode/json?address=Costa%20Calma,%20Fuerteventura

Я получаю ответ:

{ 
"results":[ 
    { 
     "address_components":[ 
      { 
       "long_name":"Costa Calma", 
       "short_name":"Costa Calma", 
       "types":[ 
        "locality", 
        "political" 
       ] 
      }, 
      { 
       "long_name":"Pájara", 
       "short_name":"Pájara", 
       "types":[ 
        "administrative_area_level_4", 
        "political" 
       ] 
      }, 
      { 
       "long_name":"Jandía", 
       "short_name":"Jandía", 
       "types":[ 
        "administrative_area_level_3", 
        "political" 
       ] 
      }, 
      { 
       "long_name":"Las Palmas", 
       "short_name":"Las Palmas", 
       "types":[ 
        "administrative_area_level_2", 
        "political" 
       ] 
      }, 
      { 
       "long_name":"Canarias", 
       "short_name":"CN", 
       "types":[ 
        "administrative_area_level_1", 
        "political" 
       ] 
      }, 
      { 
       "long_name":"Spain", 
       "short_name":"ES", 
       "types":[ 
        "country", 
        "political" 
       ] 
      } 
     ], 
     "formatted_address":"Costa Calma, Las Palmas, Spain", 
     "geometry":{ 
      "bounds":{ 
       "northeast":{ 
        "lat":28.1747078, 
        "lng":-14.2126396 
       }, 
       "southwest":{ 
        "lat":28.147027, 
        "lng":-14.2368948 
       } 
      }, 
      "location":{ 
       "lat":28.1585283, 
       "lng":-14.2294205 
      }, 
      "location_type":"APPROXIMATE", 
      "viewport":{ 
       "northeast":{ 
        "lat":28.1747078, 
        "lng":-14.2126396 
       }, 
       "southwest":{ 
        "lat":28.147027, 
        "lng":-14.2368948 
       } 
      } 
     }, 
     "partial_match":true, 
     "place_id":"ChIJ2fWZIEOcRwwRjXhqKnxec8U", 
     "types":[ 
      "locality", 
      "political" 
     ] 
    } 
], 
"status":"OK"} 

я могу видеть в что ответ, что Costa Calma расположен на Canarias, но я не могу видеть, на каком острове, в то время как, если я подстановок Фуэртевентура, с URL: https://maps.googleapis.com/maps/api/geocode/json?address=Fuerteventura,%20Spanien я получаю ответ

{ 
"results": [{ 
    "address_components": [{ 
     "long_name": "Fuerteventura", 
     "short_name": "Fuerteventura", 
     "types": ["natural_feature", "establishment"] 
    }, { 
     "long_name": "Spain", 
     "short_name": "ES", 
     "types": ["country", "political"] 
    }], 
    "formatted_address": "Fuerteventura, Spain", 
    "geometry": { 
     "bounds": { 
      "northeast": { 
       "lat": 28.757003, 
       "lng": -13.8224231 
      }, 
      "southwest": { 
       "lat": 28.0438891, 
       "lng": -14.5101955 
      } 
     }, 
     "location": { 
      "lat": 28.3982211, 
      "lng": -14.0103493 
     }, 
     "location_type": "APPROXIMATE", 
     "viewport": { 
      "northeast": { 
       "lat": 28.757003, 
       "lng": -13.8224231 
      }, 
      "southwest": { 
       "lat": 28.0438891, 
       "lng": -14.5101955 
      } 
     } 
    }, 
    "place_id": "ChIJgQ_Cr3OkRwwRI3-1tRMcxyo", 
    "types": ["natural_feature", "establishment"] 
}], 
"status": "OK"} 

Я вижу, что Фуэртевентура находится в Испании, но не в Канарах, однако, если я проверю координаты, я вижу, что координаты находятся на одном острове, как я могу это решить?

ответ

0

Fuerteventura, кажется, остров, расположенный в одном из Канарских островов Spain «s

+0

Это и Costa Calma расположен на острове Фуэртевентура, но когда я подстановок Costa Calma он говорит, что это просто находится на Канарских островах , но как я могу это сделать, когда я ищу Коста Кальма, я получаю Фуэртевентуру как остров? –

+0

Я пробовал несколько комбинаций, и кажется, что 'Google' не предоставляет название острова, просто предоставляет название группы островов' Canarias' –

0

Фуэртевентура является островом, и в то время как это могло бы быть и политическое разделение, это не так. Вот почему вы не увидите Фуэртевентуру (или любое название острова) в почтовом адресе на Канарских островах. И поэтому он никогда не будет в address_components любого результата геокодирования.

Я не уверен, в чем проблема, но я могу сказать вам из первых рук, что вам не нужно «Фуэртевентура» как часть адреса. Адреса в Канарских островах используют только местность, почтовый индекс и провинцию, и есть только две провинции, каждая из которых содержит примерно половину Канарских островов.

Я считаю, что это может привести к путанице, что обе провинции были названы в честь столицы каждого из них:

Если вы хотели бы получить острова в целом см Why is "natural_feature" excluded from Google Maps Geocoding and Places API searches? и https://code.google.com/p/gmaps-api-issues/issues/detail?id=4759

+0

Причина, по которой мне нужен Fuerteventura, заключается в том, что я работаю в API-интерфейсе для путешествий , Если важными частями в этом случае являются: Fuerteventura является частью Канарских островов, которая является частью Испании. Город это не самая важная часть. –

+0

Похоже, вы действительно ищете https://code.google.com/p/gmaps-api-issues/issues/detail?id=4759. – miguev

Смежные вопросы