下記のGoogleマップのgecodingレスポンスのJSONレスポンスを検討してください。 5つの要素を持つaddress_components
の配列で構成されています。 通常、開発者は最初のアイテム(インデックス0のアイテム)を使用して、とlocality
とformatted address
などのアドレス要素を検索します。しかし、これは最良の選択肢ではありません。たとえば、この場合、2番目の項目は他の項目より記述的なアドレスです。同じ応答で異なる地方の同じアドレスがあることがあります。Google Map API:さまざまな "address_components"をgecoding結果で管理するにはどうすればよいですか?
どのようにすればいいですか(Android MapsではGoogle Maps APIを利用できますが、インデックスは0のアイテムではありませんが、選択肢の中から選択しますベストマッチ)?
それに、抽出した情報を一緒に細かい部分をもたらすために、異なるaddress_components
のすべての要素を反復処理するために思っていたが、問題は、アドレスの矛盾をもたらすlocality
状要素の同じタイプ有する異なるaddress_components
における異なる情報のための情報であります情報の要素が異なるaddress_component
アイテムから集められたとき。 例として、以下のサンプルでは、2つの異なる都市ラベル(同じ地域内)である異なるlocality
要素に2つの値شهر جدید اندیشه
とKaraj
があります。
{
"results" : [
{
"address_components" : [
{
"long_name" : "Unnamed Road",
"short_name" : "Unnamed Road",
"types" : [ "route" ]
},
{
"long_name" : "Karaj",
"short_name" : "Karaj",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Shahriar County",
"short_name" : "Shahriar County",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Tehran Province",
"short_name" : "Tehran Province",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "ایران",
"short_name" : "IR",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Tehran Province, Karaj, Unnamed Road, ایران",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 35.7221382,
"lng" : 51.0148178
},
"southwest" : {
"lat" : 35.716435,
"lng" : 51.0095103
}
},
"location" : {
"lat" : 35.719286,
"lng" : 51.012165
},
"location_type" : "GEOMETRIC_CENTER",
"viewport" : {
"northeast" : {
"lat" : 35.7221382,
"lng" : 51.0148178
},
"southwest" : {
"lat" : 35.716435,
"lng" : 51.0095103
}
}
},
"place_id" : "ChIJmf7_zEyTjT8RkM8-nK6dTm0",
"types" : [ "route" ]
},
{
"address_components" : [
{
"long_name" : "فاز ۶ شهر جدید اندیشه",
"short_name" : "فاز ۶ شهر جدید اندیشه",
"types" : [ "political", "sublocality", "sublocality_level_1" ]
},
{
"long_name" : "شهر جدید اندیشه",
"short_name" : "شهر جدید اندیشه",
"types" : [ "locality", "political" ]
},
{
"long_name" : "شهرستان شهریار",
"short_name" : "شهرستان شهریار",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "استان تهران",
"short_name" : "استان تهران",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "ایران",
"short_name" : "IR",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "فاز ۶ شهر جدید اندیشه، شهر جدید اندیشه، استان تهران، ایران",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 35.7389537,
"lng" : 51.0349971
},
"southwest" : {
"lat" : 35.7039031,
"lng" : 51.0044146
}
},
"location" : {
"lat" : 35.7210753,
"lng" : 51.014934
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 35.7389537,
"lng" : 51.0349971
},
"southwest" : {
"lat" : 35.7039031,
"lng" : 51.0044146
}
}
},
"place_id" : "ChIJiYlwJLHsjT8RruE39U9NMoQ",
"types" : [ "political", "sublocality", "sublocality_level_1" ]
},
{
"address_components" : [
{
"long_name" : "شهر جدید اندیشه",
"short_name" : "شهر جدید اندیشه",
"types" : [ "locality", "political" ]
},
{
"long_name" : "شهرستان شهریار",
"short_name" : "شهرستان شهریار",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "استان تهران",
"short_name" : "استان تهران",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "ایران",
"short_name" : "IR",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "شهر جدید اندیشه، استان تهران، ایران",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 35.7388144,
"lng" : 51.04460479999999
},
"southwest" : {
"lat" : 35.6838973,
"lng" : 50.9894371
}
},
"location" : {
"lat" : 35.7078282,
"lng" : 51.0227587
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 35.7388144,
"lng" : 51.04460479999999
},
"southwest" : {
"lat" : 35.6838973,
"lng" : 50.9894371
}
}
},
"place_id" : "ChIJIQwwRcnsjT8RnTJfLJ3QUAg",
"types" : [ "locality", "political" ]
},
{
"address_components" : [
{
"long_name" : "شهرستان شهریار",
"short_name" : "شهرستان شهریار",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "استان تهران",
"short_name" : "استان تهران",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "ایران",
"short_name" : "IR",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "شهرستان شهریار، استان تهران، ایران",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 35.7389885,
"lng" : 51.23044970000001
},
"southwest" : {
"lat" : 35.5333437,
"lng" : 50.8859253
}
},
"location" : {
"lat" : 35.6096201,
"lng" : 51.03319330000001
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 35.7389885,
"lng" : 51.23044970000001
},
"southwest" : {
"lat" : 35.5333437,
"lng" : 50.8859253
}
}
},
"place_id" : "ChIJQ6KQjY7xjT8RoYD9gJh8_CY",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"address_components" : [
{
"long_name" : "استان تهران",
"short_name" : "استان تهران",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "ایران",
"short_name" : "IR",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "استان تهران، ایران",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 36.07789210000001,
"lng" : 53.216228
},
"southwest" : {
"lat" : 34.909543,
"lng" : 50.3186971
}
},
"location" : {
"lat" : 35.7248416,
"lng" : 51.381653
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 36.07789210000001,
"lng" : 53.216228
},
"southwest" : {
"lat" : 34.909543,
"lng" : 50.3186971
}
}
},
"place_id" : "ChIJf5Us9YQBjj8R0OohvHQms1U",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"address_components" : [
{
"long_name" : "ایران",
"short_name" : "IR",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "ایران",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 39.782056,
"lng" : 63.3333366
},
"southwest" : {
"lat" : 24.8066999,
"lng" : 44.0326949
}
},
"location" : {
"lat" : 32.427908,
"lng" : 53.688046
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 39.782056,
"lng" : 63.3333366
},
"southwest" : {
"lat" : 24.8066999,
"lng" : 44.0326949
}
}
},
"place_id" : "ChIJ8R1rwS7s9z4RzvpRntOVsEA",
"types" : [ "country", "political" ]
}
],
"status" : "OK"
}