0

私は最近、Google マップ API v3 を使用するアプリケーションを開発しました。これは、顧客が自分の場所を指定できるようにし、ユーザー (エンド ユーザー) の要求に応じてこの場所を地図上に表示できるようにするためです。

今、私は2つの問題があります:

私は 2 つの言語で API を使用しています。

ここで、最適には、エンド ユーザー (ユーザーのユーザー) のニーズに応じて、ユーザーが地図の言語をリアルタイムで変更できるようにして、両方の言語で場所を追加できるようにしたいと考えていますが、私が実施した調査によると、同じページで API の 2 回目の呼び出しを行わない限り、それは不可能であると思われます。Google の利用規約に違反するつもりはありません。

私が思いついたのは、各場所をジオコーディングしてから他の言語に翻訳する必要があるということです。そうすれば、各ユーザーとページに適切な場所名を使用できるようになります。

2 つ目の問題は、Google がグローバル レベルで、特定のタイプ以外の場所を認識していないように見えることです。たとえば、「United states of America」または「Europe」と入力すると、それを表示したいユーザーもいますが、代わりに、Google API は住所を「Texas, United States」または「Stockholm」のように補完するようです。 、スウェーデン、ヨーロッパ」。それがマーカーを配置する場所であり、これがジオコーディングが行うことであり、特定の場所を取得していると思いますが、おそらくユーザーの入力テキストを分析する代わりに、バグを証明する優れた方法がありますか、またはどういうわけか API からの結果をフィルタリングして操作していますが、これは明らかに利用規約に違反していますか?

前もって感謝します!, 私は過去数週間、これをめぐる壁に頭をぶつけてきました.

4

2 に答える 2

1

GoogleマップのGeocoderAPIを使用できます

ジオコーダーを次のように定義します。

geocoder = new google.maps.Geocoder();

この例を見てください:http://geocodezip.com/v3_zoom2countrySelectList.html次の場合

于 2013-03-12T21:34:28.760 に答える
1

これは、2つの国の間でジオコーディングして交換し、さらにジオコードデバッグを使用して印刷する例です

console.log(results[0]);

また、

alert('Got formatted to: ' + results[0].formatted_address);

「ヨーロッパ」と「米国」が存在する必要があります。マーカーは、ジオコーディングが返す latLng 値に配置されます。

最近作成した例なので、gmap3ライブラリを使用してマップを起動しますが、関連するものはすべて通常のGoogleマップのジオコーディングコードです。お好みでお使いください。

JS フィドル (国名を使用したジオコード) を確認してください

表示されているビューポートに基づいてジオコーディングするには、ジオコーダーの現在の境界を取得して渡す必要があります。ビューポートの境界をジオコーディングし、実際のジオコーダーの結果に基づいて位置にマップする例を作成しました。

JS フィドル (ビューポート境界を使用したジオコード) を確認してください

于 2013-03-12T21:38:43.613 に答える