0

Ich verwende die Entfernungsmatrix von Google Maps API, um die Entfernung zwischen zwei Postleitzahlen in Belgien zu erhalten. Ich stehe vor dem Problem, dass das Land in der ganzen Adresse bewertet wird. Gibt es eine Möglichkeit, das Land in der Anfrage zu zwingen?Entfernungsmatrix nach Postleitzahl

Zum Beispiel:

https://maps.googleapis.com/maps/api/distancematrix/json?origins=Belgium+1200&destinations=Belgium+2566

Bietet ein Ziel auf den Philippinen statt Belgien:

{ 
    "destination_addresses" : [ "Belgium, Dasmariñas, Cavite, Philippines" ], 
    "origin_addresses" : [ "1200, Belgique" ], 
    ... 
} 

gleiches Problem, wenn ich den französisch Namen des Landes (Belgique) in der Anfrage :

https://maps.googleapis.com/maps/api/distancematrix/json?origins=Belgium+1200&destinations=Belgium+2566

Bietet ein Ziel in Frankreich:

{ 
    "destination_addresses" : [ "2566 Rue de Belgique, 66140 Canet-en-Roussillon, France" ], 
    "origin_addresses" : [ "1200, Belgique" ], 
    ... 
} 
+0

Haben Sie zufällig etwas anderes versucht? – MrUpsidown

+0

Ich denke, Postleitzahlen werden nicht als eine Adresse von der API betrachtet. – MrUpsidown

+0

Oh, und übrigens, 2566 scheint eine ungültige Postleitzahl in Belgien zu sein. Du hast meinen Downvote. – MrUpsidown

Antwort

1

Nach etwas mehr Informationen bekommen, ich glaube, ich mit einer Antwort aufwarten kann.

Ist es nur für Belgien? Könnten Sie nicht zulassen, dass sie nur gültige Postleitzahlen auswählen? Das würde viele Fehler vermeiden ... Aber wenn Sie nicht können, dann können Sie andere Optionen versuchen.


Jetzt für die Antwort ein:

Sie erwähnten, dass Sie den Abstand zwischen den beiden Orten (mit distancematrix)-berechnen möchten. Sie müssen die Entfernungsmatrix nicht verwenden, wenn Sie Abstände zwischen nur zwei Stellen berechnen müssen. Sie können die Standard-Directions-API (oder den Dienst als Teil der Google Maps JavaScript API v3) verwenden. Auf jeden Fall müssen Sie sowohl bei Directions als auch bei distanceMatrix die Informationen anzeigen, die vom Dienst auf einer Karte zurückgegeben werden (dies ist in den Nutzungsbedingungen angegeben).

Der Vorteil der Directions-API besteht darin, dass Sie Ihre Anfrage mithilfe der Parameter IANA language region subtags und region in eine bestimmte Region (Land) verschieben können.

var start = "1200, Belgium"; 
var end = "2500, Belgium"; 
var method = 'DRIVING'; 
var request = { 
    origin: start, 
    destination: end, 
    region: 'BE', 
    travelMode: google.maps.DirectionsTravelMode[method] 
}; 

Die Dokumentation ist hier: https://developers.google.com/maps/documentation/javascript/directions#Directions

Es gibt auch andere Dienste, die Sie vor dem Abrufen der Richtungen, um sicherzustellen, nutzen könnten, dass die Herkunfts- und Zielwerte korrekt sind.

Die Geocoder könnte eine sein (Sie können Ihre Anfragen auch mit Regionalcodes sig- nalisieren).

Geonames.org hat auch einen dedizierten postal code search Webservice. Es benötigt einen optionalen (multiplen) Ländercode als Parameter. Es gibt Koordinaten zurück, die Sie dann in Ihrer Routenanfrage verwenden könnten.

Sie können die untenstehende Geige für ein vollständiges Beispiel mit dem Standard-Routenplaner-Service überprüfen. Spielen Sie damit und sehen Sie, ob es für Sie funktioniert. Versuchen Sie, ungültige Postleitzahlen oder sogar eine gültige Postleitzahl einzugeben, aber entfernen Sie "Belgien" von den Ausgangs- oder Zielzeichenfolgen und Sie werden sehen, was passiert ...

JSFiddle demo

Hoffnung, das hilft.