如果还没有注册的童鞋可以先去百度地图开放平台注册一下账号,如果不明白可以参考:https://blog.csdn.net/qq_17623363/article/details/103234119
在本教程中就不再说了。
点我进入百度地图开放平台:http://lbsyun.baidu.com/
MUI框架中使用百度地图(全网独一份最详细的图文教程)
1、点我进入百度地图开放平台:http://lbsyun.baidu.com/apiconsole/key
2、点击创建应用
3、填入必要的信息,下面将详细的说明获取的过程
Android平台云端打包 - DCloud公用证书(DCloud老版证书):https://ask.dcloud.net.cn/article/68
MUI使用HB打包时的安卓包名:
4、创建成功后的截图
1、把Android SDK AK或者IOS SDK AK与MUI项目中的manifest.json配置文件中配置百度地图的SDK。
检查下代码中是否成功的加入了
如果没有加入的话,需要使用代码加入:
"Maps": {
"description": "管理地图插件"
},
"plugins":{
"maps":{
"baidu":{
"appkey_ios":"Ki7ZsP50R0dqhyMU10zlB2VRKV3oa06n",
"appkey_android":"Ki7ZsP50R0dqhyMU10zlB2VRKV3oa06n",
"appkey":"",
"description":"百度地图"}
}
},
项目结构:
废话不多说直接上代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title>校园一点通</title>
<script src="js/mui.min.js"></script>
<link href="css/mui.min.css" rel="stylesheet" />
<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=YqNA3NwCSGF6L2NA5pFAz6mx6nbRRsUI"></script>
<style type="text/css">
body,
html,
#map {
width: 100%;
height: 80%;
overflow: hidden;
font-family: "微软雅黑";
}
</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 id="map"></div>
<input type="text" id="address" />
<button type="button" id="dingwei" style="width: 100%;" class="mui-btn mui-btn-primary mui-btn-outlined">定位</button>
</body>
<script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script type="text/javascript" charset="utf-8">
mui.init();
var map = new BMap.Map("map"); //地图显示位置
var gc = new BMap.Geocoder(); //将坐标转换成地址
//页面初始化时
$(function() {
//初始化地图 默认加载北京天安门
var point = new BMap.Point(116.40369689697, 39.914934528088);
map.centerAndZoom(point, 16); //初始化地图,point为中心点,缩放级别为16
$("#address").val("默认加载北京天安门,请点击定位按钮生效!")
})
//监听定位按钮事件
$("#dingwei").click(function() {
//调用定位函数
getLocation();
})
function getLocation() {
//判断手机浏览器是否支持定位
if(navigator.geolocation) {
var geolocation = new BMap.Geolocation(); //创建定位实例
geolocation.getCurrentPosition(showPosition, {
enableHighAccuracy: true
}); //enableHighAccuracy 要求浏览器获取最佳结果
} else {
console.log("不支持定位啦")
map.addControl(new BMap.GeolocationControl()); //添加定位控件 支持定位
}
}
//获取定位信息
function showPosition(position) {
var la = position.latitude;
var lo = position.longitude;
//新建中心点 并将地图中心移动过去
var centerPoint = new BMap.Point(lo, la);
map.panTo(centerPoint);
map.setCenter(centerPoint);
gc.getLocation(centerPoint, function(rs) {
var addComp = rs.addressComponents;
var mapAddress = addComp.province + addComp.city + addComp.district + addComp.street + addComp.streetNumber;
$("#address").val(mapAddress)
});
//新建标注
var mk = new BMap.Marker(centerPoint);
// mk.disableDragging(); // 不可拖拽
map.addOverlay(mk);
}
</script>
</html>
因为我是使用的模拟器(MuMu模拟器,还是很好用的)
为了测试效果方面,需要先在模拟器中设置好虚拟位置,设置步骤如下:
然后测试