2017-03-26 7 views
0

リーフレットの新機能で、これまで楽しみにしています。世界中の170以上のマーカーを持つインタラクティブな地図があります。各マーカーには、ポップアップにタイトルが付きます。また、ポップアップの内側に「ズーム」リンクを追加したいと思います。ユーザーがズームをクリックすると、マップをマーカの中央に配置し、特定のズームレベル(画像を参照)に拡大します。zoom toリーフレット:パン、センター、地図のマーカー位置へのズーム

マーカは、タイトルが付いたマーカー配列としてPHPで生成されています。 lat/longsを呼び出し、 "items"というjavascript varに挿入します。

for (var i = 0; i < items.length; i++) { 
     marker = new L.marker([items[i][1],items[i][2]]) 
      .bindPopup(items[i][0]) 
      .addTo(map); 
    } 

答えて

2
  1. (インデックスは一意である必要があります)連想配列であなたのマーカーをしてください。
  2. ポップアップテキストにリンクを挿入して、このインデックスを引数として渡す関数を呼び出します。ここで
  3. JavaScriptの機能の使用には
  4. panToまたはflyTo

は、いくつかの擬似コードです:

var markersById = {}; 

for (var i = 0; i < items.length; i++) { 
    marker = new L.marker([items[i][1],items[i][2]]) 
     .bindPopup('<a href="javascript:centerMapOnPost(' + i + ')">Center on map</a>') 
     .addTo(map); 

    markersById[i] = marker; 
} 


function centerMapOnPost(markerId) { 
    map.panTo(markersById[markerId].getLatLng()); 
} 

あなたは、私がそれを使用する方法を確認するためにhttp://www.franceimage.comで見ることができ(マーカーをクリックし、ポップアップで円のアイコンをクリック)

関連する問題