Как получить в переменной тип геометрии из панели инструментов рисования листовки - PullRequest
1 голос
/ 01 ноября 2019

Я использую плагин рисования Leaflet в своем приложении 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);
    }
}

Теперь я могу получить только координаты, но не могуполучить тип геометрии, нажав на панель инструментов

1 Ответ

0 голосов
/ 03 ноября 2019

Я нашел решение для этого, я не уверен, что это лучшее решение, но оно работает.

Я получаю 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"
      }

Если вы выбрали геометрию, у маркера _ есть координаты, а у других - нет, поэтому в этом случае вы можете управлять выбранной геометрией.

...