2017-08-23 9 views
-1

マーカーをドラッグしてからマーカーを残した場所に円を表示したい。しかし、私はそれを行うことはできません。私は理由を理解できない...前のサークルは消えるが、新しいサークルは現れない。 は、ここに私のコードです:私は、固定されているリーフレット円でドラッグするマーカー

... 
var marker; 
var circle; 
var all; 
mymap.on('click', function (e) { 
    if (all) { 
    mymap.removeLayer(all); 
    } 
    marker = new L.Marker(e.latlng,{draggable:true}); 
    circle = new L.circle(e.latlng, {radius: 600}); 
    marker.on('dragend', function (e) { 
    if (circle) { 
    mymap.removeLayer(circle); 
    } 
    var newPos = e.target.getLatLng(); 
    circle = new L.circle(newPos, {radius: 600}); 
    }); 

    all = L.layerGroup([marker, circle]); 
    mymap.addLayer(all); 
}); 
... 
+0

あなたが働いて、[スニペット](https://stackoverflow.blog/を追加することができます2014/09/16/introduction-runnable-javascript-css-and-html-code-snippets /)?私たちがあなたを助けることははるかに簡単です。 –

答えて

-1

それの問題は、円の層が、それはmap.Soに表示されていなかったので、ドラッグイベント後のマーカーと再び結合しなかったことでしたか私はmarker.Nowで再び新しいサークルを組み合わせるために再び「dragendイベント」関数内のコード

all = L.layerGroup([marker, circle]); 
    mymap.addLayer(all); 

を含めるようにそれをしなければならなかったそのことに懸命に取り組んずに投稿するための完璧な.Sorry作業。

ので、完成したコードは次のようになります。

...

marker.on('dragend', function (e) { 
    if (circle) { 
    mymap.removeLayer(circle); 
    } 
    var newPos = e.target.getLatLng(); 
    circle = new L.circle(newPos, {radius: 600}); 
     all = L.layerGroup([marker, circle]); 
     mymap.addLayer(all); 
    }); 

    all = L.layerGroup([marker, circle]); 
    mymap.addLayer(all); 
}); 

...