检测 angular 传单地图上的右键单击位置

Detecting right click position on angular leaflet map

我有一个使用 angular-leaflet-directive 0.7.11 显示地图的移动页面,并且已经声明了我需要的事件,如下所示:

$scope.map = {
    events: [
        'mousedown',
        'contextmenu'
    ],
    ...
}

$scope.$on('leafletDirectiveMap.mousedown', function (event) {
    debugger;
});

在调试器语句所在的位置,event 变量不包含有关地图点击位置的信息。当触发 contextmenu 事件时,指令提供了相同的 event 格式。

事实上,如果我检查整个 event 变量,它只是一个 Object,而不是 Event:

the docs wrong? Is the example 是不是遗漏了什么?如何获得我右击(按住)的特定位置的 X/Y Lat/Lng?

您需要使用'leafletEvent'。试试这个:

myApp.controller('YourController', ['$scope', 'leafletEvent', function($scope) {

    $scope.$on('leafletDirectiveMap.mousedown', function (event, leafletEvent) {
        leafletData.getMap().then(function(map) {
            map.on('click', function(e) {
                console.log('e');
                console.log(e);
                console.log('e.latlng:');
                console.log(e.latlng); // L.LatLng {lat: 19.642587534013046, lng: -4.5703125}
            });
        });
    });
}]);