Momentan verwenden wir das Array address_components von Google places api, um zu ermitteln, ob der gesuchte Ort ein Bundesstaat oder ein Land ist. Für Staat und Land geben wir den staatlichen Code und den Ländercode bei der Suche ein. Nachfolgend sind die Szenarios aufgeführt, die wir verwenden, um den Ortdetail-Ergebnistyp zu identifizieren:So ermitteln Sie, ob ein Google Place Details-Ergebnis ein Status ist (administrative_area_level_1)
Staatsszenario: address_components hat 2 Artikel mit administrative_area_level_1 geben Sie den ersten Artikel und den Landtyp den zweiten Artikel ein.
"address_components" : [
{
"long_name" : "California",
"short_name" : "CA",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
],
Land Szenario: address_components hat 1 Punkt und seine Typen haben Land
"address_components" : [
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
],
Wenn address_components Artikelliste mehr als 2 Artikel hat dann der gewählte Ort nicht als Staat oder Land angesehen wird. Während wenige Suchen wie "Oaxaca" oder "New York" mehr als zwei Elemente im Array "address_components" zurückgeben.
Oaxaca:
"address_components" : [
{
"long_name" : "Oaxaca",
"short_name" : "Oaxaca",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Oaxaca",
"short_name" : "Oaxaca",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Oaxaca",
"short_name" : "Oax.",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Mexico",
"short_name" : "MX",
"types" : [ "country", "political" ]
}
]
New Yorker
"address_components" : [
{
"long_name" : "New York",
"short_name" : "New York",
"types" : [ "locality", "political" ]
},
{
"long_name" : "New York",
"short_name" : "NY",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "United States",
"short_name" : "US",
"types" : [ "country", "political" ]
}
]
Gibt es eine andere Art und Weise, wenn eine Suche statt Detail Ergebnis (wie Oaxaca) zu identifizieren ein Zustand (administrative_area_level_1) ist
Wenn Adresskomponenten mehr als 2 Elemente haben, sollten wir es nicht als einen Zustand betrachten. –
Sie haben ein 'types' Feld für das Ergebnis und dieses Feld sagt, welcher Typ das Ergebnis hat. Ich verstehe nicht, warum Sie die Anzahl der Elemente in Adresskomponenten analysieren müssen, wenn Sie den Typ des Ergebnisses sofort aus dem Feld 'types' erfahren können. – xomena