幾種獲取當前地理位置信息的方法


1.html5 自帶獲取當前地理位置信息

   //獲取當前經緯度 IOS 10 獲取定位信息只支持https 請求所以以下方法不適用
        //    navigator.geolocation.getCurrentPosition( // 該函數有如下三個參數
        //   function (pos) { // 如果成果則執行該回調函數
        //       la = pos.coords.longitude;
        //       lg = pos.coords.latitude;
        //       console.log(pos.coords.longitude);
        //       console.log(pos.coords.latitude);
        //       //alert(
        //       //    '  經度:' + pos.coords.latitude +
        //       //    '  緯度:' + pos.coords.longitude +
        //       //    '  高度:' + pos.coords.altitude +
        //       //    '  精確度(經緯):' + pos.coords.accuracy +
        //       //    '  精確度(高度):' + pos.coords.altitudeAccuracy +
        //       //    '  速度:' + pos.coords.speed
        //       //);
        //   }, function (err) { // 如果失敗則執行該回調函數
        //       alert(err.message);
        //   }, { // 附帶參數
        //       enableHighAccuracy: true, // 提高精度(耗費資源)
        //       timeout: 5000, // 超過timeout則調用失敗的回調函數
        //       maximumAge: 1000 // 獲取到的地理信息的有效期,超過有效期則重新獲取一次位置信息
        //   });

2.騰訊地圖獲取當前地理位置信息

 //填入自己在騰訊地圖開放平台申請的KEY
        var geolocation = new qq.maps.Geolocation("    JU6BZ-AY2R5-JF5IN-QJAVP-CSM6H-AKFNP", "MyMap");
        var options = { timeout: 8000 };
        geolocation.getLocation(sucCallback, errCallback, options);
        //成功的回調 返回的是火星坐標
        function sucCallback(position) {
            var mapInfo = JSON.stringify(position, null, 4);
            var jsonMapInfo = eval('(' + mapInfo + ')');
            success(jsonMapInfo.lng, jsonMapInfo.lat);
        }
        //失敗的回調
        function errCallback() {
            geolocation.getLocation(sucCallback, errCallback, options);
        }
        //業務邏輯
        function success(la, lg) {
            //拿到經緯度的業務邏輯...
        }

3.火星坐標轉百度坐標需引用百度地圖js

//jsonMapInfo 為要轉換的點
   var gpsPoint = new BMap.Point(jsonMapInfo.lng, jsonMapInfo.lat);
            console.log("轉換之前的點" + gpsPoint.lat +","+gpsPoint.lng);
            BMap.Convertor.translate(gpsPoint, 2, function (point) {
                console.log("轉換之后的點" + point.lat + "," + point.lng);
            })

4.百度地圖獲取當前位置信息並導航到目標點

    var geolocation = new BMap.Geolocation();
        //獲取當前位置信息
        geolocation.getCurrentPosition(function (r) {
            if (this.getStatus() == BMAP_STATUS_SUCCESS) {
                console.log('您的位置:' + r.point.lng + ',' + r.point.lat);
                var map = new BMap.Map("l-map");    // 創建Map實例
                map.centerAndZoom(new BMap.Point(r.point.lng, r.point.lat), 13);  // 初始化地圖,設置中心點坐標和地圖級別
                map.setCurrentCity("深圳");          // 設置地圖顯示的城市 此項是必須設置的
                map.enableScrollWheelZoom(true);     //開啟鼠標滾輪縮放
                //var driving = new BMap.DrivingRoute(map, { renderOptions: { map: map, panel: "r-result", autoViewport: true } });
                //driving.search("中關村一街", "魏公村");
                var transit = new BMap.TransitRoute(map, {
                    onResultsHtmlSet: function () { $("#r-result").show() },
                    policy: 0,
                    renderOptions: { map: map, panel: "r-result" }
                });
                //起點位置
                var start = new BMap.Point(r.point.lng, r.point.lat);
                //需要導航的地址
                var end = new BMap.Point(GetRequest().la, GetRequest().lg);
                console.log(start);
                console.log(end);
                transit.search(start, end, BMAP_TRANSIT_POLICY_LEAST_TIME);//最少時間
                //var routePolicy = [BMAP_TRANSIT_POLICY_LEAST_TIME, BMAP_TRANSIT_POLICY_LEAST_TRANSFER, BMAP_TRANSIT_POLICY_LEAST_WALKING, BMAP_TRANSIT_POLICY_AVOID_SUBWAYS]; //0最少時間 1 最少換乘 2 最少步行 3 不乘地鐵
            }
            else {
                alert('failed' + this.getStatus());
            }
        }, { enableHighAccuracy: true })

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM