1

Google Maps API の distancematrix を使用して、ベルギーの 2 つの郵便番号間の距離を取得しています。アドレス全体で国が評価されるという問題に直面しています。リクエストで国を強制する方法はありますか?

例えば:

https://maps.googleapis.com/maps/api/distancematrix/json?origins=ベルギー+1200&destinations=ベルギー+2566

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

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

リクエストで国 (ベルギー) のフランス語名を使用する場合、同じ問題:

https://maps.googleapis.com/maps/api/distancematrix/json?origins=ベルギー+1200&destinations=ベルギー+2566

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

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

1 に答える 1

1

もう少し情報を入手したら、答えを出すことができると思います。

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


答えは次のとおりです。

あなたは2つの場所の間の距離を計算したいと言いました(distancematrixを使用) 。2 地点間の距離のみを計算する必要がある場合は、distanceMatrix を使用する必要はありません。標準の Directions API (または Google Maps Javascript API v3 の一部としてのサービス) を使用できます。いずれにせよ、Directions と distanceMatrix の両方を使用して、サービスから返された情報を地図上に表示する必要があります (これはサービス規約に記載されています)。

Directions API の利点は、IANA 言語地域サブタグregionパラメーターを使用して、リクエストを特定の地域 (国) に偏らせることができることです。

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

出発地と目的地の値が正しいことを確認するために道順を取得する前に、使用できる他のサービスもあります。

ジオコーダーがその1 つになる可能性があります (リージョン コードでリクエストをバイアスすることもできます)。

Geonames.orgには、専用の郵便番号検索Web サービスもあります。オプションの (複数の) 国コードをパラメータとして取ります。ルート リクエストで使用できる座標が返されます。

標準のルート案内サービスを使用した完全な例については、以下のフィドルを確認してください。それを試してみて、それがうまくいくかどうかを確認してください。無効な郵便番号を入力しようとするか、有効な郵便番号を入力してみても、出発地または目的地の文字列から「ベルギー」を削除すると、どうなるかがわかります...

JSFiddle demo

お役に立てれば。

于 2016-04-14T11:58:29.493 に答える