2013-05-29 73 views
0

我在網站上使用Mapbox作爲動態地圖。它工作得非常好,除了我有一個側欄,其中列出了更多描述和圖像的引腳。我想這樣做,當我點擊該邊欄時,它會觸發地圖上該標記的點擊事件。HTML鏈接到傳單/ Mapbox標記

我以前一直都在用Google Maps來做這件事,但現在我被卡住了,因爲即使在我可以保留標記的實例的情況下,出於某種原因我也無法點擊它。它只是沒有什麼(也許我需要重新綁定點擊事件,但我不知道如何使用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的想法)修復非觸發事件OR 2)使HTML鏈接觸發mapbox標記單擊事件或.openPopup?

謝謝,祝你有美好的一天!

+1

學習本示例可能會對您有所幫助:http://www.mapbox.com/map-sites/foursquare-store-locator/ –

+0

謝謝!我會檢查出來 – TomShreds

+0

你有沒有找到解決方案? –

回答

0

MapBox的標記圖層是Leaflet標記的集合。您可以創建href以查找基於其圖層ID的特定標記的功能。

map.markerLayer.getLayers()返回包含_leaflet_id和方法togglePopup的圖層對象數組。

試試您的href廣播匹配小葉ID,然後火map.markerLayer.getLayers()[i].togglePopup()

讓我知道,如果這有助於。