Leaflet 如何使用鼠标和传单.js绘制多段线

Leaflet 如何使用鼠标和传单.js绘制多段线,leaflet,Leaflet,我想用传单在地图上画一条折线。我想采用的基本姿态是: 用户单击并按住鼠标按钮->定义第一个标记。如果用户按住鼠标按钮并移动鼠标,则会显示相应的“橡皮筋” 用户释放鼠标按钮->第二个标记添加到地图中,两个标记通过一条线链接 从第二个标记开始,用户可以使用与上面相同的步骤继续构建第二条线 最终结果应该是由多段线链接的坐标/标记集 正如Julien V和IvanSanchez所说,您可以实现一些类似draw的功能 在下面的示例中: 您可以看到插件的用法。希望有帮助:) //地图的中心 var中心

我想用传单在地图上画一条折线。我想采用的基本姿态是:

  • 用户单击并按住鼠标按钮->定义第一个标记。如果用户按住鼠标按钮并移动鼠标,则会显示相应的“橡皮筋”

  • 用户释放鼠标按钮->第二个标记添加到地图中,两个标记通过一条线链接

  • 从第二个标记开始,用户可以使用与上面相同的步骤继续构建第二条线


最终结果应该是由多段线链接的坐标/标记集

正如Julien V和IvanSanchez所说,您可以实现一些类似draw的功能

在下面的示例中:

您可以看到插件的用法。希望有帮助:)

//地图的中心
var中心=[46.165164,15.750443];
//创建地图
var map=L.map(‘map’).setView(中间,15);
//设置OSM层
蒂莱耶(
'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'{
属性:“数据©”,
最大缩放:18
}).addTo(地图);
//初始化FeatureGroup以存储可编辑图层
var editableLayers=新的L.FeatureGroup();
map.addLayer(可编辑层);
变量选项={
位置:'左上',
抽签:{
多边形:{
AllowerSection:false,//将形状限制为简单多边形
抽屉错误:{
颜色:'#e1e100',//形状相交时将改变颜色
消息:“噢,快!你不能画那个!”//当相交时将显示的消息
},
形状选项:{
颜色:“#97009c”
}
},
多段线:{
形状选项:{
颜色:“#f357a1”,
体重:10
}
},
//通过将工具栏项设置为false来禁用它
多段线:对,
圆:true,//关闭此绘图工具
多边形:是的,
马克:是的,
矩形:对,
},
编辑:{
featureGroup:editableLayers,//必需!!
删除:true
}
};
//初始化绘图控件并将可编辑图层的FeatureGroup传递给它
var drawControl=新的L.Control.Draw(选项);
map.addControl(drawControl);
var editableLayers=新的L.FeatureGroup();
map.addLayer(可编辑层);
地图上('draw:created',函数(e){
变量类型=e.layerType,
层=e层;
如果(类型==‘多段线’){
layer.bindpoop('A polyline!');
}else if(类型==='polygon'){
layer.bindpoop('A polygon!');
}else if(类型==='marker')
{layer.bindpoop('marker!');}
else if(类型==='circle')
{layer.bindpoop('A circle!');}
else if(类型==='rectangle')
{layer.bindpoop('A rectangle!');}
editableLayers.addLayer(层);
});
html,body,#map{边距:0;高度:100%;宽度:100%;}

试验

我对你所描述的一无所知。你可能必须实施它。你为什么不使用令人惊讶的?或其他任何一种,真的。抱歉这么晚才回来。谢谢你的邀请advice@BigONotation没问题,很高兴我能帮忙:)