为Leaflet指令重用现有的映射实例

时间:2015-10-05 14:47:01

标签: leaflet angular-leaflet-directive

我试图将Leaflet Editable functionality添加到我当前的地图中,该地图是由传单指令创建的。我用:

获取L.map实例
FOR /F "usebackq tokens=*" %%d IN (`DIR /AD /OD /B`) DO (
    SET THE_DIR=%%d
)
ECHO THE_DIR is "%THE_DIR%"

然而,传单可编辑需要在创建地图时设置leafletData.getMap().then(function(map) { // where map is the Leaflet map instance }

那么,有没有办法创建一个L.map实例

editable: true

然后将它附加到Leaflet角度指令?

更新:

我试图为Leaflet添加一个钩子

var map = L.map('map', {editable: true});

它成功创建了editTools,但是

L.Map.addInitHook(function () {
  this.whenReady(function () {
    this.editTools = new L.Editable(this, this.options.editOptions);
    console.log('L.map', this);
  });
}

仍无效

2 个答案:

答案 0 :(得分:0)

您是否尝试将editable: true添加到默认设置?

angular.extend($scope, {
    defaults: {
        editable: true
    },
    center: {
        lat: 51.505,
        lng: -0.09,
        zoom: 8
    }
});

<leaflet defaults="defaults" lf-center="center" height="480px" width="640px"></leaflet>

答案 1 :(得分:0)

对于像我这样的人来说,现有的地图可以编辑

var map = L.map('map', {editable: true});

相同
var map = L.map('map');
map.editTools = new L.Editable(map);