从零开始学google地图API(5)--粗略获取当前位置
之前研究過一段時間的定位
當時沒學過html,javascript,也不懂背后的原理
只知道用一些軟件,比如說trape等等
現在學了google地圖后,可以借助 navigator.geolocation來獲取位置信息并呈現在google地圖上
下面先做一個簡單的測試,首先是低精度請求
在這種情況下navigator.geolocation基于IP定位或 Wi-Fi 定位,這里我開了代理…所以顯示我在臺灣
重點關注函數部分
function initialize() {function success(position) {var latitude = position.coords.latitude;var longitude = position.coords.longitude;var yourmap = {center:new google.maps.LatLng(latitude ,longitude),zoom:11,mapTypeId:google.maps.MapTypeId.ROADMAP};var map=new google.maps.Map(document.getElementById("googleMap"), yourmap); var marker=new google.maps.Marker({position:new google.maps.LatLng(latitude ,longitude),}); marker.setMap(map); var infowindow = new google.maps.InfoWindow({content:"我在這里!"}); infowindow.open(map,marker);}; function error() {alert('地理位置不可用');}; if ("geolocation" in navigator) {navigator.geolocation.getCurrentPosition(success, error); } else{ alert('地理位置不可用'); } };sucess是我們主要的獲取位置的函數,傳入的參數是位置信息
function success(position) {var latitude = position.coords.latitude;//保留精度和緯度var longitude = position.coords.longitude;var yourmap = {center:new google.maps.LatLng(latitude ,longitude),zoom:11,mapTypeId:google.maps.MapTypeId.ROADMAP};//根據我們獲取到的地理位置確定地圖中心var map=new google.maps.Map(document.getElementById("googleMap"), yourmap);//老熟人了..生成地圖 var marker=new google.maps.Marker({position:new google.maps.LatLng(latitude ,longitude)});//生成我們的標記,位置是在返回的定位 marker.setMap(map);//老熟人 var infowindow = new google.maps.InfoWindow({content:"我在這里!"});//消息窗口,內容是我在這里 infowindow.open(map,marker);//長在上面};好像也沒那么復雜
接下來是個返回結果失敗的函數處理
接下來這個就比較關鍵了,是我們獲取地理位置的原函數
首先是個 if的判斷語句
如果地理信息存在,我們將執行查詢的函數,否則返回不可用
這個函數是geolocation里面的精髓
navigator.geolocation.getCurrentPosition(success, error);獲取用戶當前定位位置
異步地請求獲取用戶位置,并查詢定位硬件來獲取最新信息。當定位被確定后,定義的第一個回調函數(success)就會被執行。您可以選擇性地提供第二個回調函數,當有錯誤時會被執行(錯誤處理函數)。第三個參數也是可選的,您可以通過該對象參數設定最長可接受的定位返回時間、等待請求的時間和是否獲取高精度定位
默認情況下,getCurrentPosition() 會盡快返回一個低精度結果,這在您不關心準確度只關心快速獲取結果的情況下很有用。有 GPS 的設備可能需要一分鐘或更久來獲取 GPS 定位,在這種情況下 getCurrentPosition() 會返回低精度數據(基于 IP 的定位或 Wi-Fi 定位),就是我們這次測試基于的就是ip定位
所有的函數都在initliaze里面定義好,然后通過一個 google.maps.event.addDomListener(window, ‘load’, initialize);在初始化的時候調用,整體上來說思路還是比較清晰的,希望大家可以喜歡
忘記說了…現在獲取地理信息一定要先針得用戶的同意,比如說在firefox里會彈出,是否允許獲取當前位置信息,只有確定了才會get到,當然別人同不同意就看你的本事啦
總結
以上是生活随笔為你收集整理的从零开始学google地图API(5)--粗略获取当前位置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国际结算重点完整版
- 下一篇: 认识更多格式,读懂电影下载“黑话”