嘿伙计们,我目前遇到一个问题,我正在使用带有传单的 tomtom api 在地图上生成从 A 点到 B 点的路线。现在这工作得很好,问题是我还没有找到与自动生成的标记交互的方法来自 displayroute 调用。
基本上这是我的 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 或 Leaflet 正在生成 2 个标记(StartMarker 和 Endmarker),现在如果用户单击其中任何一个标记以显示有关位置的信息,我需要打开一个弹出窗口。
到目前为止我尝试了什么:
在创建标记的同一位置创建一个弹出窗口,这是有效的,但不是 onclick 1 弹出窗口仅在地图加载时打开。
var popup = L.popup()
.setLatLng([Ls.Get('latitude'), Ls.Get('longitude')])
.setContent("I am a standalone popup.")
.openOn(map);
我尝试从 Map Object 获取 Start 和 Endmarker 并对其进行绑定。哪个没用
Tommap.endMarker.bindPopup("Hello world!");
我想尝试使用 markermanager 获取标记,但找不到开始和结束标记的 id ......所以我可以在那之后绑定一个弹出窗口。
var marker = markerManager.getMarkerById("start / endmarkerId");
然后我有点绝望,尽管如果我可以通过使用删除 Routemarkers
map.removeLayer(map.removeLayer(marker));
然后在起点和终点创建我自己的标记
var marker = new tomtom.Marker([Ls.Get('latitude'), Ls.Get('longitude')]);
Tommap.addLayer(marker);
但是现在我有从显示路线生成的 2 个标记和自添加的标记...
然后我查看了找到这个的 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 一些用于结束标记
任何帮助表示赞赏
亲切的问候,克里斯托弗