首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TomTom MapKit +单张显示路线标记

TomTom MapKit +单张显示路线标记
EN

Stack Overflow用户
提问于 2015-08-14 15:38:52
回答 1查看 616关注 0票数 1

嘿,伙计们,我现在有一个问题,我正在使用tomtom api和leaflet在地图上生成一条从A点到B点的路线。现在这工作得很好,问题是我还没有找到一种方法来与displayroute调用自动生成的标记进行交互。

基本上,这是我的路由呼叫

代码语言:javascript
复制
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弹出窗口在地图加载时打开。

代码语言:javascript
复制
var popup = L.popup()
    .setLatLng([Ls.Get('latitude'), Ls.Get('longitude')])
    .setContent("I am a standalone popup.")
    .openOn(map); 

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

代码语言:javascript
复制
Tommap.endMarker.bindPopup("Hello world!"); 

我想尝试使用markermanager获取标记,但是找不到开始标记和结束标记的id……这样我就可以在那之后绑定一个弹出窗口。

代码语言:javascript
复制
var marker = markerManager.getMarkerById("start / endmarkerId");

然后我有点绝望,尽管如果我可以使用map.removeLayer(map.removeLayer(marker));删除Routemarker

然后在起点和终点创建我自己的标记

代码语言:javascript
复制
var marker = new tomtom.Marker([Ls.Get('latitude'), Ls.Get('longitude')]);
Tommap.addLayer(marker);

但是现在我有了从显示路线生成的两个标记和自己添加的标记…

然后我在tomtom.map.js中找到了这个

代码语言:javascript
复制
tomtom.Map.MARKER_OPTIONS_ROUTE_END={iconUrl:"marker_customer.svg",iconSize:[43,49],iconAnchor:[11,40],popupAnchor:[0,0]}

我可以将图标大小设置为0,0,或者使用透明图标,然后创建自己的标记,但这不是解决方案,对吧?

简单的目标是单击开始标记->打开一个弹出窗口并显示信息,l表示结束标记

感谢您的任何帮助

致以亲切的问候,克里斯托弗

EN

回答 1

Stack Overflow用户

发布于 2015-08-14 21:23:49

您可以使用Extended DivIcon创建自定义标记并为其指定ID。有了这个ID,你就可以在它上面绑定一个弹出窗口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32004742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档