Javascript 是否可以拖动从geojson文件获取坐标的标记?

Javascript 是否可以拖动从geojson文件获取坐标的标记?,javascript,leaflet,geojson,Javascript,Leaflet,Geojson,我的问题很难用语言表达,但我会尽力的。我在用传单。我有一个图层,其中包含了很多关于路灯的位置和信息,但有些有点不合适。那么,是否可以拖动由geoJSON文件信息定位的标记 额外的问题(目前不太重要):如果可以拖动,那么是否有可能将这些更改保存到geojson文件中 关于那个层的代码 tv = new L.geoJson(tv, { pointToLayer: function (feature, layer) { return L.marker(laye

我的问题很难用语言表达,但我会尽力的。我在用传单。我有一个图层,其中包含了很多关于路灯的位置和信息,但有些有点不合适。那么,是否可以拖动由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>"       
        );
    }
}
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;
    ...