2017-12-26 11 views
0

사용자가 스피너에서 특정 도시를 선택하면지도가 열리 며 선택한 도시에서 특정 장소를 선택할 수 있습니다. 사용자가 선택한 도시 외부로 나가면 "당신의 도시가 아닙니다"와 같은 축배가있을 것입니다. 지도에 표시되는 도시의 고유 ID 번호가 필요하며 회 전자에서 선택한 도시와 비교해야합니다.특정 도시의 ID 번호 또는 코드를 얻는 방법?

+0

[Google Places API] (https://developers.google.com/places/)를 사용하고 있습니까? 그렇지 않다면, "장소"는 무엇을 의미합니까? 지리적 좌표는? – ubadub

+0

Google Places API는 같은 도시에있는 장소의 수를 표시합니다. 하지만 그저 이드가 필요해. 도시 안의 장소는 필요 없어. Google Map은 "moscow"및 "moskva"와 같은 도시에 대해 다른 이름을 표시합니다. 그래서 내가 유일한 ID 번호가 필요합니다 –

+0

다른 말로하면 : 주어진 위치, 당신은 그것이 주어진 도시 내에 있는지 확인하고 싶지? – ubadub

답변

1

불행히도 Google지도 API는 도시 경계 (도시 경계를 정의하는 다각형)에 대한 정보를 공개하지 않습니다. OpenStreetMap을 사용하여이 데이터를 공개하고 모든 도시/지역/국가/국가의 고유 한 ID 번호를 사용하는 것이 좋습니다. Here is a search engine OSM을 사용하여 작성한 경우 URL을 보면 도시와 관련된 고유 한 ID (이 경우 뉴욕)가 있음을 알 수 있습니다. 그리고 here은 Android에서 OSM을 사용하는 방법에 대한 위키/문서입니다.

편집 : 또한 see here

0

당신은 도시 내부의 좌표에 대한 역 지오 코딩 요청을 사용하고 그 결과 유형을 지정 도시에 대한 place ID 무엇인지 알아낼 수는 지역에 같습니다. 예를 들어

의 55.710424,37.682381 좌표는 결과 유형과 역 지오 코딩이

https://maps.googleapis.com/maps/api/geocode/json?latlng=55.710424%2C37.682381&result_type=locality&key=YOUR_API_KEY

는 다음과 같은 응답

{ 
"results":[ 
    { 
    "address_components":[ 
     { 
     "long_name":"Moscow", 
     "short_name":"Moscow", 
     "types":[ 
      "locality","political" 
     ] 
     }, 
     { 
     "long_name":"Moskva", 
     "short_name":"Moskva", 
     "types":[ 
      "administrative_area_level_2","political" 
     ] 
     }, 
     { 
     "long_name":"Moscow", 
     "short_name":"Moscow", 
     "types":[ 
      "administrative_area_level_1","political" 
     ] 
     }, 
     { 
     "long_name":"Russia", 
     "short_name":"RU", 
     "types":[ 
      "country","political" 
     ] 
     } 
    ], 
    "formatted_address":"Moscow, Russia", 
    "geometry":{ 
     "bounds":{ 
     "northeast":{ 
      "lat":56.009657,"lng":37.9456611 
     }, 
     "southwest":{ 
      "lat":55.48992699999999,"lng":37.3193289 
     } 
     }, 
     "location":{ 
     "lat":55.755826,"lng":37.6172999 
     }, 
     "location_type":"APPROXIMATE", 
     "viewport":{ 
     "northeast":{ 
      "lat":56.009657,"lng":37.9456611 
     }, 
     "southwest":{ 
      "lat":55.48992699999999,"lng":37.3193289 
     } 
     } 
    }, 
    "place_id":"ChIJybDUc_xKtUYRTM9XV8zWRD0", 
    "types":[ 
     "locality","political" 
    ] 
    } 
], 
"status":"OK" 
} 

를 반환합니다, 그래서 모스크바 안쪽에 당신은 것을 알 수 있습니다 모스크바의 장소 ID는 ChIJybDUc_xKtUYRTM9XV8zWRD0입니다.

enter image description here

당신은 주어진 도시 내부에있는 좌표 여부를 확인하기 위해 지역의 결과 유형과 역 지오 코딩을 위해 함께이 곳의 ID를 사용할 수 있습니다. 예를 들어

, 55.586107,38.229675 좌표 모스크바 경계의 외부에 당신에게 도시 '라멘 스코 예, 모스크바 주, 러시아입니다 장소 ID ChIJu_L0awrASkER7yCl6FLZFLE와 다른 지역을 줄 것이다

https://maps.googleapis.com/maps/api/geocode/json?latlng=55.586107%2C38.229675&language=en&result_type=locality&key=YOUR_API_KEY

을 역 지오 코딩 .

enter image description here

난 당신이 정보가 도움이되기를 바랍니다.