很难将我的问题写成文字,但我会尝试。我正在使用传单。我有一个包含很多关于路灯的位置和信息的图层,但是有些位置不合适。那么可以拖动由geoJSON文件信息定位的标记吗?
奖金问题(目前不是那么重要):如果可以进行拖动,那么是否有可能将这些更改保存到geojson文件中?
关于该图层的代码。
tv = new L.geoJson(tv, {
pointToLayer: function (feature, layer) {
return L.marker(layer, {icon: asteriskorangeicon });
},
onEachFeature: onEachFeature2,
});
function onEachFeature2(feature, layer) {
if (feature.properties) {
layer.bindPopup("<br><b><big><u>ID: " + feature.properties.id + "</br></b></big></u><br> <b>01_NR: </b>" + feature.properties.nr01
+ "<br><b>Kilp:</b> " + feature.properties.kilp + "<br><b>Phase: </b>" + feature.properties.phase_03 + "<b><br>kand_t1_04: </b>"
+ feature.properties.kand_t1_04 + "<b><br>kand_t2_05: </b>" + feature.properties.kand_t2_05 + "<br><b>kand_om_06: </b>" + feature.properties.kand_om_06
+ "<br><b>kand_kp_07:</b> " + feature.properties.kand_kp_07 + " <br><br>"
);
}
}
谢谢, 克里斯蒂安
答案 0 :(得分:3)
要使L.geoJson创建的每个标记都可拖动,您需要做的就是在onEachFeature函数中添加以下内容:
function onEachFeature2(feature, layer) {
layer.options.draggable = true;
...
答案 1 :(得分:2)
尝试使用geojson.io编辑geoJSON。用户界面允许您将标记拖动到地图,然后geoJSON将更新以反映这些更改。有关如何添加和编辑geoJSON的更多详细信息,请参阅下面的gif。
答案 2 :(得分:0)
最好查看Leaflet API reference documentation - the option is dragging
on the markers object。
return L.marker(layer, {icon: asteriskorangeicon, dragging: true });
当然,这不允许您将结果保存到图层。为此,请使用geojson.io。
答案 3 :(得分:0)
如果要从传单地图导出要素,可以迭代所有图层并请求GeoJSON表示。
E.g。
map.eachLayer(function(layer){
if(layer.toGeoJSON){
console.log(layer.toGeoJSON())
}
});