2016-11-02 17 views
1

データベースに格納されているポリゴンがたくさんあります。 leaflet-drawツールバーを使用して編集できるようにマップに追加したいと思います。ポリゴンはマップに追加されるようになりましたが、編集することはできません。既存のリーフレットポリゴンを既存のリーフレットレイヤーに追加

これは、新しく描いた図形が追加されたlayerGroup()に追加されていないためだと思います。

助けてください。

+1

それはあなたの問題を解決しましたか? – Manuel

+0

ありがとうございました! – codejunkie

答えて

2

ポリゴンをdrawnItemsフィーチャグループに追加する必要があります。たとえば、var polyLayers = dbArray;がポリゴンを持つデータベース配列であるとしましょう。まず、描画されたアイテム(例えば、var drawnItems = new L.FeatureGroup(); ans)にフィーチャーグループを作成し、マップに追加します(map.addLayer(drawnItems);)。次に、あなたのデータベースのポリゴンを反復処理し、drawenItems FeatureGroupにそれらを追加することができ、簡単な必要性:

for(layer of polyLayers) { 
     drawnItems.addLayer(layer); 
    }; 

今の層は、マップや編集可能に追加されます。ここで

EXAMPLEを行く:

var drawnItems = new L.FeatureGroup(); 
    map.addLayer(drawnItems); 

    var polyLayers = []; 

    var polygon1 = L.polygon([ 
     [51.509, -0.08], 
     [51.503, -0.06], 
     [51.51, -0.047] 
    ]); 
    polyLayers.push(polygon1) 

    var polygon2 = L.polygon([ 
     [51.512642, -0.099993], 
     [51.520387, -0.087633], 
     [51.509116, -0.082483] 
    ]); 
    polyLayers.push(polygon2) 

    // Add the layers to the drawnItems feature group 
    for(layer of polyLayers) { 
     drawnItems.addLayer(layer); 
    } 
+0

この質問に追加する。私は、ユーザーが編集した図形をDBに保存したいと思います。私はちょうど "draw:edited"イベントで以前の値とlatlngsを比較するブルートフォース検索を行うべきでしょうか、それとも良い方法がありますか? – codejunkie

関連する問題