在地图上绘制边界矩形后,绘制另一个矩形不会删除上一个矩形

发布于 2025-02-11 04:27:56 字数 672 浏览 1 评论 0原文

我创建了一个在地图上绘制边界矩形的函数。当我使用创建一个新的矩形功能时,带有传单随附的功能时,手动绘制的矩形不会清除。当某人使用创建新矩形时,如何清除手动绘制的矩形?

function drawRectangle()

{

var north = document.getElementById("north").value;
 var west = document.getElementById("west").value;
var east = document.getElementById("east").value;
var south = document.getElementById("south").value;
 var lat_lon = [[north,east],[south,west]];

  var rectangle = L.rectangle(lat_lon, { draggable: true ,redraw:true});
  rectangle.addTo(map);
 map.fitBounds(rectangle.getBounds());
}

手动添加矩形

I created a function that draws a bounding rectangle on the map. When I use create a new rectangle function that comes with leaflet the manually drawn rectangle is not cleared. How to clear the manually drawn rectangle when someone uses the create new rectangle?

function drawRectangle()

{

var north = document.getElementById("north").value;
 var west = document.getElementById("west").value;
var east = document.getElementById("east").value;
var south = document.getElementById("south").value;
 var lat_lon = [[north,east],[south,west]];

  var rectangle = L.rectangle(lat_lon, { draggable: true ,redraw:true});
  rectangle.addTo(map);
 map.fitBounds(rectangle.getBounds());
}

Manually Added Rectangle

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

三人与歌 2025-02-18 04:27:56

如果您在绘制下一个矩形之前将矩形声明在drawRectangle函数外面,则可以从地图上删除它:

var rectangle;
function drawRectangle()
{
  if(rectangle)
    rectangle.remove(map)

  var north = document.getElementById("north").value;
  var west = document.getElementById("west").value;
  var east = document.getElementById("east").value;
  var south = document.getElementById("south").value;
  var lat_lon = [[north,east],[south,west]];

  rectangle = L.rectangle(lat_lon, { draggable: true ,redraw:true});
  rectangle.addTo(map);
  map.fitBounds(rectangle.getBounds());
}

或者如果您希望在单击矩形按钮中将该逻辑放入事件处理程序中:

map.on('editable:drawing:move', function (e) { 
  if(rectangle)
    rectangle.remove(map)
});

If you declare rectangle outside of the drawRectangle function you can remove it from the map before you draw the next rectangle:

var rectangle;
function drawRectangle()
{
  if(rectangle)
    rectangle.remove(map)

  var north = document.getElementById("north").value;
  var west = document.getElementById("west").value;
  var east = document.getElementById("east").value;
  var south = document.getElementById("south").value;
  var lat_lon = [[north,east],[south,west]];

  rectangle = L.rectangle(lat_lon, { draggable: true ,redraw:true});
  rectangle.addTo(map);
  map.fitBounds(rectangle.getBounds());
}

Or if you want it to be removed when you click the rectangle button put that logic in the event handler:

map.on('editable:drawing:move', function (e) { 
  if(rectangle)
    rectangle.remove(map)
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文