我正在尝试编写此功能,以便点击在Google地图中创建的新项目应该panTo()
运行到指定的latlng
。我不知道addListener
是否无法向回调函数发送参数。
function createLinkToMarker(title, latlng, container) {
var a = L.DomUtil.create('a', 'link-marker', container);
a.href='#',
a.innerHTML = title;
function pan() {//??? why I passing argument(latlng) for each new A element?
console.log(arguments);
map.panTo(latlng);
}
L.DomEvent
.addListener(a, 'click', L.DomEvent.stopPropagation)
.addListener(a, 'click', L.DomEvent.preventDefault)
.addListener(a, 'click', pan);
return a;
}
答案 0 :(得分:2)
您可能只需将latlng值添加到DOM元素并在侦听器中检索它。如果您使用HTML5,则可以存储前缀为“data”的项目,这样您就可以将元素中的纬度存储为“data-lat”,将经度存储为“data-lon”,即:
a.setAttribute( "data-lat", latlng.lat );
a.setAttribute( "data-lon", latlng.lng );
然后在你的听众中:
var lat = this.getAttribute( "data-lat" );
var lon = this.getAttribute( "data-lon" );
map.panTo( new L.LatLng( lat, lon ) );
希望这有帮助!