<meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
<script type="text/javascript" src="static/js/jquery.2.14.js">script>
<link rel="stylesheet" href="static/layui/css/layui.css">
<script type="text/javascript" src="static/layui/layui.js">script>
<script src="//res.wx.qq.com/open/js/jweixin-1.6.0.js">script>
<div class="layui-card">
<div id="map" style="width: 100%;height: 300px;">div>
div>
<div class="layui-card">
<div class="layui-card-header" style="text-align: center;font-weight: bold;">说明:拖动红色标注可调整经纬度精度div>
<div class="layui-card-body">
<div class="layui-form-item">
<label for="province" class="layui-form-label">省份<span class="x-red">*span>label>
<div class="layui-input-block"><input type="text" id="province" name="province" class="layui-input">div>
div>
<div class="layui-form-item">
<label for="city" class="layui-form-label">地市<span class="x-red">*span>label>
<div class="layui-input-block"><input type="text" id="city" name="city" class="layui-input">div>
div>
<div class="layui-form-item">
<label for="ccountry" class="layui-form-label">区县 <span class="x-red">*span>label>
<div class="layui-input-block"><input type="text" id="ccountry" name="ccountry" class="layui-input">div>
div>
<div class="layui-form-item">
<label for="detailInfo" class="layui-form-label">地址<span class="x-red">*span>label>
<div class="layui-input-block"><input type="text" id="detailInfo" name="detailInfo" class="layui-input">div>
div>
<div class="layui-form-item">
<label for="lnglat" class="layui-form-label">经纬度 <span class="x-red">*span>label>
<div class="layui-input-block"><input type="text" id="lnglat" name="lnglat" class="layui-input">div>
div>
div>
div>
function map_load() {
var load = document.createElement("script");
load.src = "//api.map.baidu.com/api?v=3.0&ak=3HGqGo1RHf***&callback=map_init";
document.body.appendChild(load);
}
window.onload = map_load;
getBdGeo
();定位封装函数;marker.addEventListener('dragend', function () {},
监听标注事件,手动调整景点getCurrentPosition,
加载即自动采集当前位置的经纬度信息和城市地址信息; //初始化地图;
var map;
function map_init() {
map = new BMap.Map("map", {enableMapClick: false});
var point = new BMap.Point(120.199672, 30.331184);
map.centerAndZoom(point, 17);
map.enableScrollWheelZoom();
// 添加定位控件;
var geolocationControl = new BMap.GeolocationControl();
map.addControl(geolocationControl);
//自动定位;
getBdGeo();
function getBdGeo() {
var geolocation = new BMap.Geolocation();
geolocation.getCurrentPosition(function (r) {
if (this.getStatus() == BMAP_STATUS_SUCCESS) {
map.clearOverlays();
map.panTo(r.point);
//alert(JSON.stringify(r));
$("#province").val(r.address.province);
$("#city").val(r.address.city);
$("#ccountry").val(r.address.district);
$("#detailInfo").val(r.address.street+r.address.street_number);
$("#lnglat").val(r.point.lng + "," + r.point.lat)
//返回当前中心点;
var points = new BMap.Point(r.point.lng, r.point.lat);
map.centerAndZoom(points, 17);
//添加标注;
var marker = new BMap.Marker(points);
map.addOverlay(marker);
marker.enableDragging();
marker.addEventListener('dragend', function () {
//console.log(marker.getPosition().lat);
$("#lnglat").val(marker.getPosition().lng + "," + marker.getPosition().lat)
})
} else {
//定位失败
layer.msg('无法获取定位,系统将自动定位,错误码:' + this.getStatus(), {icon: 2, time: 1000}, function () {
map.centerAndZoom("杭州", 17); //用城市名设置地图中心点
})
}
}, function (error) {
console.log(error);
}, {
enableHighAccuracy: true,//是否要求高精度的地理位置信息
timeout: 1000,//对地理位置信息的获取操作做超时限制,如果再该事件内未获取到地理位置信息,将返回错误
maximumAge: 0//设置缓存有效时间,在该时间段内,获取的地理位置信息还是设置此时间段之前的那次获得的信息,超过这段时间缓存的位置信息会被废弃
});
}
}
通过web-view 组件直接嵌入H5地址。
?timestamp={{timestamp}}
<web-view src="https://test.com/data/lnglat.html?timestamp={{timestamp}}"></web-view>
/**
* 页面的初始数据
*/
data: {
timestamp: '${new Date().getTime()}'
},
导航栏设置
{
"usingComponents": {},
"navigationBarTitleText": "漏刻有时地理信息",
"navigationBarBackgroundColor": "#16baaa",
"navigationBarTextStyle": "white"
}
版本发布过程中,某些组件或API需要在app.json中配置或者提前申请,按照发布时的提醒,逐步操作即可。
@漏刻有时