【问题标题】:How to get in a variable the geometry type from leaflet draw tool bar如何从传单绘制工具栏中获取变量的几何类型
【发布时间】:2019-11-01 09:02:19
【问题描述】:

我在已经安装传单的 Angular 应用中使用传单绘制插件。

如果工具栏中选定的几何图形是点、线、多边形等,我想输入一个变量。

在角度分量中,我有这个函数来获取坐标,但我需要知道几何:

this.globals.map.addControl(drawControl).on('click',onClick);
    function onClick(e) {
        var lat;
        var lng;
        var coordsPair=[]
        lat=e.latlng.lat;
        lng=e.latlng.lng
        coordsPair.push(lat,lng)
        polygon.push(coordsPair);
        coordsPair=[];
        console.log(polygon);
    }
}

现在我只能获取坐标,但无法通过工具栏获取几何类型

【问题讨论】:

    标签: angular leaflet leaflet.draw


    【解决方案1】:

    我已经找到了解决方案,我不确定这是否是最佳解决方案,但它确实有效。

    我在一个变量中得到了 drawControl:

    drawControl._toolbars.draw._modes.polygon.handler._markers
    

    然后,点击地图,我可以控制几何图形:

    if(drawControl._toolbars.draw._modes.polygon.handler._markers!=undefined){
             polygonButton=drawControl._toolbars.draw._modes.polygon.handler._markers[counter]._latlng;
              lat=polygonButton.lat;
             lng=polygonButton.lng;
             geometry='POLYGON'
          }else if(drawControl._toolbars.draw._modes.polyline.handler._markers!=undefined){
            polylineButton=drawControl._toolbars.draw._modes.polyline.handler._markers[counter]._latlng;
            lat=polylineButton.lat;
            lng=polylineButton.lng;
            geometry="LINESTRING"
          } else if(drawControl._toolbars.draw._modes.marker.handler._marker!=undefined){
            markerButton=drawControl._toolbars.draw._modes.marker.handler._marker._latlng;
            lat=markerButton.lat;
            lng=markerButton.lng;
            geometry="POINT"
          }
    
    

    如果你选择了一个几何体_marker有坐标,其他的没有,所以这样你就可以控制选择的几何体了。

    【讨论】:

      【解决方案2】:

      我使用leaflet.draw 已经有一段时间了,但我认为您想收听draw:created 事件。我认为该事件为您提供了创建的图层类型。

      我分叉了某人的 fiddle 并连接到 draw:created 事件进行测试,该事件似乎确实为您提供了字符串类型以及创建的对象。

      {layer: i, layerType: "polyline", type: "draw:created", target: i, sourceTarget: i}
      {layer: i, layerType: "polygon", type: "draw:created", target: i, sourceTarget: i}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-01-15
        • 1970-01-01
        • 2015-07-26
        • 2012-07-03
        • 2016-12-03
        相关资源
        最近更新 更多