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間違った影を削除しました

Source: https://habr.com/ru/post/J97979/


All Articles