实现GPS一辆或多辆小车在百度地图上显示驾驶路线

通过百度地图API实现一辆车或多辆车在地图上行驶,实现车辆监控,并显示驾驶路线。效果图如下:

 

 

 

本demo是通过ajax获取后台的经纬度,将经纬度传递给小车,小车不断移动,并调用百度地图API的画线函数,实现小车路线的显示。

部分代码如下:

 

 

 

<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<title>得到GPS数据,画出车辆运行路线</title>

<style type="text/css">  
 	body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:"微软雅黑";}  
</style>  
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=h86KsPl6VGvedz2G3CGmR37Ah8oMUMcY"></script> 	
</head>

<body>
	<a href="RoadBook.jsp"><button>路书规划</button></a>
	<a href="PolesStations.jsp"><button>选择充电站</button></a>
	<input type="button" onclick="stop()" value="停止">
	<input type="button" onclick="lngLatAjax()" value="继续">
	<a href="Price.jsp"><button>实时定价</button></a>
	<div id="allmap"></div>
<script src="js/jquery-1.9.1.js" type="text/javascript"></script>
<script type="text/javascript">
    var moment="2016-01-01 08:24:06";   //通过向后台传递时间,得到改时间的经纬度
    var moment1="2016-01-01 12:24:06";
    var startLng;
    var startLat;
    var endLng;
    var endLat; 
    var startLng1;
  
  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
实现多辆小车在高德地图上移动,可以使用 Vue.js 结合高德地图 JavaScript API,为每辆小车创建一个独立的标记,并对每个标记进行移动操作。 以下是一个示例代码: ```html <template> <div> <div id="map" style="width: 800px; height: 600px;"></div> </div> </template> <script> export default { data() { return { map: null, markers: [ { id: 1, lnglat: [116.39, 39.9] }, { id: 2, lnglat: [116.4, 39.91] }, { id: 3, lnglat: [116.41, 39.92] }, // ... ] }; }, mounted() { // 创建地图 this.map = new AMap.Map('map', { zoom: 15, center: [116.39, 39.9] }); // 创建小车标记 this.markers.forEach(markerData => { const marker = new AMap.Marker({ map: this.map, position: markerData.lnglat, icon: new AMap.Icon({ size: new AMap.Size(50, 50), image: 'https://webapi.amap.com/images/car.png', imageSize: new AMap.Size(50, 50) }) }); // 设置小车标记的角度 function setMarkerAngle(angle) { marker.setAngle(angle); } // 设置小车标记的位置 function setMarkerPosition(position) { marker.setPosition(position); } // 获取小车标记的角度 function getAngle(position) { // 根据当前位置和下一个位置计算角度 // ... } // 小车移动的动画 function move() { let index = 0; setInterval(() => { const currentPosition = markerData.lnglat; const nextPosition = this.markers[index].lnglat; const angle = getAngle(currentPosition, nextPosition); setMarkerAngle(angle); setMarkerPosition(nextPosition); index++; if (index >= this.markers.length) { index = 0; } }, 1000); } // 开始小车移动 move(); }); } } </script> ``` 在上述代码中,通过遍历 `markers` 数组为每辆小车创建一个独立的标记,并在 `mounted` 钩子函数中循环地对每个标记进行移动操作。你可以根据实际需求修改标记的初始位置、路径、移动速度等参数。记得在 `mounted` 钩子函数中调用相关方法来初始化地图小车移动。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值