基于OpenLayers实现导航地图上(起/终)点的交互式图标显示
创始人
2024-04-19 04:23:13

目录

1、准备 

2、瓦片地图显示

3、增加矢量图层

4、利用click实现鼠标点击效果


       在常见的导航软件中,往往都存在标记起/止点的需求。毕竟路径规划中的重要传入参数就是起止点坐标。在常用的不管是移动端还是PC端,导航地图上一般在选择起止点位置会留下图标标记。如下是在PC端百度地图上的截图:

        但是显示方式是右击鼠标选择起点、终点、途径点。如下: 

        本文最终获得的效果展示:

起止点图标交互式显示

1、准备 

        基于此,这篇文章则是基于OpenLayers简单地实现导航地图上(起/终)点的交互式图标显示。首先准备的资源包括:ol的库文件css和js,再加上起点/终点图标png文件。

2、瓦片地图显示

        使用瓦片数据作为地图,通过服务的方式加载显示,具体的显示方式参考以前写过的文章:地图瓦片数据的多种利用形式以及瓦片数据的浏览显示_nanke_yh的博客-CSDN博客_瓦片数据https://blog.csdn.net/nanke_yh/article/details/125212932

        效果:

3、增加矢量图层

        在地图上增加点图标,则需要在地图之上增加一个矢量图层。

    //创建矢量图层var vecSource = new ol.source.Vector();var vecLayer = new ol.layer.Vector({source: vecSource});vecSource.clear();map.addLayer(vecLayer);//添加到map里面

4、利用click实现鼠标点击效果

	//鼠标点击实现地图上显示起止点图标    var clickcount = 0;$("#map").click(function (e){if(clickcount>=2){//重置点击次数vecSource.clear();clickcount = 0;}var selCoords = map.getEventCoordinate(e);var cPoint = new ol.geom.Point([selCoords[0]*1,selCoords[1]*1]);if(clickcount == 0){//起点var startPtFeature = new ol.Feature(cPoint);//设置自己的样式:图标形式startPtFeature.setStyle(new ol.style.Style({image: new ol.style.Icon({src: 'locate_start.png'})}));vecSource.addFeature(startPtFeature);}else{//终点var endPtFeature = new ol.Feature(cPoint);//设置自己的样式:图标形式endPtFeature.setStyle(new ol.style.Style({image: new ol.style.Icon({src: 'locate_end.png'})}));vecSource.addFeature(endPtFeature);}clickcount++;})

最终效果如下:

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...