2016-10-01 27 views
0

ユーザーがクリックしたときに新しいサークルマーカーが作成されると、最後のcircleMarkerを削除します。新しいマーカーが作成されたときにサークルマーカーを削除します

 app.initialize(); 

     var count = 0; 

     var location; 
     map.on('click', function(e){ 
      if (count == 1){ 
       map.removeLayer(location); 
      }else{ 
       count = 1; 
      } 
      var cords = String(e.latlng); 
      cords = cords.match(/\(([^)]+)\)/)[1]; 
      lat = cords.substring(0, cords.search(",")); 
      lng = cords.substring(cords.search(",")+1); 
      location = new L.circleMarker([lat, lng], {radius:100,}); 
      map.addLayer(location); 


     }); 

これまでのコードですが、クリックするたびにERR_FILE_NOT_FOUNDが表示されます。

ありがとうございました。私はそれはので、ここで働いてしまった

+0

'ERR_FILE_NOT_FOUND.'あなたは、地図上のすべてと警告だけでテキストメッセージを削除しようとしていますをクリックしますか?それとも、このコード以外で作業していますか? –

+0

ERR_FILE_NOT_FOUNDは、map.on関数から位置を取得すると発生しているようです。もしそれが内部にあれば、私はcircleMarkerを1つ作ることができますが、2番目にremoveLayer()はエラーを作り、マーカーを見つけることができません。 –

答えて

2

、私はあなたのコードをovercomplicatedているかもしれないと思います。次のコードを記述するのに十分です:

var location = new L.circleMarker(); 

map.on('click', function(e) { 
     map.removeLayer(location); 
     location = new L.circleMarker(e.latlng, {radius:10,}); 
    map.addLayer(location); 
}); 

これはあなたが望んでいるかどうかを確認するためにバイオリンを見てください:https://jsfiddle.net/vaillant/ch4qb28x/

1

は、誰がこの問題を持っている場合、私がやったことだ:私はあなたが何をしたいのかよく理解していれば

app.initialize(); 
     var mark = L.layerGroup(); 

     map.on('click', function(e){ 
      if (map.hasLayer(mark)){ 
       map.removeLayer(mark); 
       mark.clearLayers(); 
      } 

      addMarker(e); 

     }); 

     function addMarker(e){ 
      var cords = String(e.latlng); 
      cords = cords.match(/\(([^)]+)\)/)[1]; 
      lat = cords.substring(0, cords.search(",")); 
      lng = cords.substring(cords.search(",")+1); 
      mark.addLayer(new L.circleMarker([lat, lng], {radius:100,})); 
      map.addLayer(mark); 
     } 
関連する問題