Geolocation 地理定位

地理位置(Geolocation)是 HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用。今天这篇文章向大家介绍一下 HTML5 地理位置定位的基本原理及各个浏览器的数据精度情况。

  在访问位置信息前,浏览器都会询问用户是否共享其位置信息,以 Chrome 浏览器为例,如果您允许 Chrome 浏览器与网站共享您的位置,Chrome 浏览器会向 Google 位置服务发送本地网络信息,估计您所在的位置。然后,浏览器会与请求使用您位置的网站共享您的位置。

  HTML5 Geolocation API 使用非常简单,基本调用方式如下: 


1

2

3

4

5

6

7

8

9

10

11

12

if (navigator.geolocation) {

    navigator.geolocation.getCurrentPosition(locationSuccess, locationError,{

        // 指示浏览器获取高精度的位置,默认为false

        enableHighAccuracy: true,

        // 指定获取地理位置的超时时间,默认不限时,单位为毫秒

        timeout: 5000,

        // 最长有效期,在重复获取地理位置时,此参数指定多久再次获取位置。

        maximumAge: 3000

    });

}else{

    alert("Your browser does not support Geolocation!");

}

  locationError为获取位置信息失败的回调函数,可以根据错误类型提示信息:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

locationError: function(error){

    switch(error.code) {

        case error.TIMEOUT:

            showError("A timeout occured! Please try again!");

            break;

        case error.POSITION_UNAVAILABLE:

            showError(‘We can\‘t detect your location. Sorry!‘);

            break;

        case error.PERMISSION_DENIED:

            showError(‘Please allow geolocation access for this to work.‘);

            break;

        case error.UNKNOWN_ERROR:

            showError(‘An unknown error occured!‘);

            break;

    }

}

  locationSuccess为获取位置信息成功的回调函数,返回的数据中包含经纬度等信息,结合Google Map API 即可在地图中显示当前用户的位置信息,如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

locationSuccess: function(position){

    var coords = position.coords;    

    var latlng = new google.maps.LatLng(

        // 维度

        coords.latitude,

        // 精度

        coords.longitude

    );  

    var myOptions = {  

        // 地图放大倍数  

        zoom: 12,  

        // 地图中心设为指定坐标点  

        center: latlng,  

        // 地图类型  

        mapTypeId: google.maps.MapTypeId.ROADMAP  

    };  

    // 创建地图并输出到页面  

    var myMap = new google.maps.Map(  

        document.getElementById("map"),myOptions  

    );  

    // 创建标记  

    var marker = new google.maps.Marker({  

        // 标注指定的经纬度坐标点  

        position: latlng,  

        // 指定用于标注的地图  

        map: myMap

    });

    //创建标注窗口  

    var infowindow = new google.maps.InfoWindow({  

        content:"您在这里<br/>纬度:"+  

            coords.latitude+  

            "<br/>经度:"+coords.longitude  

    });  

    //打开标注窗口  

    infowindow.open(myMap,marker); 

}

  经过测试,Chrome/Firefox/Safari/Opera四个浏览器获取到的位置信息都是一摸一样的,估计都是用的同一个位置服务,数据如下:

  而IE浏览器的和上面几款浏览器获取到的数据不一样,数据如下:

  位置服务用于估计您所在位置的本地网络信息包括:有关可见 WiFi 接入点的信息(包括信号强度)、有关您本地路由器的信息、您计算机的 IP 地址。位置服务的准确度和覆盖范围因位置不同而异。 

  总的来说,在PC的浏览器中 HTML5 的地理位置功能获取的位置精度不够高,如果借助这个 HTML5 特性做一个城市天气预报是绰绰有余,但如果是做一个地图应用,那误差还是太大了。不过,如果是移动设备上的 HTML5 应用,可以通过设置 enableHighAcuracy 参数为 true,调用设备的 GPS 定位来获取高精度的地理位置信息。

转自:http://www.cnblogs.com/lhb25/archive/2012/07/10/html5-geolocation-api-demo.html

时间: 2024-10-09 23:38:01

Geolocation 地理定位的相关文章

HTML5 GeoLocation 地理定位

