GoogleマップjGmapの便利なマーカー

この記事は、 マーカーのグループ化に関する記事の前編です。なぜなら、ご存じのように、不要なものをグループ化するには、まず不要なものを表示する必要があるためです;)



画像



プラグインを使用すると、カスタムアイコンおよび情報ウィンドウ、グループ(オプション)を使用して、マップ上に多くのマーカーを表示できます。 マーカーをドラッグして結果を手動で調整し、その変化を追跡することにより、ジオコーディングに使用されるターゲット入力を指定することもできます。





背景



タスクは、ユーザーにオブジェクトをマップ上でマークする機会を与え、このプロセスをできるだけ楽しくすることでした-Googleジオコーディングを使用します。 最初から行うこともできますが、既製のオプションを見つけることをお勧めします。 Apiの3番目のバージョンでは、そのようなものは目立ったきしみで検索されましたが、しばらくしてプラグインが見つかり、それが後にjGmapの基礎になりました。 彼はうまくジオコーディングしましたが、それ以上ではありませんが、それでも結果を手動で調整する機能が必要です。



変身



次に、状況を想像してください。ユーザーが以前に作成したオブジェクトを編集するようになった場合、特に手動で変更された場合は、再度ジオコーディングしないでください。 次に、ジオコーディングの結果を手動で調整し、マーカーを表示するための関数を作成しました。 原則として、悪くはありませんでした-私たちは探し、調整し、表示しています。 オブジェクトの一般的なリストを表示するために、重要な変更が後に行われました。まず、マーカーの実際の配列(単一のインスタンスではなく)、グループ化のためのマーカーマネージャーの束、アイコンと情報ウィンドウのカスタマイズを表示します。



そして、ロジックはどこにありますか



これはすべて自動ジオコーダーと呼ばれ、それに応じて動作しました。テキスト入力にしがみつき、CSSクラスは将来のマップ、位置(入力の前後)などでdivに設定されました。 これがジオコーディングプラグインではなくなったことは明らかでした。 いくつかの詐欺-プラグインは現在の形をとっています。



使い方



プラグインを機能させるには、jQueryバージョン1.3.2以降が必要です。これは、新しいバージョンのセレクターの誤った処理によるものです。 かつては1.3.0との互換性のためのハックがありましたが、私はそれを放棄することを好みました。



最高のドキュメント-使用例:

$( document ).ready( function (){

$( "#search-map" ).Gmap({

//,

show_points: {

lat: "lat" , //name , <input type="hidden" name="lat[0]" />

lng: "lng" , // lat

infowindow: "infowindow" , // lat



// ,

marker: {

icon: "icon" , //name <input type="hidden" name="icon[1]" value="/img/caution.png" />

shadow: "shadow" // marker.icon

},



// API v3

infowindow_options: {

disableAutoPan: true

},



autofit: true , // ,



// ,

icon:{

src: "http://maps.google.com/mapfiles/ms/micons/purple.png" ,

shadow: "http://maps.google.com/mapfiles/ms/micons/pushpin_shadow.png"

},



//

group_markers: true ,



// markermanager

markermanager_options:{

icon: {

src: "http://maps.google.com/mapfiles/ms/micons/partly_cloudy.png" ,

shadow: "http://maps.google.com/mapfiles/ms/micons/partly_cloudy.shadow.png"

},

cell: {

width: 48,

height: 96

}

}

},



//

geocoder: {

// , , id , innerHtml

clarification: "" ,



//id ,

target: "search_id" ,



//

bounds: {sw: [37, 40], ne: [80, 140]},



//

country: "RU" ,



//

language: "ru" ,



//

success: {

zoom : 8

},



// , - onkeyup onchange

auto: "onkeyup" ,



// , {auto: onkeyup}

delay: 3000,



//

icon: {

src: "http://maps.google.com/mapfiles/ms/micons/question.png" ,

shadow: "http://maps.google.com/mapfiles/ms/micons/question.shadow.png"

},



//id - , , .

track_coordinates:{

lat: "lat" ,

lng: "lng" ,

accuracy: "accuracy" ,

infowindow: " ..." , //



// API v3

marker_options: {

draggable: true

}

}

},



// API v3

initial:{

draggable: true ,

zoom: 5,

center: [58, 35],

mapTypeControl : true ,

scaleControl: true ,

min_zoom: 20 //

}

});

});




* This source code was highlighted with Source Code Highlighter .








おわりに



これは、ジオコーディングの結果を手動で調整する方法です。

画像



デモ

ソースコード



updありがとう、Web開発に移行

upd2間違った影を削除しました



All Articles