2015-08-14 39 views
1

嘿傢伙我目前遇到問題我正在使用tomtom api和小冊子在地圖上生成一條從A點到B點的路由。現在這個工作正常,問題是我還沒找到一種與從displayroute調用中自動生成的標記進行交互的方式。TomTom MapKit + Leaflet displayroute Marker

Basicly這是我Routecall

Tommap.displayRoute([[Ls.Get('latitude'), Ls.Get('longitude')], [cusLat, cusLng]], function (response) { 
       //Tommap.removeLayer(Tommap.endMarker); 
       console.log(response) 
       $scope.values = response 
       $scope.instructions = response.instructions 
       console.log(Tommap) 

      }); 

現在要麼TomTom公司的API或單張正在生成2個標記(StartMarker和結束標記),現在我需要打開一個彈出窗口,如果用戶點擊任何這些標記來顯示有關位置的信息。

我試過至今:

創建於同一位置的標記被創建,這是工作,但沒有1的onclick彈出剛打開地圖加載時彈出。

var popup = L.popup() 
    .setLatLng([Ls.Get('latitude'), Ls.Get('longitude')]) 
    .setContent("I am a standalone popup.") 
    .openOn(map); 

我試圖從Map對象中獲取Start和Endmarker,並對其進行綁定。這沒有工作

Tommap.endMarker.bindPopup("Hello world!"); 

我想嘗試獲得與markermanager標記,但無法找到的開始和結束標記的ID ......因此,我可以後的彈出綁定。

var marker = markerManager.getMarkerById("start/endmarkerId"); 

然後,我是有點絕望,但如果我可以通過使用 map.removeLayer(map.removeLayer(marker));

刪除Routemarkers,然後在起點和終點創建我自己的標記

var marker = new tomtom.Marker([Ls.Get('latitude'), Ls.Get('longitude')]); 
Tommap.addLayer(marker); 

但現在我有從顯示路線和自我添加的標記生成的2個標記...

然後,我看着tomt om.map.js,我發現這個

tomtom.Map.MARKER_OPTIONS_ROUTE_END={iconUrl:"marker_customer.svg",iconSize:[43,49],iconAnchor:[11,40],popupAnchor:[0,0]} 

我大概可以設置圖標大小爲0,0或使用一個透明的圖標,然後創建自己的標記,但不能說是解決方案嗎?

簡單的目標是點擊開始標記 - >打開一個彈出,並顯示信息,L幾無二結束標記

任何幫助表示讚賞

親切的問候, 克里斯托弗

回答

0

你可以使用Extended DivIcon來創建一個自定義標記並給它一個ID。使用ID,您可以將Popup綁定到它。

+0

好主意,但不是真正的解決方案之前,我添加另一個插件ID只是去與大小0和創建新的標記....我會很好,如果我可以使用已經存在的標記從displayroute功能創建...謝謝無論如何 – stackg91