gpt4 book ai didi

javascript - TomTom MapKit + Leaflet 显示路线标记

转载 作者:行者123 更新时间:2023-11-28 07:02:27 25 4
gpt4 key购买 nike

嘿伙计们,我目前遇到了一个问题,我正在使用带有传单的 tomtom api 在 map 上生成从 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 弹出窗口仅在 map 加载时打开。

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

我尝试从 map 对象中获取开始和结束标记并对其进行绑定(bind)。哪个不起作用

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

我想尝试使用markermanager获取标记,但找不到开始和结束标记的id...所以我可以在此之后绑定(bind)一个弹出窗口。

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

然后我有点绝望,如果我可以使用删除路线标记 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 或使用透明图标,然后创建我自己的标记,但这不是解决方案,对吗?

简单的目标是单击开始标记 -> 打开弹出窗口并显示信息,有些用于结束标记

感谢任何帮助

亲切的问候,克里斯托弗

最佳答案

您可以使用Extended DivIcon创建自定义标记并为其指定 ID。使用 ID,您可以将 Popup 绑定(bind)到其上。

关于javascript - TomTom MapKit + Leaflet 显示路线标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32004742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com