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
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');
|
|
}
|
|
|