Javascript 是否可以拖动从geojson文件获取坐标的标记?
我的问题很难用语言表达,但我会尽力的。我在用传单。我有一个图层,其中包含了很多关于路灯的位置和信息,但有些有点不合适。那么,是否可以拖动由geoJSON文件信息定位的标记 额外的问题(目前不太重要):如果可以拖动,那么是否有可能将这些更改保存到geojson文件中 关于那个层的代码Javascript 是否可以拖动从geojson文件获取坐标的标记?,javascript,leaflet,geojson,Javascript,Leaflet,Geojson,我的问题很难用语言表达,但我会尽力的。我在用传单。我有一个图层,其中包含了很多关于路灯的位置和信息,但有些有点不合适。那么,是否可以拖动由geoJSON文件信息定位的标记 额外的问题(目前不太重要):如果可以拖动,那么是否有可能将这些更改保存到geojson文件中 关于那个层的代码 tv = new L.geoJson(tv, { pointToLayer: function (feature, layer) { return L.marker(laye
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>"
);
}
}
tv=new L.geoJson(tv{
pointToLayer:函数(功能,层){
返回L.marker(层,{icon:asteriskorangeicon});
},
onEachFeature:onEachFeature2,
});
功能onEachFeature2(功能,图层){
if(feature.properties){
layer.bindPopup(“
ID:+feature.properties.ID+”
01\u NR:+feature.properties.nr01
+“
Kilp:+feature.properties.Kilp+”
阶段:“+feature.properties.Phase\u 03+”
kand\u t1\u 04:
+feature.properties.kand_t1_04+”
kand_t2_05:“+feature.properties.kand_t2_05+”
kand_om_06:“+feature.properties.kand_om_06
+“
kand_kp_07:+feature.properties.kand_kp_07+”
”
);
}
}
谢谢,
Kristjan尝试使用编辑您的geoJSON。UI允许您将标记拖到地图上,然后geoJSON将更新以反映这些更改。有关如何添加和编辑geoJSON的更多详细信息,请参见下面的gif
最好查看-
当然,这不允许将结果保存到图层。为此,请使用。如果要从传单地图中导出要素,可以迭代所有层并请求GeoJSON表示 例如
要使L.geoJson创建的每个标记都可拖动,只需在onEachFeature函数中添加以下内容:
function onEachFeature2(feature, layer) {
layer.options.draggable = true;
...
还应该提到,您的“tv”GeoJSON层与您通过地图所做的任何更改保持同步。您可以将标记拖到您的内容上,然后只需调用tv.toGeoJSON()方法即可从该层获取更新的GeoJSON。
map.eachLayer(function(layer){
if(layer.toGeoJSON){
console.log(layer.toGeoJSON())
}
});
function onEachFeature2(feature, layer) {
layer.options.draggable = true;
...