0

我正在尝试grid_control.jsMapBox中重写,以允许多个工具提示gridControl同时出现在同一个框中。

因此gridControl被激活:

var gridLayer = L.mapbox.gridLayer('example-map.sdfagg22gd');
var tileLayer = L.mapbox.tileLayer('example-map.sdfagg22gd')
map.addLayer(tileLayer);
map.addLayer(gridLayer);
map.addControl(L.mapbox.gridControl(gridLayer));    

然而,我不想重写源代码,而是想扩展这个GridControl类,并使代码与未来的mapbox.js版本更兼容。

var GridControl = L.Control.extend({

options: {
    pinnable: true,
    follow: false,
    sanitizer: require('sanitize-caja'),
    touchTeaser: true,
    location: true
},

我应该怎么做,这是否可取?

另外,关于如何同时允许多个工具提示的任何想法?我是否需要针对活动工具提示的计数器并基于此重做所有操作?任何指针将不胜感激。

据我了解,并发工具提示的可能性是可能的,因为带有工具提示内容的两个单独的框将与{follow : false}选项一起出现。但是如何将它变成以鼠标为中心的移动工具提示(由 激活{follow: true})?

4

1 回答 1

0

简单地:

// get gridControl object and pass it for modification
var gridControl = L.mapbox.gridControl(gridLayer, {follow:true});

// modify the prototype
gridControl.__proto__._onPopupClose = function() {
   this._currentContent = null;
   this._lastContent = null;
   this._pinned = false;
};
于 2013-10-13T21:56:34.427 回答