window.navigator 对象包含有关访问者浏览器的信息,window.navigator 对象在编写时可不使用 window 这个前缀. 浏览器支持 Internet Explorer 9.Firefox.Chrome.Safari 以及 Opera 支持地理定位. 注释:对于拥有 GPS 的设备,比如 iPhone,地理定位更加精确 HTML5 地理定位 html5为window.navigator提供了geolocation属性,用于获取基于浏览器的当前用户地理位置. window

Geolocation地理定位

地理位置(Geolocation)是 HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用.今天这篇文章向大家介绍一下 HTML5 地理位置定位的基本原理及各个浏览器的数据精度情况. 在访问位置信息前,浏览器都会询问用户是否共享其位置信息,以 Chrome 浏览器为例,如果您允许 Chrome 浏览器与网站共享您的位置,Chrome 浏览器会向 Google 位置服务发送本地网络信息,估计您所在的位置.然后,浏览器会与请求使用您位置的网站共享您的位置. H

基于浏览器的HTML5地理定位

地理位置(Geolocation)是 HTML5 的重要特性之一,提供了确定用户位置的功能,借助这个特性能够开发基于位置信息的应用.今天这篇文章向大家介绍一下 HTML5 地理位置定位的基本原理和一个基于浏览器的HTML5地理定位的小demo,获取浏览器经纬度,并用腾讯地图(大家可以选择自己喜欢的地图)显示出来,实现的最终效果如下图所示: 一.检测浏览器是否支持: if (navigator.geolocation) { //console.log("浏览器支持!"); } else

HTML5--关于Geolocalition(地理定位)

* Geolocation(地理定位) * 基本内容 * 地理定位 - 地球的经度和纬度的相交点 * 实现地理定位的方式 * GPS - 美国的,依靠卫星定位 * 北斗定位 - 纯国产,惯性定位技术和卫星定位 * 基站定位 - 移动运营商创建基站(提供信号源) * 基于互联网 - IP地址(PC端和移动端) * 目前很多浏览器都具有定位功能 * HTML5中地理定位 * 地理定位功能并不是属于HTML5专有内容 * HTML5的地理定位技术,由Google公司提供的 * Google Map产品

[Javascript]JS新API标准-地理定位(navigator.geolocation)

在新的API标准中,可以通过navigator.geolocation来获取设备的当前位置,返回一个位置对象,用户可以从这个对象中得到一些经纬度的相关信息. navigator.geolocation的三个方法: 1. getCurrentPosition() 2. watchPosition() 3. clearWatch() getCurrentPosition() 使用方法:navigator.geolocation.getCurrentPosition(successCallback,

JS新API标准 地理定位(navigator.geolocation)

在新的API标准中,可以通过navigator.geolocation来获取设备的当前位置,返回一个位置对象,用户可以从这个对象中得到一些经纬度的相关信息. navigator.geolocation的三个方法: 1. getCurrentPosition()   //当前位置 2. watchPosition()          //监视位置 3. clearWatch()             //清楚监视 1.getCurrentPosition() 使用方法:navigator.ge

JS新API标准 地理定位(navigator.geolocation)/////////zzzzzzzzzzz

在新的API标准中,可以通过navigator.geolocation来获取设备的当前位置,返回一个位置对象,用户可以从这个对象中得到一些经纬度的相关信息. navigator.geolocation的三个方法: 1. getCurrentPosition() 2. watchPosition() 3. clearWatch() getCurrentPosition() 使用方法:navigator.geolocation.getCurrentPosition(successCallback,

js地理定位对象 navigator.geolocation

浏览器信息的存储对象(navigator): 在新的API标准中,可以通过navigator.geolocation来获取设备的当前位置,返回一个位置对象,用户可以从这个对象中得到一些经纬度的相关信息. navigator.geolocation的三个方法: 1. getCurrentPosition() 2. watchPosition() 3. clearWatch() getCurrentPosition() 使用方法:navigator.geolocation.getCurrentPos

HTML5学习笔记 Geolocation(地理定位)

HTML5 Geolocation(地理定位)用于定位用户的位置. 定位用户的位置 html5 Geolocation API用于获得用户的地理位置 鉴于该特性可能低侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. HTML5 -使用地理定位 请使用getCurrentPositon()方法来获得用户的位置 下例是一个简单的地理定位的实例,可返回用户位置的纬度和纬度 直接上代码吧: <script> var x=document.getElementById("demo&q