我得到了一个接近的代码,但我不确定,因为我是第一次使用 Leaflet js。
我的意图是:假设 Leaflet js 正在显示地图或非地理数据,并且我有一个与 Leaflet js 相关的工具栏。工具栏有许多标记,如圆形、多边形、方形等。当用户单击工具栏上的任何标记开始在地图上绘制时,标记的绘制何时完成,我怎么知道?
我如何附加一个函数来作为绘图完成的回调,并且该函数还让我知道标记的纬度和经度。如果我知道纬度和经度,那么我可以保存在数据库中,稍后我们可以重复使用它来绘制形状。
我得到的下面的代码
var map = L.map('mapcanvas').setView([51.505, -0.09], 13);
map.on('click', function(e){
// Place marker
var marker = new L.marker(e.latlng).addTo(map);
// Ajax query to save the values:
var data = {
lat: e.latlng.lat,
lng: e.latlng.lng
}
// saving lat and lng to db by ajax call
var request = new XMLHttpRequest();
request.open('POST', '/my/url', true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
request.send(data);
});
请看一下代码,我不确定它是否解决了我的目的,因为这里的代码与地图的点击事件一起使用。
所以当我们点击地图时,标记绘制就完成了。因此,请阅读我的文章并了解我在寻找什么,并建议我如何实现它的最佳想法。谢谢
取决于您用来绘制多边形/形状的内容。如果您使用 leaflet.draw,您会执行以下操作:
map.on('draw:created', function(e) {
var points = JSON.stringify(e.layer.toGeoJSON());
});
然后将点保存到您的数据库中。
阅读传单.draw文档,它非常完整且简单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)