Ich verwende Google Geocoding-API, um eine automatische Vervollständigung der Suche nach einem Standort innerhalb einer angepassten Map zu realisieren. ich eine Anfrage wie folgt aus:Google Geocoding API Unerwartetes Ergebnis bei mehrdeutiger Suchanfrage
http://maps.googleapis.com/maps/api/geocode/json?address=frankfurt&components=country[de]
ich mit nur einem Ergebnis wieder diese Antwort bekam:
{
results: [
{
address_components: [
{
long_name: "Frankfurt am Main",
short_name: "Frankfurt am Main",
types: [
"locality",
"political"
]
},
{
long_name: "Darmstadt",
short_name: "DA",
types: [
"administrative_area_level_2",
"political"
]
},
{
long_name: "Hessen",
short_name: "HE",
types: [
"administrative_area_level_1",
"political"
]
},
{
long_name: "Deutschland",
short_name: "DE",
types: [
"country",
"political"
]
}
],
formatted_address: "Frankfurt am Main, Deutschland",
geometry: {
bounds: {
northeast: {
lat: 50.2272095,
lng: 8.8003977
},
southwest: {
lat: 50.0152145,
lng: 8.4727299
}
},
location: {
lat: 50.1109221,
lng: 8.6821267
},
location_type: "APPROXIMATE",
viewport: {
northeast: {
lat: 50.2272095,
lng: 8.8003977
},
southwest: {
lat: 50.0152145,
lng: 8.4727299
}
}
},
place_id: "ChIJxZZwR28JvUcRAMawKVBDIgQ",
types: [
"locality",
"political"
]
}
],
status: "OK"
}
Das Problem ist, dass die Antwort alle Frankfurts enthalten soll, die in Deutschland existieren. (Frankfurt, Main + Frankfurt, Oder). Aber es antwortet nur mit Frankfurt, Main. Dasselbe geschieht an anderen Ortsnamen, die theoretisch mindestens zweimal vorkommen sollten. Aber Google zeigt nur eins. Wahrscheinlich der relevanteste.
Gibt es eine Möglichkeit, das zu ändern? Oder besser einen anderen Geocode-Dienst verwenden?
Ich habe versucht, Komponentenfilter zu verwenden, aber das änderte nichts.
In dieser Frage sind mir einige Dinge aufgefallen, xomenas Antwort deckt alle ab, aber eins: country [de] ist nicht korrekt formatiert und wird ignoriert, Sie müssen country = de verwenden – miguev