• 160913、ionic + 高德地图定位


    实例一:

    var AMapArea=document.getElementById('amap');
        AMapArea.parentNode.style.height="100%";
        //$scope.AMapId='container';
        $scope.mapObj;//存放初始化的地图对象
        //$scope.initAMap=function(){
          var position=new AMap.LngLat(116.397428,39.90923);
          $scope.mapObj=new AMap.Map("container",{
            resizeEnable: true,
              zoom: 14,
              center: [116.39,39.9]
          });
        $scope.mapObj.plugin(['AMap.Geolocation'], function () {
          var geolocation = new AMap.Geolocation({
            enableHighAccuracy: true,//是否使用高精度定位,默认:true
            timeout: 10000,          //超过10秒后停止定位,默认:无穷大
            maximumAge: 0,           //定位结果缓存0毫秒,默认:0
            convert: true,           //自动偏移坐标,偏移后的坐标为高德坐标,默认:true
            showButton: true,        //显示定位按钮,默认:true
            buttonPosition: 'LB',    //定位按钮停靠位置,默认:'LB',左下角
            buttonOffset: new AMap.Pixel(10, 20),//定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
            showMarker: true,        //定位成功后在定位到的位置显示点标记,默认:true
            showCircle: true,        //定位成功后用圆圈表示定位精度范围,默认:true
            panToLocation: true,     //定位成功后将定位到的位置作为地图中心点,默认:true
            zoomToAccuracy:true      //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
          });
          $scope.mapObj.addControl(geolocation);
          AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息
          AMap.event.addListener(geolocation, 'error', onError);      //返回定位出错信息
        });
        function onComplete(dt)
        {
          var position=dt.position;
          var _latitude = position.getLat();
          var _longitude = position.getLng();
          $scope.mapObj.setCenter([_longitude,_latitude]);
          console.log(_latitude,_longitude);
        }

    实例二、

    function getLocation() {
          var deferred = $q.defer();
    
          if (!navigator.geolocation)
          {
            console.log("不支持");
            return;
          }
          console.log("start");;
          navigator.geolocation.getCurrentPosition(function (position) {
            var _locationGaps = [];
            console.log("ok");
            var _latitude = position.coords.latitude;
            var _longitude = position.coords.longitude;
            $scope.mapObj.setCenter([_longitude,_latitude]);
            console.log(_latitude,_longitude);
    
          }, function (error) {
            switch(error.code)
            {
              case error.PERMISSION_DENIED:
                console.log("User denied the request for Geolocation.");
                break;
              case error.POSITION_UNAVAILABLE:
                console.log("Location information is unavailable.");
                break;
              case error.TIMEOUT:
                console.log("The request to get user location timed out.");
                break;
              case error.UNKNOWN_ERROR:
                console.log("An unknown error occurred.");
                break;
            }
            // 如果获取经纬度时出错, 提示错误
            //toaster.pop('error','无法获取您的地理位置','请检查您是否禁止本应用获取您的当前位置');
            console.log('无法获取您的地理位置','请检查您是否禁止本应用获取您的当前位置');
            deferred.reject(error);
          });
          return deferred.promise;
        };

    实例三、

    function getLocation1() {
    
          navigator.geolocation.getCurrentPosition(onSuccess, onError, { maximumAge: 3000, timeout: 5000, enableHighAccuracy: true });
          function onSuccess(position) {
            var lat = position.coords.latitude;
            var long = position.coords.longitude;
            $scope.mapObj.setCenter([lat,long]);
            console.log(lat,long);
            //appvalues.showmessage("已经成功定位.");
          }
          function onError(err) {
            //appvalues.showmessage("无法获取地理位置.");
            console.log("无法获取地理位置.");
            console.log(JSON.stringify(err));
            return;
          }
          //获取地理位置
          /*document.addEventListener("deviceready", function (success) {
            var posOptions = { timeout: 5000, enableHighAccuracy: false };
            $cordovaGeolocation
              .getCurrentPosition(posOptions)
              .then(function (position) {
                var lat = position.coords.latitude;
                var long = position.coords.longitude;
                $scope.mapObj.setCenter([lat,long]);
                console.log(lat,long);
                //appvalues.showmessage("已经成功定位.");
              }, function (err) {
                //appvalues.showmessage("无法获取地理位置.");
                console.log("无法获取地理位置.");
                console.log(JSON.stringify(err));
                return;
              });
          }, false);*/
        };
  • 相关阅读:
    [luoguP2770] 航空路线问题(最小费用最大流)
    javascript技巧大全套
    jLim
    自己封装的Ajax
    JavaScript函数调用规则
    JavaScript模板引擎使用
    JavaScript MD5
    JavaScript SHA-1
    JavaScript Map对象的实现
    javascript中的_return_false和return_true
  • 原文地址:https://www.cnblogs.com/zrbfree/p/5880913.html
Copyright © 2020-2023  润新知