使用高德定位API :
AMap.Map("iCenter")
AMap.CitySearch()
先在高德開放平臺注冊申請定位權限的key。 網(wǎng)站;高德開放平臺
在需要定位的頁面引入有定位key的script
基本引入展示
使用高德定位API
需求:蘋果設備使用IP定位,其他使用gps定位
function getlocation() { var u = navigator.userAgent; var ua = navigator.userAgent.toLowerCase(); var isAndroid = u.indexOf("Android") > -1 || u.indexOf("Adr") > -1; //android終端 var isiOS = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/); //ios終端 //GPS定位 function locationForGPS() { /*********跟蹤標記**********/ console.log("GPS定位開始+++"); var map, geolocation; //加載地圖,調(diào)用瀏覽器定位服務 map = new AMap.Map("iCenter"); map.plugin("AMap.Geolocation", function() { geolocation = new AMap.Geolocation({ enableHighAccuracy: false,//是否使用高精度定位,默認:true timeout: 10000, //超過10秒后停止定位,默認:無窮大 }); map.addControl(geolocation); geolocation.getCurrentPosition(); //getCityInfo是高德GPS定位里面的一個方法,先返回ip定位數(shù)據(jù),由于IP定位有可能不準確,所以后面用GPS數(shù)據(jù)修正 // geolocation.getCityInfo(function(status,result){ /*********跟蹤標記**********/ console.log("與GPS同步IP定位開始,進行數(shù)據(jù)寫入+++"); if (status === "complete" && result.info === "SUCCESS") { /*********跟蹤標記**********/ console.log("同步IP定位成功,進行數(shù)據(jù)寫入+++"); if(isNull(sessionStorage.getItem("autouserchooselocationct"))){ /*********跟蹤標記**********/ console.log("未檢測檢查有上一次定位數(shù)據(jù),進行數(shù)據(jù)寫入+++"); let cityAdcode=result.adcode; let cityName=result.city; sessionStorage.setItem("autouserchooselocationct", cityName); sessionStorage.setItem("autouserchooselocationcode", cityAdcode); /*********跟蹤標記**********/ console.log("同步IP定位結束,進行數(shù)據(jù)寫入完成+++"); } } }); AMap.event.addListener(geolocation, "complete", onComplete);//返回定位信息 AMap.event.addListener(geolocation, "error", onError); //返回定位出錯信息 }); //GPS定位成功 function onComplete(data) { console.log(data) /*********跟蹤標記**********/ console.log("GPS定位啟動+++"); //gsp定位精確到區(qū),返回的adcode精確到了城市下屬的區(qū)域, //想要獲取城市的abcode還需要使用高德的另一個API,城市區(qū)域查詢 let cityName=data.addressComponent.city; let geocoder = new AMap.Geocoder({}); //地理編碼,返回地理編碼結果, geocoder.getLocation(cityName, function(status, result) { if (status === "complete" && result.info === "OK") { /*********跟蹤標記**********/ console.log("GPS定位成功,處理定位數(shù)據(jù)+++"); /*********跟蹤標記**********/ console.log("進行數(shù)據(jù)寫入,覆蓋同步IP的數(shù)據(jù)+++"); let cityAdcode=result.geocodes[0].adcode; sessionStorage.setItem("autouserchooselocationct", cityName); sessionStorage.setItem("autouserchooselocationcode", cityAdcode); /*********跟蹤標記**********/ console.log("GPS定位結束,進行數(shù)據(jù)寫入完成+++"); } }); } //GPS定位失敗 function onError() { /*********跟蹤標記**********/ console.log("GPS定位失敗開始啟用ip定位+++"); locationForIp(true); /*********跟蹤標記**********/ console.log("gps-ip++...") } } //IP定位 function locationForIp(tap) { /*********跟蹤標記**********/if(tap){ console.log("GPS定位失敗開始啟用ip定位+++");} /*********跟蹤標記**********/ console.log("ip定位開始+++"); var citysearch = new AMap.CitySearch(); //自動獲取用戶IP,返回當前城市 citysearch.getLocalCity(function (status, result) { if (status === "complete" && result.info === "OK") { if (result && result.city && result.bounds) { let GetUserLocation = result.city, GetUserLocationcode = result.adcode; /*********跟蹤標記**********/console.log("ip定位成功,開始檢查是否有上一次定位數(shù)據(jù)+++"); if(isNull(sessionStorage.getItem("autouserchooselocationct"))){ /*********跟蹤標記**********/console.log("ip定位成功,未檢測檢查有上一次定位數(shù)據(jù),進行數(shù)據(jù)寫入+++"); sessionStorage.setItem("autouserchooselocationct", GetUserLocation); sessionStorage.setItem("autouserchooselocationcode", GetUserLocationcode); /*********跟蹤標記**********/console.log("ip定位成功,進行數(shù)據(jù)寫入結束+++"); } } } else { /*********跟蹤標記**********/console.log("ip定位失敗,進行數(shù)據(jù)寫入結束+++"); } }) } if(isiOS){ /*********跟蹤標記**********/console.log("ios設備啟用IP定位"); locationForIp(false); }else { /*********跟蹤標記**********/console.log("非ios設備啟用GPS定位"); locationForGPS() } } };
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/108102.html
摘要:廣告開始最近做了表格數(shù)據(jù)轉成圖表展示的一個組件,地址如下整合地圖的時候發(fā)現(xiàn)針對地級市的一些文件太多了,全部引入后有將近,所以就用了下高德老爺給的組件和接口,然后弄完在這記錄一下雖然這種例子在社區(qū)里有很多這個組件文件放在了中,樣式奇丑,請原諒 /——————廣告開始——————/ 最近做了表格數(shù)據(jù)轉成圖表展示的一個react組件,地址如下: https://github.com/Lyla...
摘要:最近的項目中遇到了一個實時天氣顯示的問題通過高德地圖的開放解決了將思路留下已經(jīng)將它封裝成了一個函數(shù)可以直接拿去使用不過使用前最好還是測試一下思路首先通過調(diào)用高德地圖定位的獲取的定位信息中有好像是高德的一組城市地理信息編號吧然后通過調(diào)用高德的 最近的項目中遇到了一個實時天氣顯示的問題.通過高德地圖的開放 API 解決了;將思路留下. 已經(jīng)將它封裝成了一個函數(shù). 可以直接拿去使用. 不過使...
正在進行NLP(自然語言處理)相關任務完成后,經(jīng)常碰到務必辨別并獲得省、大都市、行政區(qū)的需求。今天給大家介紹1個模塊,你只需將結構體數(shù)組傳遞給這個模塊,他就可以給你返回這個結構體數(shù)組內(nèi)的省、市、區(qū)關鍵詞,趕緊一起來了解一下 正在進行NLP(自然語言處理)相關任務完成后,經(jīng)常碰到務必辨別并獲得省、大都市、行政區(qū)的需求。雖然自身依據(jù)關鍵詞表1個一個搜索也可以實現(xiàn)獲得目的,但必須要先搜集省份關鍵詞...
摘要:說起物聯(lián)網(wǎng),大家的第一反應就是智慧城市。在物聯(lián)網(wǎng)的幫助下,得以讓我們居住的城市正變得越來越有智慧。作為面向物聯(lián)網(wǎng)的可視化開發(fā)平臺有廣闊的行業(yè)應用場景。 隨著科技的發(fā)展,5G網(wǎng)絡的到來,將開啟萬物即插即慧的新時代。這就是物聯(lián)網(wǎng),當網(wǎng)絡不再是阻礙,萬物互聯(lián),萬物可視,把數(shù)字世界帶入每個人、每個家庭、每個組織,構建萬物互聯(lián)的智能世界。 說起物聯(lián)網(wǎng),大家的第一反應就是智慧城市。在物聯(lián)網(wǎng)的幫助下...
閱讀 3256·2023-04-26 02:10
閱讀 2880·2021-10-12 10:12
閱讀 4557·2021-09-27 13:35
閱讀 1519·2019-08-30 15:55
閱讀 1058·2019-08-29 18:37
閱讀 3422·2019-08-28 17:51
閱讀 1954·2019-08-26 13:30
閱讀 1191·2019-08-26 12:09