现在我们使用'Weizhe He'提供的cordova-qdc-baidu-location来尝试创建简单的定位app。
Stpe1:创建一个项目
Stpe2:申请百度地图API秘钥
应用类型请选择:Andorid应用
包名:如图所示的名字(config.xml内 widget节点中id的值)
Stpe3:在项目中添加cordova-qdc-baidu-location插件
安装插件命令:ionic plugin add https://github.com/hewz/cordova-baidu-location --variable API_KEY="你的应用秘钥"
ps:
卸载插件命令:ionic plugin rm com.hewz.plugins.baidu.location
列出所有插件:ionic plugin list
安装完毕后可见下图内容:
Stpe4:在项目中添加百度地图API的JS引用
打开Index.html
4.1 在head中添加代码
<meta http-equiv="Content-Security-Policy" content="script-src * 'unsafe-eval'; connect-src * 'unsafe-eval';object-src 'self'; style-src * 'unsafe-inline'; img-src *" >
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你应用的秘钥"></script>
4.2 编写插件使用代码
4.2.1 打开www->templates->tab-dash.html修改代码为:
<ion-view view-title="百度地图测试">
<ion-content>
<ion-list>
<ion-item>
<button class="button button-block button-calm" ng-click="getpoint()"> 开始定位 </button>
</ion-item>
<ion-item>
经度:{{ret.longitude}} 纬度:{{ret.latitude}}
</ion-item>
<ion-item>
<div id="allmap" style="height: 600px;">
</div>
</ion-item>
</ion-list>
</ion-content>
</ion-view>
4.2.2 打开www->js->controllers.js修改[DashCtrl]代码为:
.controller('DashCtrl', function($scope) {
var map = new BMap.Map("allmap"); // 创建Map实例
var point = new BMap.Point(104.108164,30.773969); // 创建点坐标
$scope.ret = {latitude:30.773969, longitude:104.108164};
map.centerAndZoom(point,19); // 初始化地图,用城市名设置地图中心点
var marker = new BMap.Marker(point); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
$scope.getpoint = function() {
baidu_location.getCurrentPosition(function(data){
$scope.ret = {longitude:data.longitude, latitude:data.latitude};
var map = new BMap.Map("allmap"); // 创建Map实例
var point = new BMap.Point(data.longitude, data.latitude); // 创建点坐标
map.centerAndZoom(point,19);
var marker = new BMap.Marker(point); // 创建标注
map.addOverlay(marker); // 将标注添加到地图中
}, function(err){
alert("错误:"+ err)
});
};
})
Stpe5:测试
需要注意的是,我们在浏览器测试项目的时候,会提示baidu_location没有定义,实际需要在手机上体验完整功能。
手机连接电脑后,使用ionic小助手,打开项目并真机调试,直接将app安装到手机,注意打开手机USB调试模式,保持手机解锁并点亮,ionic小助手编译安装完成,可能经历一下几步:
.