2017-12-26 2 views
0

ユーザーがスピナーから特定の都市を選択すると、地図が開きます。そのため、ユーザーは選択した都市から特定の場所を選択できます。ユーザーが選択した都市の外に出ると、「あなたの都市ではない」のようなトーストがあります。残念ながら、Google Maps APIは都市境界に関する情報(都市の境界を定義するポリゴン)をリリースしません。地図上に表示される都市の一意のID番号が必要です。特定の都市のID番号またはコードを取得するには?

+0

あなたは[Google Places API](https://developers.google.com/places/)を使用していますか?そうでない場合、「場所」は何を意味していますか?ちょうどどんな地理的座標ですか? – ubadub

+0

Google Places APIは、同じ都市にある場所の数を示すIDを提供します。しかし、私はちょうど市のためだけでなく、その中の場所のためにIDが必要です。 Googleマップでは、「moscow」や「moskva」のような同じ都市の別の名前が表示されます。それは私がそれのユニークなID番号を必要とする理由です –

+0

つまり:場所を与えられた、それは特定の都市の権利内であることを確認したいですか? – ubadub

答えて

1

OpenStreetMapを使用することをお勧めします.OpenStreetMapはこのデータを公開していますが、都市/地域/国/地域ごとに固有のID番号を持っています。 Here is a search engine OSMを使用して構築した場合、URLを見ると、市(この場合はニューヨーク)に関連付けられた一意のIDがあることがわかります。そしてhereは、AndroidでOSMを使用する方法に関するwiki/documentationです。

EDIT:またsee here

0

は、あなたが都市内の座標の逆ジオコーディング要求を使用して、結果タイプを指定都市のためplace IDが何であるかを把握することができますが、地域に等しいです。

結果タイプ

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" 
} 

を返し、あなたがそれを見ることができるように、例えば、55.710424,37.682381はモスクワの内側に配置されている座標モスクワの場所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

私はあなたがこの情報が役に立つことを願っ。

関連する問題