软测单独项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

183 lines
7.9 KiB

var ArrayCar = ["861584040006273", "861584040006216", "861584040006299", "861584040006224", "861584040006257", "861584040006232", "861584040006208", "861584040006265", "861584040006240"];
var ArrayName = ["新NA1F99", "新X5825", "新X5827", "新X5829", "新X5813", "新X1204", "新X5826", "新X5850", "新X5824"];
var map, temp;
var pointArr = [], pointStateArr = [], carIcon = "";
$(function () {
map = new BMap.Map("allmap"); // 创建Map实例
map.centerAndZoom(new BMap.Point(80.274413, 41.179264), 14); // 初始化地图,设置中心点坐标和地图级别
//添加地图类型控件
map.addControl(new BMap.MapTypeControl({
mapTypes: [
BMAP_NORMAL_MAP,
BMAP_HYBRID_MAP
]
}));
var convertor = new BMap.Convertor();
// var pointArr = [];
map.setCurrentCity("阿克苏地区"); // 设置地图显示的城市 此项是必须设置的
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
//开始获取接口
var timestamp1 = new Date().getTime();
var securityKey = 'RTcunWv#BVhi';
var signCar = sha1(timestamp1.toString() + securityKey);
var msgId = generateUUID();
for (var i = 0; i < ArrayCar.length; i++) {
temp = ArrayCar[i];
$.ajax({
type: "GET",
url: "nginx/api/v0/terminals/" + ArrayCar[i] + "/realtime?timestamp=" + timestamp1 + "&sign=" + signCar,
async:false,
headers:
{
"sysCode": "30001",
"from": "OTHER",
"Content-Type": "application/json",
"msgId": msgId.toString()
},
success: function (result) {
//alert(result.longitude+"@"+ result.latitude);
//地图加载车辆位置
var point = new BMap.Point(result.longitude, result.latitude);
pointArr.push(point);
pointStateArr.push(result.runStatus);
//坐标转换
// var myIcon = new BMap.Icon("../../images/firecar.png", new BMap.Size(40, 40), { imageSize: new BMap.Size(40, 40) });
// var marker = new BMap.Marker(point, { icon: myIcon }); // 创建标注
// marker.code = ArrayCar[i];
// map.addOverlay(marker);
// RightClickMaker(marker);
},
error: function (err) {
console.log(err);
}
});
}
convertor.translate(pointArr, 1, 5, translateCallback);
setInterval(function () {
convertor.translate(pointArr, 1, 5, translateCallback);
},30000)
});
//坐标转换后进行渲染
translateCallback = function (data) {
//console.log(data);
if (data.status === 0) {
map.clearOverlays();
for (var i = 0; i < data.points.length; i++) {
//var marker = new BMap.Marker(data.points[0]);
if (pointStateArr[i] == "STARTED") {
carIcon = "../../images/firecarstart.png"
}
else {
carIcon = "../../images/firecarstop.png"
}
var myIcon = new BMap.Icon(carIcon, new BMap.Size(40, 40), { imageSize: new BMap.Size(40, 40) });
var marker = new BMap.Marker(data.points[i], { icon: myIcon }); // 创建标注
//marker.code = ArrayCar[i];
map.addOverlay(marker);
marker.id = { NAME: ArrayName[i], TYPE: 7, IMEI: ArrayCar[i] };
marker.addEventListener("click", function (e) {
//position(this.id[0], this.id[1]);
position(this);
});
marker.customData = { "runStatus": pointStateArr[i] };
RightClickMaker(marker);
}
}
}
//定位并弹窗
position = function (marker) {
var type = marker.id.TYPE;
console.log(type);
var strhtml = ""
var name = "名称:";
if (type == "1") {
url = "../../ashx/FirePoolHandler.ashx";
action = "";
}
else if (type == "2") {
url = "../../ashx/FirePoolHandler.ashx";
action = "";
strhtml += "<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>" + marker.id.ADDR + "</p>"
strhtml += "<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>水量:7000m³</p>";
}
else if (type == "3") {
url = "../../ashx/FirePoolHandler.ashx";
action = "";
strhtml += "<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>" + marker.id.ADDR + "</p>"
strhtml += "<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>水量:10000m³</p>";
}
else if (type == "4") {
}
else if (type == "5") {
strhtml += "<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>" + marker.id.ADDR + "</p>"
strhtml += "<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>水压:0.45Mpa</p>";
}
else if (type == "6") {
strhtml += "<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>" + marker.id.ADDR + "</p>"
strhtml += "<p style='margin:0;line-height:1.5;font-size:13px;text-indent:2em'>水压:0.45Mpa</p>";
}
else if (type == "7") {
$.ajax({
type: "post",
url: "../../ashx/ZYCarHandler.ashx",
data: { Action: "CarNumGetModel", CARNUM: marker.id.NAME },
dataType: "json",
success: function (result) {
console.log(result);
//var className = result.data.CLASS == "0" ? "公务用车" : (result.data.CLASS == "1"?"执勤车辆":"地方车辆")
strhtml += "<p style='margin:0;line-height:1.5;font-size:13px;'>车辆名称:" + result.data.CAR_NAME + "</p>";
strhtml += "<p style='margin:0;line-height:1.5;font-size:13px;'>车辆类型:" + result.data.TYPE + "</p>";
strhtml += "<p style='margin:0;line-height:1.5;font-size:13px;'>车辆详情:" + result.data.REMARKS + "</p>";
// 添加图文组合的信息窗口
console.log(result.data.CAR_NUM);
var sContent = "<h4 style='margin:0 0 5px 0;padding:0.2em 0;'>车牌:" + result.data.CAR_NUM + "</h4>" +
"<div>" +
strhtml +
"</div>";
var infoWindow = new BMap.InfoWindow(sContent); // 创建信息窗口对象
marker.openInfoWindow(infoWindow);
},
error: function (e){
console.log(e);
// 添加图文组合的信息窗口
var sContent = "<h4 style='margin:0 0 5px 0;padding:0.2em 0;'>车牌:" + marker.id.NAME + "</h4>";
var infoWindow = new BMap.InfoWindow(sContent); // 创建信息窗口对象
marker.openInfoWindow(infoWindow);
}
});
}
}
//地图右键菜单
function RightClickMaker(marker) {
var markerMenu = new BMap.ContextMenu();
markerMenu.addItem(new BMap.MenuItem('视频查看', VideoRealPlay.bind(marker)));
markerMenu.addItem(new BMap.MenuItem('轨迹查看', TrackPlayback.bind(marker)));
marker.addContextMenu(markerMenu); //给标记添加右键菜单
}
var VideoRealPlay = function (e, ee, marker) {//右键查看视频
window.open('MapVideoRealPlay.html?imei=' + marker.id.IMEI, '实时视频', 'height=800, width=1500, top=100, left=200, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no');
}
var TrackPlayback = function (e, ee, marker) {//右键查看轨迹
window.open('MapTrajectory.html?name=' + encodeURI(marker.id.NAME) + '&imei=' + marker.id.IMEI, '轨迹回放', 'height=800, width=1500, top=100, left=200, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no');
}