ionic 添加地图定位功能

  由于项目需求,需要一个定位功能,通过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 之后,插件才能运行。

posted @ 2016-12-30 10:23  Aiolos丶M  阅读(5841)  评论(4编辑  收藏  举报