我使用 Mapbox 在网站上制作动态地图。它工作得非常好,除了我有一个侧边栏,其中列出了带有更多描述和图像的引脚。我想这样做,所以当我单击该侧边栏时,它会触发地图上该标记的单击事件。
我曾经一直使用谷歌地图这样做,但现在我被卡住了,因为即使我可以保留标记的实例,由于某种原因我无法触发点击它。它根本什么都不做(也许我需要重新绑定点击事件,但我不知道如何使用 mapbox)
我在 Google 和 SO 上遇到了一些关于这个问题的问题,但除了“保留实例”之外,没有一个问题能真正回答这个问题,这在某些情况下并不总是可能的。
所以基本上我有一个像这样的jQuery点击事件:
var marker = {
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [lng, lat]
},
properties: {}
};
if (isPin) {
marker.properties = pinStyles.pin;
} else if (isWinery) {
marker.properties = pinStyles.winery;
} else {
marker.properties = pinStyles.user;
}
marker.properties.title = locationName;
marker.properties.description = pin.description;
var markerObject = L.mapbox.markerLayer(marker);
// Add to cluster
markers.addLayer(markerObject);
$('#marker_list a.marker_item:last').click(function() {
var geoJson = markerObject.getGeoJSON();
markerObject.fire('click'); // does nothing (openPopup makes "Uncaught TypeError: Object [object Object] has no method 'openPopup' " so I guess I'm not doing it right)
});
我有这个(mapbox标记的点击事件):
map.markerLayer.on('click', function(e) {
map.setView(e.layer.getLatLng(), map.getZoom());
});
任何人都知道 1) 修复非触发事件或 2) 使 HTML 链接触发 mapbox 标记单击事件或 .openPopup?
感谢,并有一个愉快的一天!