使用Javascript獲取地理位置(省市區)的幾種方式

      網友投稿 2892 2022-05-29

      在之前的一個項目開發中,當時是初步接觸了移動端H5開發,自己就邊學習HTML5相關知識邊開發,當時主要是JQuery比較流行,就使用了JQuery Mobile技術,發現這個不太適合做移動端產品,大部分樣式都需要重寫,只用了部分組件功能。

      在手機端端H5開發過程中第一次接觸了定位功能,通過搜索相關知識和查閱幫助文檔發現手機端定位都是通過瀏覽器的內置方法獲取,如果在PC端瀏覽器第一次打開會彈出提示“是否開啟定位功能”,老板看到這個提示,覺得對用戶的體驗效果不好,不好那我們就換一種方式實現不就好了,這也不是多大的事,有的是解決方案,就是要犧牲一點自己的時間。

      第一種,手機瀏覽器內置定位方法,使用百度地圖顯示定位數據點

      注冊百度開發者賬號,引入 javaScript API 腳本

      // 獲取定位數據 var getLocation = function (successFunc, errorFunc) { //successFunc獲取定位成功回調函數,errorFunc獲取定位失敗回調 //首先設置默認城市 var defCity = { id: '000001', name: '北京市', date: curDateTime()//獲取當前時間方法 }; //默認城市 $.cookie('VP_MOBILE_DEFAULTCITY', JSON.stringify(defCity), { expires: 1, path: '/' }); if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function (position) { var lat = position.coords.latitude; var lon = position.coords.longitude; //var map = new BMap.Map("container"); // 創建Map實例 var point = new BMap.Point(lon, lat); // 創建點坐標 var gc = new BMap.Geocoder(); gc.getLocation(point, function (rs) { var addComp = rs.addressComponents; var curCity = { id: '', name: addComp.province, date: curDateTime() }; //當前定位城市 $.cookie('VP_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' }); //alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street); if (successFunc != undefined) successFunc(addComp); }); }, function (error) { switch (error.code) { case 1: alert("位置服務被拒絕。"); break; case 2: alert("暫時獲取不到位置信息。"); break; case 3: alert("獲取位置信息超時。"); break; default: alert("未知錯誤。"); break; } var curCity = { id: '000001', name: '北京市', date: curDateTime() }; //默認城市 $.cookie('VP_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' }); if (errorFunc != undefined) errorFunc(error); }, { timeout: 5000, enableHighAccuracy: true }); } else { alert("你的瀏覽器不支持獲取地理位置信息。"); if (errorFunc != undefined) errorFunc("你的瀏覽器不支持獲取地理位置信息。"); } }; // 顯示地圖位置 var showPosition = function (position) { var lat = position.coords.latitude; var lon = position.coords.longitude; //var map = new BMap.Map("container"); // 創建Map實例 var point = new BMap.Point(lon, lat); // 創建點坐標 var gc = new BMap.Geocoder(); gc.getLocation(point, function (rs) { var addComp = rs.addressComponents; var curCity = { id: '', name: addComp.province, date: curDateTime() }; //當前定位城市 $.cookie('VP_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expires: 7, path: '/' }); //alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street); }); }; // 顯示定位錯誤 var showPositionError = function (error) { switch (error.code) { case 1: alert("位置服務被拒絕。"); break; case 2: alert("暫時獲取不到位置信息。"); break; case 3: alert("獲取位置信息超時。"); break; default: alert("未知錯誤。"); break; } var curCity = { id: '000001', name: '北京市', date: curDateTime() }; //默認城市 $.cookie('VP_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expires: 1, path: '/' }); };

      使用Javascript獲取地理位置(省市區)的幾種方式

      第二種,騰訊位置服務接口,IP定位

      參考文檔:https://lbs.qq.com/service/webService/webServiceGuide/webServiceIp

      // GET請求,注意參數值要進行URL編碼 https://apis.map.qq.com/ws/location/v1/ip?ip=111.206.145.41&key=*****-A4W3E-B7BVO-*****-6TRDJ-*****

      第三種,太平洋IP地址庫接口

      參考文檔:http://whois.pconline.com.cn/

      第四種,搜狐IP地址獲取

      查詢接口(默認GBK):http://pv.sohu.com/cityjson

      查詢接口(可設置編碼):http://pv.sohu.com/cityjson?ie=utf-8

      IP地址查詢接口:http://txt.go.sohu.com/ip/soip

      獲取客戶端IP方法

      $.getScript("http://pv.sohu.com/cityjson?ie=utf-8",function(data){ console.log(returnCitySN); });

      溫馨提示

      文章內容如果寫的存在問題歡迎留言指出,讓我們共同交流,共同探討,共同進步~~~

      文章如果對你有幫助,動動你的小手點個贊,鼓勵一下,給我前行的動力。

      JavaScript jQuery

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:6.Makefile自動化變量
      下一篇:最需要的時候遇見你OrgChart
      相關文章
      youjizz亚洲| 亚洲精品无码久久毛片波多野吉衣| 亚洲成AV人综合在线观看| 亚洲国产成人久久精品影视 | 亚洲一区二区三区在线| 亚洲色成人网一二三区| 亚洲欧洲日韩国产| 亚洲大尺码专区影院| 亚洲成av人片在线看片| 亚洲专区一路线二| tom影院亚洲国产一区二区| 亚洲一区中文字幕| 亚洲性色AV日韩在线观看| 亚洲国产精品网站在线播放| 亚洲AV成人片无码网站| 国产成人亚洲精品电影| 亚洲高清无码专区视频| 亚洲一级片免费看| 亚洲国产三级在线观看| 亚洲国产AV无码专区亚洲AV| 亚洲AV无码久久精品狠狠爱浪潮 | 亚洲狠狠色丁香婷婷综合| 国产精品久久久久久亚洲影视| 国产精品观看在线亚洲人成网| 国产亚洲综合视频| 久久乐国产精品亚洲综合| 亚洲日韩涩涩成人午夜私人影院| 亚洲午夜久久久久久久久电影网| 亚洲国产另类久久久精品小说| 亚洲卡一卡2卡三卡4卡无卡三| 久久久久亚洲精品日久生情| 精品亚洲AV无码一区二区| 亚洲欧美日韩久久精品| 国产午夜亚洲精品不卡电影| 亚洲视频在线免费| 亚洲av永久无码精品漫画| 78成人精品电影在线播放日韩精品电影一区亚洲 | 国产亚洲Av综合人人澡精品| 亚洲日本va午夜中文字幕久久| 亚洲夜夜欢A∨一区二区三区| 亚洲国产精品无码AAA片|