mui-百度app应用一轨迹

1.配置manifest.json   填写百度应用密钥

2.页面

<div id="allmap" class="allmap"></div>

3.js

这是可以轨迹展示

$.init();
        			var map = null;
				var playSpeed = 3000; //正常播放间隔是3000毫秒,可以根据自己需求设置播放速率
				var pointstart = []; //开始点
				var pointend = []; //结束点
				var stopoff = false; //暂停开关false暂停 true开始
				var points = []; //所有线轨迹点集合
				var numi = 0; //当前执行数目
				var timer = null; //定时器
				var onwpoint = null; //轨迹播放时的当前点
plusReady();

function plusReady(dataDto) {
					var view = plus.webview.currentWebview();
					map = new plus.maps.Map('allmap'); // 创建地图实例
					Geolocation() //设置地图
					getGuiJiData() //模拟服务器请求数据
					function getGuiJiData() {

						// var data = { //服务器请求来的数据格式
						// 	"rows": [{
						// 		"lng": "118.7901610013275",
						// 		"lat": "31.909016914533622"
						// 	}, {
						// 		"lng": "118.7901610013275",
						// 		"lat": "31.908016914533622"
						// 	}, {
						// 		"lng": "118.7901610013275",
						// 		"lat": "31.907016914533622"
						// 	}, {
						// 		"lng": "118.7901610013275",
						// 		"lat": "31.906016914533622"
						// 	}, {
						// 		"lng": "118.7901610013275",
						// 		"lat": "31.905016914533622"
						// 	}, {
						// 		"lng": "118.7901610013275",
						// 		"lat": "31.904016914533622"
						// 	}, {
						// 		"lng": "118.7901610013275",
						// 		"lat": "31.903016914533622"
						// 	}, {
						// 		"lng": "118.7901610013275",
						// 		"lat": "31.902016914533622"
						// 	}],
						// 	"result": "success"
						// }
						var stationLatMap = dataDto.stationLatMap;
						//设置配电房位置
						if (stationLatMap != null && stationLatMap != undefined) {
							for (var sub in stationLatMap) {
								//console.log(sub);
								//设置配电房marker
								var marker = new plus.maps.Marker(new plus.maps.Point(stationLatMap[sub].lng, stationLatMap[sub].lat));
								marker.setIcon("../images/index.png");
								marker.setLabel(sub);
								map.addOverlay(marker);
							}
						}
						var latLongs = dataDto.latLongs;
						if (latLongs != null) {


							guiJiTotal = latLongs.length;
							// console.log(latLongs.length);
							// console.log(JSON.stringify(stationLatMap));

							if (latLongs.length >= 2) {
								pointstart.push(new plus.maps.Point(latLongs[0].lng, latLongs[0].lat)); //把轨迹的第一个点设置为起点
								//设置起点marker
								var marker = new plus.maps.Marker(new plus.maps.Point(latLongs[0].lng, latLongs[0].lat));
								marker.setIcon("../images/4-5.png");
								marker.setLabel("起点");
								map.addOverlay(marker);

								pointend.push(latLongs[latLongs.length - 1].lng, latLongs[latLongs.length - 1].lat); //把轨迹的最后一个点设置为终点
								//设置终点marker
								var marker = new plus.maps.Marker(new plus.maps.Point(latLongs[latLongs.length - 1].lng, latLongs[latLongs
									.length - 1].lat));
								marker.setIcon("../images/4-6.png");
								marker.setLabel("终点");
								map.addOverlay(marker);
							}
							//把请求的点集合存到points集合里
							for (var i = 0; i < latLongs.length; i++) {
								var longtitude = latLongs[i].lng;
								var latitude = latLongs[i].lat;
								points.push(new plus.maps.Point(longtitude, latitude));
							}
							//开始画轨迹
							timer = setInterval(clock, playSpeed);
						}
					}

					//定时绘制轨迹
					function showLine() {
						if (stopoff == true) {
							return;
						}
						//两点画一个线
						var polylineObj = null;
						var point_line = [];
						point_line[0] = new plus.maps.Point(points[numi].longitude, points[numi].latitude);
						point_line[1] = new plus.maps.Point(points[numi + 1].longitude, points[numi + 1].latitude);
						map.setCenter((point_line[1])); //设置当前点为地图中心点
						polylineObj = new plus.maps.Polyline(point_line);
						polylineObj.setLineWidth(6); //设置线的粗细(Android和ios显示粗细不一样)
						polylineObj.setStrokeColor("#c3421a"); //设置线的颜色
						map.addOverlay(polylineObj);
						//设置当前运行点的marker
						var marker = new plus.maps.Marker(point_line[1]);
						marker.setIcon("../images/icon-yunwei.png");
						map.removeOverlay(onwpoint)
						onwpoint = marker;
						map.addOverlay(marker);
						numi++;
					}

					function clock() {

						showLine();
						if (numi >= guiJiTotal - 1) {
							stopoff = false;
							clearInterval(timer);
						}

					}
				}

				function Geolocation() {
					map.setZoom(18); //显示层级
					map.showUserLocation(true);
					map.showZoomControls(true);
					map.getUserLocation(function(state, point) {
						if (0 == state) {
							if (point.latitude == '5e-324') {
								mui.toast("获取位置信息失败:请开启定位服务,进入系统【设置】>【隐私】>【定位服务】中打开开关!");
							} else {
								map.setCenter(point);
								geoInf(point);

							}
						} else {
							mui.toast("获取位置信息失败:请开启定位服务,进入系统【设置】>【隐私】>【定位服务】中打开开关!");
						}

					});
				}

				function geoInf(point) {
					plus.maps.Map.reverseGeocode(point, {}, function(event) {
						//获取当前地理位置
						addressd = event.address; // 转换后的地理位置
						var longit = point.longitude; //
						var latid = point.latitude; //纬度

					});

				}
				

注意点  主要是后端返回的数据格式,自己要清楚,我这里的数据格式:

private List<LatLong> latLongs;

private Map<String,Object> stationLatMap;
@Data
public class LatLong {
//
//    private String begin;
//
//    private String end;
//
//    private String createDate;

    private Double lng;

    private Double lat;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值