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 })
