123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- var allList = [],_CB = null,_ol = 0;
- function getList(callBack){
- _CB = callBack;
- let _obj = {
- http: baseUrl,
- url: "/SelHswsSn",
- type: "GET",
- tok: "Bearer " + localStorage.getItem("ylToken")
- };
- let _data = {
- user_id: 109
- };
- getAjax(_obj, _data).then((res) => {
- allList = [];
- _ol = 0;
- if(res.code == 200){
- let _obj = res.data, _linGen = [];
- for(let i=0;i<_obj.length;i++){
- let item = _obj[i];
- if( item.dev_ver == 3){
- _linGen.push(item);
- }else{
- let _onli = item.online == undefined ?{lon:0,lat:0,speed:0,time:1639449590}:item.online;
- // let _gps = wgsGcj(_onli.lat, _onli.lon);
- item.status = changeTime((_onli.time+"")>10?parseInt(_onli.time):parseInt(_onli.time)*1000);
- item.lat = _onli.lat.toFixed(6);
- item.lon = _onli.lon.toFixed(6);
- item.position = [_onli.lon, _onli.lat];
- item.prod = item.dev_name;
- item.icon = "../img/ship.png",
- item.mmsi = item.sn;
- item.speed = _onli.speed.toFixed(2);
- item.addr = "";
- item.cog = Number(Math.random())*360;
- item.anchor = getAnchor(Number(item.cog));
- allList.push(item);
- _ol = _ol + (item.status == 1?1:0);
- }
- }
- getOne(_linGen);
- }else{
- _CB([],0);
- }
- })
- };
- function getOne(_obj){
- let obj={
- http: genUrl,
- tok: localStorage.getItem("AjaxGen"),
- url:"/gps-web/h5/mgr/car?getTeamsAndCars&sortField=plate&"+new Date().getTime(),
- type:"GET"
- };
- let data1={};
- getAjax(obj,data1)
- .then(function(res){
- if(res.status==1&&res.result.length){
- let _data = res.result[1], _carId = [];
- for(let i=0;i<_obj.length;i++){
- let item = _obj[i];
- let _ind = _data.findIndex((i,index)=>{return i.plate == item.sn});
- if(_ind != -1){
- _carId.push(_data[_ind].id);
- item.status = _data[_ind].state>4?1:0;
- item.prod = item.dev_name;
- item.icon = "../img/ship.png",
- item.mmsi = item.sn;
- item.sn = _data[_ind].id;
- item.cog = Number(Math.random())*360;
- item.anchor = getAnchor(Number(item.cog));
- allList.push(item);
- _ol = _ol + (item.status == 1?1:0);
- }
- }
- getCXWAis(_carId);
- }
- })
- }
- function getCXWAis(_arr){
- let obj={
- http: genUrl,
- tok: localStorage.getItem("AjaxGen"),
- url:"/gps-web/h5/mnt/rtl?addCarIds&_t="+new Date().getTime(),
- type:"POST"
- };
- let data1 = _arr;
- postAjax(obj,data1).then(function(res){
- if(res.status==1){
- let _obj = res.result;
- for(let i=0;i<_obj.length;i++){
- let item = _obj[i];
- let _ind = allList.findIndex((i,index)=>{return i.sn == item.carId });
- if(_ind != -1){
- allList[_ind]["position"] = [item.lng, item.lat];
- allList[_ind].lat = item.lat;
- allList[_ind].lon = item.lng;
- allList[_ind].addr = item.addr;
- allList[_ind].speed = item.speed.toFixed(2);
- }else{
- allList[_ind]["position"] = [0, 0];
- allList[_ind].lat = 0;
- allList[_ind].lon = 0;
- allList[_ind].addr = "";
- allList[_ind].speed = 0;
- }
- }
- _CB(allList,_ol);
- }
- })
- }
- function getAnchor(key){
- let _du = [0, 0];
- if(key<40){
- _du = [0.5, 1];
- }else if(key>39&&key<70){
- _du = [0, 0.8];
- }else if(key>69&&key<130){
- _du = [0, 0.5];
- }else if(key>129&&key<180){
- _du = [0, 0.5];
- }else if(key>179&&key<250){
- _du = [0.5, 0];
- }else if(key>249&&key<290){
- _du = [1, 0.5];
- }else if(key>289&&key<330){
- _du = [1.2, 0.8];
- }else if(key>329&&key<361){
- _du = [0.5, 1];
- }
- return _du;
- }
- function changeTime(time) {
- let date3 = new Date().getTime() - (parseInt(time));
- let str = 1;
- if (date3 > (5 * 60 * 1000)) {
- str = 0;
- }
- return str;
- }
- var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
- var pi = 3.14159265358979324;
- var a = 6378245.0;
- var ee = 0.00669342162296594323;
- function transformLon(x, y) {
- var ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x));
- ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
- ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0;
- ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 * pi)) * 2.0 / 3.0;
- return ret;
- };
- function transformLat(x, y) {
- var ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x));
- ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
- ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0;
- ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0;
- return ret;
- }
- function outOfChina(lat, lon) {
- if (lon < 72.004 || lon > 137.8347)
- return true;
- if (lat < 0.8293 || lat > 55.8271)
- return true;
- return false;
- }
- function wgsGcj(wgLat, wgLon) {
- var point = {};
- if (outOfChina(wgLat, wgLon)) {
- point.lat = wgLat;
- point.lon = wgLon;
- return point;
- }
- var dLat = transformLat(wgLon - 105.0, wgLat - 35.0);
- var dLon = transformLon(wgLon - 105.0, wgLat - 35.0);
- var radLat = wgLat / 180.0 * pi;
- var magic = Math.sin(radLat);
- magic = 1 - ee * magic * magic;
- var sqrtMagic = Math.sqrt(magic);
- dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
- dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
- var lat = wgLat + dLat;
- var lon = wgLon + dLon;
- point.lat = lat.toFixed(6);
- point.lon = lon.toFixed(6);
- return point;
- };
- function infoAjax(devs,cb){
- $.ajax({
- url: "https://open.ys7.com/api/lapp/device/info",
- type: "POST",
- traditional: true,
- dataType: "json",
- async: true, //同步请求
- data: {
- deviceSerial: devs,
- accessToken:localStorage.getItem("ysyToken")
- },
- headers: {
- "Content-Type": "application/x-www-form-urlencoded"
- },
- error: function(XMLHttpRequest, textStatus, errorThrown) {},
- success: function(result) {
- if(result.code == 200){
- let _acb = result.data;
- let ysysData = [{
- prod: _acb.deviceName,
- dev_name: _acb.deviceName,
- sn: _acb.deviceSerial,
- status:_acb.status,
- dev_ver: 4,
- }];
- cb(ysysData);
- }else if(result.code == 10002){
- let _src = window.location.pathname.split("/view/");
- localStorage.removeItem("AjaxGen");
- localStorage.removeItem("ylToken");
- top.location.href = "../index.html?id="+(_src[1].split(".html")[0]);
- }else{
- cb([]);
- }
- }
- });
- }
|