嘿,伙计们,我现在有一个问题,我正在使用tomtom api和leaflet在地图上生成一条从A点到B点的路线。现在这工作得很好,问题是我还没有找到一种方法来与displayroute调用自动生成的标记进行交互。
基本上,这是我的路由呼叫
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或Leaflet正在生成两个标记(StartMarker和Endmarker),如果用户单击这两个标记中的任何一个以显示有关位置的信息,我需要打开一个弹出窗口。
到目前为止,我尝试了以下内容:
在创建标记的同一位置创建弹出窗口,该弹出窗口正在工作,但不是onclick 1弹出窗口在地图加载时打开。
var popup = L.popup()
.setLatLng([Ls.Get('latitude'), Ls.Get('longitude')])
.setContent("I am a standalone popup.")
.openOn(map); 我尝试从Map对象中获取开始和结束标记,并对其进行绑定。哪个不起作用?
Tommap.endMarker.bindPopup("Hello world!"); 我想尝试使用markermanager获取标记,但是找不到开始标记和结束标记的id……这样我就可以在那之后绑定一个弹出窗口。
var marker = markerManager.getMarkerById("start / endmarkerId");然后我有点绝望,尽管如果我可以使用map.removeLayer(map.removeLayer(marker));删除Routemarker
然后在起点和终点创建我自己的标记
var marker = new tomtom.Marker([Ls.Get('latitude'), Ls.Get('longitude')]);
Tommap.addLayer(marker);但是现在我有了从显示路线生成的两个标记和自己添加的标记…
然后我在tomtom.map.js中找到了这个
tomtom.Map.MARKER_OPTIONS_ROUTE_END={iconUrl:"marker_customer.svg",iconSize:[43,49],iconAnchor:[11,40],popupAnchor:[0,0]}我可以将图标大小设置为0,0,或者使用透明图标,然后创建自己的标记,但这不是解决方案,对吧?
简单的目标是单击开始标记->打开一个弹出窗口并显示信息,l表示结束标记
感谢您的任何帮助
致以亲切的问候,克里斯托弗
发布于 2015-08-14 21:23:49
您可以使用Extended DivIcon创建自定义标记并为其指定ID。有了这个ID,你就可以在它上面绑定一个弹出窗口。
https://stackoverflow.com/questions/32004742
复制相似问题