由於項目需求,需要一個定位功能,通過google或百度,搜到一個cordova-plugin-geolocation的插件,在ios上可以用,但是在android就呵呵了,原因就不說了,大家都知道。所以
android需要用到百度的一個插件實現定位功能。
Android:
1.首先要申請一個百度地圖密鑰
2.添加百度定位插件 ionic plugin add https://github.com/mrwutong/cordova-qdc-baidu-location --variable API_KEY="<API_KEY>" ---API_KEY 即百度密鑰
3.使用方法
在需要定位的地方加入下列代碼
baidu_location.getCurrentPosition(function ( message ) { console.log(message); }, function ( message ) { console.log(message); });
插件默認只提供經緯度信息,如果需要詳細的信息,需要到BaiduLocation.java修改
option.setIsNeedAddress(false); 改為 option.setIsNeedAddress(true);
Ios:
1.添加官方定位插件 cordova plugin add cordova-plugin-geolocation 附文檔地址
2.使用方法
在需要使用定位的地方添加下列代碼
module.controller('GeoCtrl', function($cordovaGeolocation) { var posOptions = {timeout: 10000, enableHighAccuracy: false}; $cordovaGeolocation.getCurrentPosition(posOptions) .then(function (position) { var lat = position.coords.latitude var long = position.coords.longitude }, function(err) { // error });
如果需要詳細信息,可以使用百度的Geocoding API實現根據經緯度獲取詳細信息。
使用方法:
$http.jsonp("http://api.map.baidu.com/geocoder/v2/?callback=JSON_CALLBACK&mcode=com.xxxxx.-&location=39.983424,116.322987&output=json&pois=1&ak=您的ak")
.success(function(data){ console.log(data) })
添加mcode的時候 ios 的就是申請密鑰時的安全碼。
注意:每添加一個插件都要 執行ionic platform rm android 或ionic platform rm ios ,ionic platform add android 或ionic platform add ios 之后,插件才能運行。