2016-10-10 21 views
1

私は何かをしようとしています:https://github.com/IvanSanchez/Leaflet.Polyline.SnakeAnim/blob/master/demo-group.gif 私は複数のマーカーがあります。サンプルコードhttps://github.com/IvanSanchez/Leaflet.Polyline.SnakeAnim/blob/master/demo-group.htmlリーフレット:featureGroupに複数のマーカーを追加するには

各位置は、手動で、私は多くのマーカー(例えば500マーカー)を持っている場合私の質問は、どのように手動で各マーカーを追加することなく、ルートを作成することができている

 var trd = [63.5, 11], 
     mad = [40.5, -3.5], 
     lnd = [51.5, -0.5], 
     ams = [52.3, 4.75], 
     vlc = [39.5, -0.5]; 

    var route = L.featureGroup([ 
     L.marker(trd), 
     L.polyline([trd, ams]), 
     L.marker(ams), 
     L.polyline([ams, lnd]), 
     L.marker(lnd), 
     L.polyline([lnd, mad]), 
     L.marker(mad), 
     L.polyline([mad, vlc]), 
     L.marker(vlc) 
    ]); 

を使用して追加されていますL.featureGroupにポリラインを追加します。

var bounds = new L.LatLngBounds(); 
    for (var i = 0; i < mTool.length; i++) { 
      var loc = new L.LatLng(mTool[i].lat, mTool[i].lon); 
      bounds.extend(loc); 
      var marker = new L.Marker(loc); 
      map.addLayer(marker); 
    } 
    map.fitBounds(bounds); 

答えて

1

編集:あなたがしたいことは同じgithub project of IvanSanchezによって提供されます。 demo-group.htmlの代わりにdemo.htmlをお読みください

これは簡単に示唆しているように、マーカーの配列をループすることで簡単に実行できます。コードは以下のように考えられます。

var markers = [[63.5, 11], 
     [40.5, -3.5], 
     [51.5, -0.5], 
     [52.3, 4.75], 
     [39.5, -0.5]]; 

var route = L.featureGroup().addTo(map); 

var n = markers.length; 

for (var i = 0; i < n-1; i++) { 
      var marker = new L.Marker(markers[i]); 
      var line = new L.polyline([markers[i],markers[i+1]]); 
      route.addLayer(marker); 
      route.addLayer(line); 
}; 
route.addLayer(new L.Marker(markers[n-1])); 

map.fitBounds(route.getBounds()); 

私は要旨(here)の実施例を作成しました。

+0

私は、各マーカーがポリライン上のポップアップベースをマーカーに触れることができるかどうか疑問に思っています。 – Tenz

+0

はい、マーカーのアイコンの['popupAnchor'](http://www.leafletjs.com/reference-1.0.0.html#icon-popupanchor)オプションで遊んでください。 – IvanSanchez

+0

ありがとう、私はこのものにはあまりにも新しいです。 ^^ – Tenz

関連する問題