0

Google Maps APIのdistancematrixを使用して、ベルギーの2つの郵便番号の間の距離を取得しています。私は、国全体が評価されているという問題に直面しています。要求に国を強制する方法はありますか?例えば郵便番号で距離行列を取得

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

はフィリピンの代わりに、ベルギーの目的地を提供します:

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

同じ問題を私は要求に国(Belgiqueの)のフランスの名前を使用する場合:

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

はフランスで目的地を提供します:

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

何か他に何か試しましたか? – MrUpsidown

+0

郵便番号はAPIのアドレスとはみなされません。 – MrUpsidown

+0

ああ、ところで、ベルギーでは2566が無効な郵便番号のようです。あなたは私のdownvoteを持っています。 – MrUpsidown

答えて

1

いくつかのより多くの情報を取得した後、私は答えを考え出すことができると思います。

ベルギーのみですか?有効な郵便番号のみを選択させることはできませんか?そうすれば多くのエラーを避けることができます...しかし、できない場合は、他のオプションを試すことができます。

あなたは(distancematrix付き)2ヶ所の間の距離を計算したいと述べた:答えを今すぐ


。わずか2か所の間で距離を計算する必要がある場合は、distanceMatrixを使用する必要はありません。標準Directions API(またはGoogle Maps JavaScript API v3の一部としてサービス)を使用できます。どちらの場合でも、DirectionsとdistanceMatrixの両方で、サービスによって返された情報を地図上に表示する必要があります(これはサービス条件です)。

Directions APIの利点は、IANA language region subtagsregionパラメータを使用して、特定の地域(国)にリクエストを送信できることです。

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

ドキュメントはここにある:https://developers.google.com/maps/documentation/javascript/directions#Directions

前送信元と送信先の値が正しいことを確認するために方向を取得するあなたが使用できる他のサービスもあります。

Geocoderは1つでもかまいません(地域コードでのリクエストにも対応できます)。

Geonames.orgには、専用のpostal code searchウェブサービスがあります。パラメータとしてオプションの(複数の)国コードが必要です。あなたの方向指示で使用できる座標を返します。

標準のDirectionsサービスを使用して完全な例を確認することができます。それと遊んで、あなたのために動作するかどうかを確認してください。無効な郵便番号を入力するか、有効な郵便番号を入力しても、元の文字列または目的の文字列から「ベルギー」を削除すると、何が起こるかがわかります。

JSFiddle demo

この情報がお役に立てば幸いです。