1

嘿伙计们,我目前遇到一个问题,我正在使用带有传单的 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 一些用于结束标记

任何帮助表示赞赏

亲切的问候,克里斯托弗

4

1 回答 1

0

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

于 2015-08-14T13:23:48.820 回答