13.2 获取当前位置
可以通过navigator.geolocation 的getCurrentPosition 方法来获取用户的信息,示例代码如下:
navigator.geolocation.getCurrentPosition getPositionSuccess , getPositionError ;
在以上代码中,调用了getCurrentPosition 方法,并为其传递了两个参数,该方法可以接受3 个参数,前两个参数是函数,*后一个是对象:第1 个参数是成功获取位置信息的回调函数,是必要参数;第2 个参数用于捕获获取位置信息异常的情况的处理回调函数,第3 个参数是相关的配置项。
当浏览器成功获取到用户的位置信息时,getCurrentPosition 的**个函数类型的参数将被调用,将对应的position 对象传入到调用的函数中,这个对象中包含了浏览器返回的具体数据,这非常重要。
function getPositionSuccess position {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
document.write "您所在的位置:经度" + lat + ",纬度" + lng ;
}
其中,position 对象包含了用户的地理位置信息,该对象的coords 子对象包含了用户所在的纬度和经度信息,通过position.coords.latitude 可以访问纬度信息,position.coords.longitude 可访问经度信息,用户的位置信息越精确,这两个数字后面的小数点越长。此外,在Firefox 中,position 对象下还附带有另一个address 对象,这个对象包含这个经纬度下的国家名,城市名甚至街道名,示例代码如下:
01 function getPositionSuccessposition {
02 var lat = position.coords.latitude;
03 var lng = position.coords.longitude;
04 alert"您所在的位置:经度" + lat + ",纬度" + lng;
05 if typeof position.address !== "undefined" {
06 var country = position.address.country;
07 var province = position.address.region;
08 var city = position.address.city;
09 alert'' 您位于'' + country + province + ''省'' + city + ''市'';
10 }
11 }
本章源代码提供一个完整的示例:
01
02
03 点击这个按钮,获得您的坐标:
04 试一下
05
06
07 var x = document.getElementById"demo";
08 function getLocation {
09 if navigator.geolocation {
10 navigator.geolocation.getCurrentPositionshowPosition;
11 } else {
12 x.innerHTML = "Geolocation is not supported by this browser.";
13 }
14 }
15 function showPositionposition {
16 var a = "Latitude: " + position.coords.latitude + "
Longitude: " + position.coords.
longitude;
17 x.innerHTML = a;
18 console.loga
19 }
20
|