HTML5地理位置定位Geolocation-API及Haversine地理空间距离算法(图文)


当前第2页 返回上一页

而且watchPosiiton会返回一个watchID
我们可以通过clearWatch(warchID)取消监听
类似于取消定时器

1

2

var ID = navigator.geolocation.watchPosition(function(pos){  ...},function(err){  ...},{  ...});

navigator.geolocation.clearWatch(ID);

如果clearWatch不带参数
则清除所有watchPosition

Haversine算法

我们有些时候
可能需要获取两点的距离
比如说订餐APP的获取附近商家
这时我们就可以利用Haversine算法来计算

1

2

3

4

5

6

7

8

9

10

11

12

13

function toRadians(degree) {

  return degree * Math.PI / 180;

}function haversine(latitude1, longitude1, latitude2, longitude2) {

  var R = 6371;  var deltaLatitude = toRadians(latitude2-latitude1); 

  var deltaLongitude = toRadians(longitude2-longitude1);

  latitude1 = toRadians(latitude1);

  latitude2 = toRadians(latitude2); 

  var a = Math.sin(deltaLatitude/2) * Math.sin(deltaLatitude/2) +   

  Math.cos(latitude1) * Math.cos(latitude2) *   

  Math.sin(deltaLongitude/2) * Math.sin(deltaLongitude/2); 

  var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 

  var d = R * c;  return d;

}

传入两点的坐标就可以得到地理空间距离
其中var R = 6371;是地球半径6371km
当然了也存在一些其他算法
在时间和精确度上有所不同

以上就是HTML5地理位置定位Geolocation-API及Haversine地理空间距离算法(图文)的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

HTML5中返回audiotracklist对象的属性audiotracks

HTML5存储方式小结

HTML5如何插入可自动播放的音频(图文)

h5中的定位

HTML5通过postmessage进行跨域通信的方法_HTML5教程技巧

html4与HTML5的区别有哪些

css中display: inline-block的用法解析

HTML5 常用标签汇总详情

HTML5 网络拓扑图应用实例讲解

HTML5与html区别是什么

更多相关阅读请进入《HTML5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...