<!DOCTYPE html>
|
<html>
|
<head>
|
<meta charset="utf-8">
|
<title>巡更管理</title>
|
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
|
<link href="./css/mui.min.css" rel="stylesheet" />
|
<style>
|
.mui-bar-nav {
|
background: #245ca7;
|
-webkit-box-shadow: none;
|
box-shadow: none;
|
}
|
.mui-title {
|
color: #FFFFFF;
|
}
|
.mui-icon-back:before,
|
.mui-icon-left-nav:before {
|
color: #FFFFFF;
|
}
|
.mui-content{
|
margin: auto;
|
}
|
.mui-content>.mui-table-view:first-child {
|
margin-top: 0px;
|
}
|
.mui-grid-view.mui-grid-9 .mui-table-view-cell {
|
border-right: none;
|
border-bottom: none;
|
width: 33.3333%;
|
}
|
.mui-table-view-cell a{
|
background: #FFFFFF;
|
border-radius: 6px;
|
}
|
.img_ico{
|
width: 55px;
|
height: auto;
|
display: block;
|
margin: auto;
|
}
|
</style>
|
</head>
|
<body>
|
<header class="mui-bar mui-bar-nav">
|
<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>
|
<h1 class="mui-title">巡更管理</h1>
|
</header>
|
<div class="mui-content">
|
<ul class="mui-table-view mui-grid-view mui-grid-9">
|
<li class="mui-table-view-cell" style="padding: 10px 5px 10px 5px;">
|
<a href="javascript:void(0)" onclick="toView('patrol-his')">
|
<img class="img_ico" src="./images/ico_xgjl.png">
|
<div class="mui-media-body">打卡记录</div>
|
</a>
|
</li>
|
<li class="mui-table-view-cell" style="padding: 10px 5px 10px 10px;">
|
<a href="javascript:void(0)" onclick="toPhoto()">
|
<img class="img_ico" src="./images/ico_pzdk.png">
|
<div class="mui-media-body">拍照打卡</div>
|
</a>
|
</li>
|
</ul>
|
</div>
|
<script src="./js/mui.js"></script>
|
<script src="./js/jquery.min.js"></script>
|
<script type="text/javascript" charset="utf-8">
|
mui.init();
|
var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
|
var pi = 3.1415926535897932384626;
|
var a = 6378245.0;
|
var ee = 0.00669342162296594323;
|
var url; //接口路径
|
var uploadUrl; //图片上传路径
|
|
var fileName = null; //拍照上传图片文件名
|
var longitude = null; //百度地图(BD-09)经度
|
var latitude = null; //百度地图(BD-09)纬度
|
|
var data = {
|
"interfaceId": "5801",
|
"sign": "10801",
|
"outId": "10801",
|
"reqDateTime": new Date(),
|
"tokenAuth": "",
|
"data": {
|
"imgName": "",
|
"longitude": "",
|
"latitude": ""
|
}
|
};
|
mui.plusReady(function() {
|
var user = JSON.parse(localStorage.getItem('user'));
|
data.tokenAuth = user.tokenAuth;
|
url = user.url + "/api-phone/gateway";
|
uploadUrl = user.url + "/api-phone/upload-img";
|
})
|
|
//页面跳转
|
function toView(tag) {
|
var url = tag + ".html";
|
mui.openWindow({
|
url: url,
|
id: tag,
|
})
|
}
|
|
//拍照打卡
|
function toPhoto() {
|
plus.geolocation.getCurrentPosition(showLocation, function(e) {
|
mui.alert("获取定位信息失败,请先打开定位开关!", '提示', ["确定"], function() {}, "div");
|
}, {
|
geocode: true
|
});
|
}
|
|
/*---------------获取定位信息-------------------*/
|
//处理定位后的信息
|
function showLocation(r) {
|
var bd09 = "";
|
if (r.coordsType == 'gcj02') {
|
//国测局坐标转百度坐标
|
bd09 = gcj02_To_Bd09(r.coords.longitude, r.coords.latitude);
|
} else if (r.coordsType == 'wgs84') {
|
//wgs84转百度坐标
|
bd09 = wgs84_To_Bd09(r.coords.longitude, r.coords.latitude);
|
} else {
|
bd09 = r.coords.longitude + "," + r.coords.latitude
|
}
|
var location = bd09.split(",");
|
longitude = location[0];
|
latitude = location[1];
|
//获取拍照上传文件名
|
choosePic();
|
}
|
//国测局坐标(即火星坐标gcj02) 转化为百度坐标(即BD-09)
|
function gcj02_To_Bd09(gcj_lon, gcj_lat) {
|
var x = gcj_lon,
|
y = gcj_lat;
|
var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * pi);
|
var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * pi);
|
var bd_lon = z * Math.cos(theta) + 0.0065;
|
var bd_lat = z * Math.sin(theta) + 0.006;
|
return bd_lon + "," + bd_lat;
|
}
|
//地球坐标(即wgs84) 转化为百度坐标(即BD-09)
|
function wgs84_To_Bd09(wgs_lon, wgs_lat) {
|
//第一次转换(wgs84转gcj02)
|
var dlat = transformlat(wgs_lon - 105.0, wgs_lat - 35.0);
|
var dlng = transformlon(wgs_lon - 105.0, wgs_lat - 35.0);
|
var radlat = wgs_lat / 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);
|
dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * pi);
|
var mglat = wgs_lat + dlat;
|
var mglng = wgs_lon + dlng;
|
|
//第二次转换(gcj02转bd09)
|
var z = Math.sqrt(mglng * mglng + mglat * mglat) + 0.00002 * Math.sin(mglat * x_pi);
|
var theta = Math.atan2(mglat, mglng) + 0.000003 * Math.cos(mglng * x_pi);
|
var bd_lon = z * Math.cos(theta) + 0.0065;
|
var bd_lat = z * Math.sin(theta) + 0.006;
|
return bd_lon + "," + bd_lat;
|
}
|
|
function transformlat(lat, lon) {
|
var ret = -100.0 + 2.0 * lon + 3.0 * lat + 0.2 * lat * lat + 0.1 * lon * lat + 0.2 * Math.sqrt(Math.abs(lon));
|
ret += (20.0 * Math.sin(6.0 * lon * pi) + 20.0 * Math.sin(2.0 * lon * pi)) * 2.0 / 3.0;
|
ret += (20.0 * Math.sin(lat * pi) + 40.0 * Math.sin(lat / 3.0 * pi)) * 2.0 / 3.0;
|
ret += (160.0 * Math.sin(lat / 12.0 * pi) + 320 * Math.sin(lat * pi / 30.0)) * 2.0 / 3.0;
|
return ret;
|
}
|
|
function transformlon(lat, lon) {
|
var ret = 300.0 + lon + 2.0 * lat + 0.1 * lon * lon + 0.1 * lon * lat + 0.1 * Math.sqrt(Math.abs(lon));
|
ret += (20.0 * Math.sin(6.0 * lon * pi) + 20.0 * Math.sin(2.0 * lon * pi)) * 2.0 / 3.0;
|
ret += (20.0 * Math.sin(lon * pi) + 40.0 * Math.sin(lon / 3.0 * pi)) * 2.0 / 3.0;
|
ret += (150.0 * Math.sin(lon / 12.0 * pi) + 300.0 * Math.sin(lon / 30.0 * pi)) * 2.0 / 3.0;
|
return ret;
|
}
|
|
/*---------------调用相机拍照-------------------*/
|
//拍照上传
|
function choosePic() {
|
var btnArray = [{
|
title: "拍照打卡"
|
}];
|
plus.nativeUI.actionSheet({
|
title: "请选择",
|
cancel: "取消",
|
buttons: btnArray
|
},
|
function(e) {
|
var index = e.index;
|
switch (index) {
|
case 1:
|
cameraImg();
|
break;
|
}
|
});
|
};
|
//相机拍照
|
function cameraImg() {
|
var cmr = plus.camera.getCamera();
|
cmr.captureImage(function(p) {
|
//成功
|
plus.io.resolveLocalFileSystemURL(p, function(entry) {
|
var path = entry.toLocalURL(); //获得图片路径
|
uploadImg(path);
|
}, function(e) {
|
mui.toast("读取拍照图片错误,请重试!");
|
});
|
}, function(e) {
|
mui.toast("拍照失败,请重试!");
|
});
|
}
|
|
//开始上传
|
function uploadImg(path) {
|
//转圈等待框
|
var wt = plus.nativeUI.showWaiting();
|
//上传
|
var task = plus.uploader.createUpload(uploadUrl, {
|
method: "POST"
|
},
|
function(t, status) { //上传完成
|
if (status == 200) {
|
var obj = JSON.parse(t.responseText);
|
imgName = obj.data.fileName;
|
//关闭转圈等待框
|
wt.close();
|
//上传打卡记录信息
|
if (imgName && longitude && latitude) {
|
data.data.imgName = imgName;
|
data.data.longitude = longitude;
|
data.data.latitude = latitude;
|
//发送请求
|
mui.ajax(url, {
|
type: "POST",
|
dataType: "json",
|
crossDomain: true,
|
contentType: "application/json;charset=utf-8",
|
data: JSON.stringify(data),
|
success: function(result) {
|
if (result.code == "0000") {
|
mui.alert("打卡成功!", '提示', ["确定"], function() {}, "div");
|
} else {
|
mui.alert(result.msg, '提示', ["确定"], function() {}, "div");
|
}
|
},
|
error: function() {
|
mui.alert('系统繁忙,请重试!', '提示', ["确定"], function() {}, "div");
|
}
|
})
|
} else {
|
mui.alert("上传失败,请重试!", '提示', ["确定"], function() {}, "div");
|
}
|
} else {
|
mui.alert("上传失败,请重试!", '提示', ["确定"], function() {}, "div");
|
//关闭转圈等待框
|
wt.close();
|
}
|
});
|
//图片信息
|
task.addFile(path, {
|
key: "uploadkey"
|
});
|
task.start();
|
}
|
</script>
|
</body>
|
</html>
|