标记当前位置 及 在地图上显示足迹

时间:2022-06-23 10:32:31

标记当前位置

标记当前位置 及 在地图上显示足迹

示例代码:

var marker = new BMap.Marker(point);
map.addOverlay(marker);

 

在地图上显示足迹

显示足迹列表要用到百度地图API中“添加折线”的方法。

API文档给出的参考代码是:

var polyline = new BMap.Polyline([   
   new BMap.Point(116.399, 39.910),   
   new BMap.Point(116.405, 39.920)   
 ],   
 {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5}   
);   
map.addOverlay(polyline);   

可以看到polyLine是显示折现的关键 。

那么在jsp中如何编写这个polyLine呢?

可以使用EL表达式来进行。

看一段很奇怪的且编译器会报错的代码:

<script type="text/javascript">

var map = new BMap.Map("position");
var point = new BMap.Point(${currentLocation.longitude}, ${currentLocation.latitude});
map.centerAndZoom(point, 18);
var polyline = new BMap.Polyline([
<c:forEach items="${list}" var="bean">
new BMap.Point(${bean.longitude}, ${bean.latitude}),</c:forEach>
],
{strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5}
);
map.addOverlay(polyline);

</script>

可以看到,EL表达式其实是嵌入到了js代码之中的。这样的做法会导致编译器报错。不过这段代码却是合法的。

因为EL表达式将会在js能运行前组织完成。

引用一句别人的话,就是

EL表达式是在服务端执行的,服务端执行完成后再传给客户端的,js是在客户端执行的,el在js前就被执行了

下图展示了显示路径的效果。

标记当前位置 及 在地图上显示足迹