(function () {
var infoWindow;
var lnglat;
var mainMap;
var page = {
init: function ($page) {
//初始化顶部导航栏
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);
/*
// 点击搜索框
$page.parent().find('.searchBox').on('tap', function () {
learun.nav.go({ path: 'workspace/search', title: '', isBack: true, isHead: true });
});
*/
// 点击报警
$page.parent().find('.alarm').on('tap', function () {
learun.nav.go({ path: 'baojingindex', title: '110丢失报警', isBack: true, isHead: true,type:'right' });
if(infoWindow){infoWindow.close( );}
});
// 点击图表
$page.parent().find('.chart').on('tap', function () {
learun.nav.go({ path: 'tongji', title: '统计', isBack: true, isHead: true,type:'right' });
if(infoWindow){infoWindow.close( );}
});
// 点击消息图标
$page.parent().find('.message').on('tap', function () {
learun.nav.go({ path: 'baojinginfo', title: '消息', isBack: true, isHead: true,type:'right' });
if(infoWindow){infoWindow.close( );}
});
$page.parent().find('.my').on('tap', function () {
learun.nav.go({ path: 'my', title: '我的', isBack: true, isHead: true,type:'right' });
if(infoWindow){infoWindow.close( );}
});
// 注册扫描
$page.parent().find('.scanner').on('tap', function () {
learun.code.scan(function (res) {
if (res.status === 'success') {
learun.layer.toast(res.msg);
}
else {
learun.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();
}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);
}
var userinfo = learun.storage.get('userinfo');
//上报客户端极光注册信息
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":userinfo.baseinfo.userId
};
learun.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);
}
learun.layer.loading(true, "加载数据中");
if(window.lrmui.isreal){
//上报用户极光推注册信息
update_jg_registrationid();
//获取手机GPS位置信息
get_mobile_gps_location();
}
init_nav();
//地图
var startEnd = {start: null, end: null};
var fencePageData = 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;
//地图初始化
mainMap = new AMap.Map('amapcontainer', {
center: [120.210649,30.246071],
zoom: 15
});
mainMap.on('complete', function(){
get_mobile_gps_location()
learun.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)})
var vehicleMarker = new AMap.Marker({icon:bicycleIcon, offset:new AMap.Pixel(0, -51)});
var 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);
var overlayData = {map:mainMap, vehicle:vehicleMarker, circle:circle};
var latlngSign = null;
var getVehicleData = function(t, first=false){
var deviceNumber = userinfo.baseinfo['deviceNumber'];
var mapData = null;
learun.httpget(config.webapi+"/?s=api/get_map_index_data", {deviceNumber:deviceNumber}, function (_res) {
mapData = _res.data;
console.log(mapData);
if(!mapData){
learun.layer.warning('无地图数据,请检测网络或联系管理员!', function () { }, '提示', '关闭');
return;
}
latlngSign = mapData.vehicleLocation.longitude;
if(!latlngSign){
first = false;
}else{
var vehiclePt = new AMap.LngLat(+mapData.vehicleLocation.longitude, +mapData.vehicleLocation.latitude);
startEnd.end = vehiclePt;
t.vehicle.setPosition(vehiclePt);
t.vehicle.setMap(t.map);
}
console.log(startEnd)
if(first){
t.map.setZoomAndCenter(15,vehiclePt);
}
$page.find('#battery').html(mapData.battery+'%');
//在线状态
if(mapData.onlineTime){
if(parseInt(mapData.onlineTime) < 0 ){
$('#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")}
}else{
var routeTime = new Date(mapData.onlineTime*1000);
routePageData = {speed: mapData.speed == null ? 0 : mapData.speed, lastTime:routeTime.Format("yyyy-MM-dd hh:mm:ss")}
console.log('testtime')
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"})
console.log(mapData.onlineTime);
console.log(new Date().getTime());
}
}
}
var fence = mapData.fenceShapeInfo;
if(fence){
fence = JSON.parse(fence);
if(fence.type == 'circle'){
t.circle.setCenter(new AMap.LngLat(fence.data.center.lng, fence.data.center.lat));
t.circle.setRadius(fence.data.radius);
t.circle.setMap(t.map);
}
}
if(mapData.lockStatus == 1){
$page.find('#lockStatus').removeClass('icon-jiesuo');
$page.find('#lockStatus').addClass('icon-suo');
}
fencePageData = {fenceInfo: fence, defaultLocation: vehiclePt, fenceStatus:mapData.fenceAlarmStatus};
});
};
//定位
$page.find('#user-location').on('tap', function(){
get_mobile_gps_location();
});
//锁车
$page.find('#car-lock').on('tap', function(){
var lockStatus = $page.find('#lockStatus');
var postData = {
deviceNumber: userinfo.baseinfo.deviceNumber,
lockStatus: lockStatus.hasClass('icon-jiesuo') ? 1 : 0
}
learun.httppost(config.webapi+'?s=api/change_lock_status',postData,function(res){
if(!res.success){
learun.layer.toast('锁车失败');
return;
}
if(lockStatus.hasClass('icon-jiesuo')){
lockStatus.removeClass('icon-jiesuo');
lockStatus.addClass('icon-suo');
learun.layer.toast('车辆已锁定');
}else{
lockStatus.removeClass('icon-suo');
lockStatus.addClass('icon-jiesuo');
learun.layer.toast('车辆已解锁');
}
});
});
//test
getVehicleData(overlayData, true);
var geocoder;
AMapUI.defineTpl("ui/overlay/SimpleInfoWindow/tpl/container.html", [], function() {
return document.getElementById('my-infowin-tpl').innerHTML;
});
console.log('ccc')
AMapUI.loadUI(['overlay/SimpleInfoWindow'], function(SimpleInfoWindow) {
lnglat = vehicleMarker.getPosition();
console.log(lnglat+'vehicle-location');
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){
infoWindow = new SimpleInfoWindow({
infoBody: ''+address+' ',
//基点指向marker的头部位置
offset: new AMap.Pixel(50, -64)
});
console.log('aaa')
}
console.log('vvv')
infoWindow.open(mainMap, lnglat);
infoWindow.get$Container().on('click', function(){
learun.nav.go({ path: 'amap/navigation', title: '导航', isBack: true, isHead: true, param: startEnd });
if(infoWindow){infoWindow.close( );}
});
}else{
// learun.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;
$page.find('#route-situation').html(' ');
} else {
trafficLayer.show();
trafficLayerAble = true;
$page.find('#route-situation').html(' ');
}
}
$page.find('#route-situation').on('tap', function () {
routeSituationToggle();
});
//地图显示切换(卫星和常规)
var satelliteLayer = new AMap.TileLayer.Satellite();
var isSatelieteAble = false;
learun.mapLayerChange = function (){
if (isSatelieteAble) {
mainMap.remove(satelliteLayer);
isSatelieteAble = false;
$page.find('#layer-change').html(' ');
} else {
mainMap.add(satelliteLayer);
isSatelieteAble = true;
$page.find('#layer-change').html(' ');
}
}
$page.find('#layer-change').on('tap', function () {
learun.mapLayerChange();
});
//轨迹页跳转
$page.find('#route-play').on('tap', function () {
learun.nav.go({ path: 'amap/route', title: '轨迹回放', isBack: true, isHead: true, param: routePageData });
if(infoWindow){infoWindow.close( );}
});
//围栏页跳转
$page.find('#electric-fence').on('tap', function () {
learun.nav.go({ path: 'amap/fence', title: '围栏设置', isBack: true, isHead: true, param: fencePageData });
if(infoWindow){infoWindow.close( );}
});
//保险页跳转
$page.find('.insurance-img').on('tap', function () {
learun.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);
// }
// console.log('dd');
// getVehicleData(overlayData);
// }, timeInterval);
},
reload: function ($page, pageinfo) {
if(infoWindow){
infoWindow.open(mainMap, lnglat);
}
console.log(pageinfo);
console.log(learun.storage.get('userinfo').baseinfo)
console.log(learun.nav.getpage('amap'));
},
destroy: function (pageinfo) {
console.log('destory page')
},
};
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);