ホームページ >ウェブフロントエンド >jsチュートリアル >GoogleマップAPIとjQueryの記事を使用してマップにマーカーを追加する
Googleマップコードの場合、Googleサーバーに直接リンクできます。
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>センサー= falseパラメーターは、ユーザーの位置を決定するためにセンサー(GPSロケーターなど)を使用したくないことを指定します。
基本的なライブラリがあるので、機能の構築を開始できます。 スクリプトのアウトライン
マップコードのスケルトンから始めましょう:
MyMapと呼ばれるJavaScriptオブジェクト内のすべてのマップ機能をパッケージ化しています。これは、ページ上の他のスクリプトとの潜在的な競合を回避するのに役立ちます。オブジェクトには、2つの変数と2つの関数が含まれています。マップ変数は、作成されるGoogleマップオブジェクトへの参照を保存し、Bounds変数はすべてのマーカーを含む境界ボックスを保存します。これは、すべてのマーカーを追加した後、マップがすべて同時に見えるようにマップをズームしたいときに役立ちます。
メソッドの場合:INITはページに要素を見つけ、特定のセンターとズームレベルを備えた新しいGoogleマップとして初期化します。一方、PlaceMarkersはXMLファイルの名前を取得し、そのファイルからの調整データにロードして、マップに一連のマーカーを配置します。var MYMAP = { bounds: null, map: null } MYMAP.init = function(latLng, selector) { ⋮ } MYMAP.placeMarkers = function(filename) { ⋮ }マップのロード
基本的な構造が整ったので、init機能を書きましょう:
マーカーの追加
MYMAP.init = function(selector, latLng, zoom) { var myOptions = { zoom:zoom, center: latLng, mapTypeId: google.maps.MapTypeId.ROADMAP } this.map = new google.maps.Map($(selector)[0], myOptions); this.bounds = new google.maps.LatLngBounds();}それといえば、プレースマーカーの関数を見てみましょう:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
この関数はもう少し複雑ですが、理解するのは簡単です。最初に、jQueryの$ .getメソッドを呼び出して、Ajax Getリクエストを実行します。このメソッドには、リクエストするURL(この場合はローカルXMLファイル)と、リクエストが終了したときに実行するコールバック関数の2つのパラメーターが必要です。その関数は、次に、リクエストへの応答に合格されます。この場合、この場合はXMLになります。
jQueryはXMLをHTMLとまったく同じ扱います。したがって、$(xml).find( 'marker')。それぞれ。マーカーの名前とアドレスをつかみ、それぞれに新しいlatlngオブジェクトを作成し、ポイント変数に割り当てます。境界ボックスをそのポイントを含めるように拡張し、マップ上のその場所にマーカーを作成します。
ユーザーがそれらのマーカーをクリックするたびにツールチップバブルを表示したいので、場所の名前とアドレスを含めることを望みます。 したがって、Maps API Event.AddListenerメソッドを使用して、各マーカーにイベントリスナーを追加する必要があります。ただし、それを行う前に、ツールチップ自体を作成します。 Google Maps APIでは、このタイプのツールチップはInfowindowと呼ばれます。そこで、新しいInfowindowを作成し、必要な情報を入力するためにHTMLを設定します。次に、イベントリスナーを追加します。リスナーは、マーカーの1つがクリックされるたびに発射され、両方ともInfowindowのコンテンツを設定して開きます。
最後に、すべてのマーカーとそれに関連するイベントハンドラーとInfowindowを追加した後、Maps APIのFitBoundsメソッドを使用してマップをマーカーに適合させます。 それを渡す必要があるのは、各マーカーを含めるように拡張してきた境界オブジェクトだけです。このように、マップがどこでズームされたりパンされたりしても、すべてのマーカーを含む理想的なズームレベルに常にスナップします。すべてを結び付けます
コードの準備ができたので、それを実行してみましょう。 jqueryの$( 'document')を使用します。ページが読み込まれるまで待機してから、マップを初期化し、#mapセレクター文字列を使用してマップのIDを使用してページ要素を指しています:
以上がGoogleマップAPIとjQueryの記事を使用してマップにマーカーを追加するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。