(function () {
var infoWindow;
var lnglat;
var mainMap;
var getVehicleData;
var vehicleMarker;
var overlayData;
var vehicleMarker;
var circle;
var userInfo;
var page = {
init: function ($page) {
userInfo = renlian.storage.get('userinfo');
//初始化顶部导航栏
function init_nav(){
var _html = '';
_html += '
';
_html += ' ';
_html += '
';
/*
_html += '\
';
*/
_html += '\
\
\
110丢失报警\
\
';
_html += '';
_html += ' ';
_html += '
';
_html += '';
_html += '';
_html += ' ';
_html += '
';
// $page.parent().find('.f-page-header').addClass('lr-workspace-header').html(_html);
$('.f-page-header').addClass('lr-workspace-header').html(_html);
/*
// 点击搜索框
$page.parent().find('.searchBox').on('tap', function () {
renlian.nav.go({ path: 'workspace/search', title: '', isBack: true, isHead: true });
});
*/
// 点击报警
// $page.parent().find('.alarm').on('tap', function () {
// renlian.nav.go({ path: 'baojingindex', title: '110丢失报警', isBack: true, isHead: true,type:'right' });
// if(infoWindow){infoWindow.close( );}
// });
// // 点击图表
// $page.parent().find('.chart').on('tap', function () {
// renlian.nav.go({ path: 'tongji', title: '统计', isBack: true, isHead: true,type:'right' });
// if(infoWindow){infoWindow.close( );}
// });
// // 点击消息图标
// $page.parent().find('.message').on('tap', function () {
// renlian.nav.go({ path: 'baojinginfo', title: '消息', isBack: true, isHead: true,type:'right' });
// if(infoWindow){infoWindow.close( );}
// });
// $page.parent().find('.my').on('tap', function () {
// renlian.nav.go({ path: 'my', title: '我的', isBack: true, isHead: true,type:'right' });
// if(infoWindow){infoWindow.close( );}
// });
// // 注册扫描
// $page.parent().find('.scanner').on('tap', function () {
// renlian.code.scan(function (res) {
// if (res.status === 'success') {
// renlian.layer.toast(res.msg);
// }
// else {
// renlian.layer.toast('扫描失败:' + res.msg);
// }
// });
// });
$('.lr-btn').on('tap', function () {
renlian.nav.go({ path: 'baojingindex', title: '110丢失报警', isBack: true, isHead: true,type:'right' });
if(infoWindow){infoWindow.close( );}
});
// 点击图表
$('.chart').on('tap', function () {
renlian.nav.go({ path: 'tongji', title: '统计', isBack: true, isHead: true,type:'right' });
if(infoWindow){infoWindow.close( );}
});
// 点击消息图标
$('.message').on('tap', function () {
renlian.nav.go({ path: 'baojinginfo', title: '消息', isBack: true, isHead: true,type:'right' });
if(infoWindow){infoWindow.close( );}
});
$('.my').on('tap', function () {
renlian.nav.go({ path: 'my', title: '我的', isBack: true, isHead: true,type:'right' });
if(infoWindow){infoWindow.close( );}
});
// 注册扫描
$('.scanner').on('tap', function () {
renlian.code.scan(function (res) {
if (res.status === 'success') {
renlian.layer.toast(res.msg);
}
else {
renlian.layer.toast('扫描失败:' + res.msg);
}
});
});
}
//获取手机GPS位置
var locationFlag = true;
function get_mobile_gps_location(onSuccess,onError){
var onSuccess = function(position) {
// alert('Latitude: ' + position.coords.latitude + '\n' +
// 'Longitude: ' + position.coords.longitude + '\n' +
// 'Altitude: ' + position.coords.altitude + '\n' +
// 'Accuracy: ' + position.coords.accuracy + '\n' +
// 'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +
// 'Heading: ' + position.coords.heading + '\n' +
// 'Speed: ' + position.coords.speed + '\n' +
// 'Timestamp: ' + position.timestamp + '\n');
var lnglat = new AMap.LngLat(position.coords.longitude, position.coords.latitude);
startEnd.start = lnglat;
userMarker.setPosition(lnglat);
userMarker.setMap(mainMap);
if(locationFlag){
if(latlngSign){
mainMap.setFitView([vehicleMarker, userMarker]);
}else{
mainMap.setFitView([userMarker]);
}
locationFlag = false;
}else{
if(latlngSign){
mainMap.setFitView([vehicleMarker]);
}
locationFlag = true;
}
};
// onError Callback receives a PositionError object
//
function onError(error) {
console.log('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
//上报客户端极光注册信息
function update_jg_registrationid(){
var onGetRegistrationID = function(data) {
try {
if (data.length == 0) {
var t1 = window.setTimeout(getRegistrationID, 1000);
}else{
var post_data = {
"regid":data,
"uid":renlian.storage.get('userinfo').baseinfo.userId
};
renlian.httppost(config.webapi+'?s=api/update_jg_registrationid',post_data,function(res){
});
}
} catch (exception) {
}
};
var getRegistrationID = function() {
window.JPush.getRegistrationID(onGetRegistrationID);
};
window.setTimeout(getRegistrationID, 1000);
}
renlian.layer.loading(true, "加载数据中");
if(window.lrmui.isreal){
//上报用户极光推注册信息
update_jg_registrationid();
//获取手机GPS位置信息
get_mobile_gps_location();
}
init_nav();
//地图
var startEnd = {start: null, end: null};
var fenceCenterVehicle = null;
var routePageData = null;
var userIcon = new AMap.Icon({size: new AMap.Size(23,23), image:'./images/location.png', imageSize:new AMap.Size(23,23)})
var userMarker = new AMap.Marker({icon: userIcon, offset:new AMap.Pixel(-16, -28)});
get_mobile_gps_location();
//车辆信息初始化
var timeInterval = 10000;
//地图初始化
if(!mainMap){
mainMap = new AMap.Map('amapcontainer', {
center: [120.202222,30.184811],
zoom: 15
});
}
mainMap.on('complete', function(){
get_mobile_gps_location();
getVehicleData(overlayData, true);
renlian.layer.loading(false);
});
var bicycleIcon = new AMap.Icon({size: new AMap.Size(32,32), image:'./images/bicycle-2.png', imageSize:new AMap.Size(32,32)})
if(!vehicleMarker){
vehicleMarker = new AMap.Marker({icon:bicycleIcon, offset:new AMap.Pixel(0, -51)});
}
if(!circle){
circle = new AMap.Circle({
radius: 0,
center: [0, 0],
borderWeight: 3,
strokeColor: "#FF33FF",
strokeOpacity: 1,
strokeWeight: 6,
strokeOpacity: 0.2,
fillOpacity: 0.2,
strokeStyle: 'dashed',
strokeDasharray: [10, 10],
// 线样式还支持 'dashed'
fillColor : '#1791fc',
zIndex: 50,
});
}
circle.setMap(mainMap);
if(!overlayData){
overlayData = {map:mainMap, vehicle:vehicleMarker, circle:circle};
}
var latlngSign = null;
getVehicleData = function(t, first=false){
var deviceNumber = renlian.storage.get('userinfo').baseinfo['deviceNumber'];
var licensePlate = renlian.storage.get('userinfo').baseinfo.plate;
var gpsNumber = renlian.storage.get('userinfo').baseinfo.gpsNumber;
var mapData = null;
renlian.httpget(config.webapi+"/?s=api/get_map_index_data", {deviceNumber:deviceNumber, licensePlate:licensePlate, gpsNumber:gpsNumber}, function (_res) {
mapData = _res.data;
console.log(mapData);
if(!mapData){
renlian.layer.warning('无地图数据,请检测网络或联系管理员!', function () { }, '提示', '关闭');
return;
}
latlngSign = mapData.vehicleLocation.longitude;
if(!latlngSign){
first = false;
t.map.setZoomAndCenter(15,startEnd.start);
t.vehicle.setPosition(null);
t.vehicle.setMap(null);
}else{
var vehiclePt = new AMap.LngLat(+mapData.vehicleLocation.longitude, +mapData.vehicleLocation.latitude);
startEnd.end = vehiclePt;
fenceCenterVehicle = vehiclePt;
t.vehicle.setPosition(vehiclePt);
t.vehicle.setMap(t.map);
}
if(first){
t.map.setZoomAndCenter(15,vehiclePt);
}
if(!mapData.onlineTime){
$('#battery').html('未获取');
$('#battery').css({color:"gray"});
}else{
if(!mapData.battery){
$('#battery').html('正常');
$('#battery').css({color:"green"});
}else{
$('#battery').html(mapData.battery);
$('#battery').css({color:"red"});
}
}
$(".ract").off("click");
vehicleInfoWin();
//在线状态
if(mapData.onlineTime){
var routeTime = new Date(mapData.onlineTime*1000);
routePageData = {speed: mapData.speed == null ? 0 : mapData.speed, lastTime:routeTime.Format("yyyy-MM-dd hh:mm:ss")};
var interval = parseInt(new Date().getTime()/1000) - mapData.onlineTime;
if(interval < 24*3600){
$('#on-off-online').text('在线中');
$('#on-off-online').css({color:"green"})
}else{
var day = parseInt(interval/24/3600);
$('#on-off-online').text('离线'+day+'天');
$('#on-off-online').css({color:"gray"})
}
}else{
$('#on-off-online').text('未在线过');
$('#on-off-online').css({color:"gray"})
var routeTime = new Date(0);
routePageData = {speed: mapData.speed == null ? 0 : mapData.speed, lastTime:routeTime.Format("yyyy-MM-dd hh:mm:ss")};
}
var fence = mapData.fenceShapeInfo;
if(fence){
fence = JSON.parse(fence);
var fenceInfo = fence.fenceInfo;
if(fenceInfo.type == 'circle'){
t.circle.setCenter(new AMap.LngLat(fenceInfo.data.center.lng, fenceInfo.data.center.lat));
t.circle.setRadius(parseInt(fenceInfo.data.radius));
t.circle.setMap(t.map);
}
}
if(mapData.lockStatus == 1){
$('#lockStatus').removeClass('icon-jiesuo');
$('#lockStatus').addClass('icon-suo');
$('#lock-text').text('解锁');
}else{
$('#lock-text').text('锁车');
}
});
};
//定位
$('#user-location').on('tap', function(){
get_mobile_gps_location();
});
//锁车
$('#car-lock').on('tap', function(){
var lockStatus = $('#lockStatus');
var postData = {
deviceNumber: renlian.storage.get('userinfo').baseinfo.deviceNumber,
lockStatus: lockStatus.hasClass('icon-jiesuo') ? 1 : 0
}
renlian.httppost(config.webapi+'?s=api/change_lock_status',postData,function(res){
if(!res.success){
// renlian.layer.toast('锁车失败');
return;
}
if(lockStatus.hasClass('icon-jiesuo')){
lockStatus.removeClass('icon-jiesuo');
lockStatus.addClass('icon-suo');
$('#lock-text').text('解锁');
// renlian.layer.toast('车辆已锁定');
}else{
lockStatus.removeClass('icon-suo');
lockStatus.addClass('icon-jiesuo');
$('#lock-text').text('锁车');
// renlian.layer.toast('车辆已解锁');
}
});
});
//test
var geocoder;
AMapUI.defineTpl("ui/overlay/SimpleInfoWindow/tpl/container.html", [], function() {
return document.getElementById('my-infowin-tpl').innerHTML;
});
function vehicleInfoWin(){
AMapUI.loadUI(['overlay/SimpleInfoWindow'], function(SimpleInfoWindow) {
lnglat = vehicleMarker.getPosition();
var address = '坐标未解析成功';
if(!geocoder){
geocoder = new AMap.Geocoder({
city: "0571", //城市设为北京,默认:“全国”
radius: 500 //范围,默认:500
});
}
geocoder.getAddress(lnglat, function(status, result) {
if (status === 'complete' && result.regeocode) {
address = result.regeocode.formattedAddress;
if(!infoWindow || userInfo.baseinfo.token != renlian.storage.get('userinfo').baseinfo.token){
infoWindow = new SimpleInfoWindow({
infoBody: ''+address+' ',
//基点指向marker的头部位置
offset: new AMap.Pixel(50, -64)
});
}
infoWindow.open(mainMap, lnglat);
console.log(infoWindow.get$Container());
infoWindow.get$Container().on('click', function(){
renlian.nav.go({ path: 'amap/navigation', title: '导航', isBack: true, isHead: true, param: startEnd});
if(infoWindow){
infoWindow.close( );
}
});
}else{
// renlian.layer.toast(JSON.stringify(result));
}
});
});
}
//坐标解析地址
//实时路况图层
var trafficLayer = new AMap.TileLayer.Traffic({
zIndex: 10
});
var trafficLayerAble = false;
trafficLayer.hide();
trafficLayer.setMap(mainMap);
var routeSituationToggle = function (){
if (trafficLayerAble) {
trafficLayer.hide();
trafficLayerAble = false;
$('#route-situation').html(' ');
} else {
trafficLayer.show();
trafficLayerAble = true;
$('#route-situation').html(' ');
}
}
$('#route-situation').on('tap', function () {
routeSituationToggle();
});
//地图显示切换(卫星和常规)
var satelliteLayer = new AMap.TileLayer.Satellite();
var isSatelieteAble = false;
renlian.mapLayerChange = function (){
if (isSatelieteAble) {
mainMap.remove(satelliteLayer);
isSatelieteAble = false;
$('#layer-change').html(' ');
} else {
mainMap.add(satelliteLayer);
isSatelieteAble = true;
$('#layer-change').html(' ');
}
}
$('#layer-change').on('tap', function () {
renlian.mapLayerChange();
});
//轨迹页跳转
$('#route-play').on('tap', function () {
renlian.nav.go({ path: 'amap/route', title: '轨迹回放', isBack: true, isHead: true, param: routePageData });
if(infoWindow){infoWindow.close( );}
});
//围栏页跳转
$('#electric-fence').on('tap', function () {
renlian.nav.go({ path: 'amap/fence', title: '围栏设置', isBack: true, isHead: true, param: {default: fenceCenterVehicle || startEnd.start} });
if(infoWindow){infoWindow.close( );}
});
//保险页跳转
$('.insurance-img').on('tap', function () {
renlian.nav.go({ path: 'insure', title: '保险理赔', isBack: true, isHead: true, param: 'test' });
if(infoWindow){infoWindow.close( );}
});
//定时刷新数据
// var mainPageInterval = setInterval(function(){
// if($('.f-page').length > 1){
// // clearTimeout(mainPageInterval);
// return;
// }
// getVehicleData(overlayData);
// }, timeInterval);
},
reload: function ($page, pageinfo) {
if(userInfo.baseinfo.token != renlian.storage.get('userinfo').baseinfo.token){
vehicleMarker.setMap(null);
infoWindow = null;
getVehicleData(overlayData, true);
}else{
getVehicleData(overlayData);
}
if(infoWindow){
infoWindow.open(mainMap, lnglat);
}
},
destroy: function(pageinfo){
console.log('destroy amap')
}
};
return page;
})();
//icon.js
!function(h){var t,l=' ',c=(t=document.getElementsByTagName("script"))[t.length-1].getAttribute("data-injectcss");if(c&&!h.__iconfont__svg__cssinject__){h.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(t){console&&console.log(t)}}!function(t){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(t,0);else{var c=function(){document.removeEventListener("DOMContentLoaded",c,!1),t()};document.addEventListener("DOMContentLoaded",c,!1)}else document.attachEvent&&(e=t,i=h.document,a=!1,o=function(){a||(a=!0,e())},(l=function(){try{i.documentElement.doScroll("left")}catch(t){return void setTimeout(l,50)}o()})(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,o())});var e,i,a,o,l}(function(){var t,c,e,i,a,o;(t=document.createElement("div")).innerHTML=l,l=null,(c=t.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",e=c,(i=document.body).firstChild?(a=e,(o=i.firstChild).parentNode.insertBefore(a,o)):i.appendChild(e))})}(window);