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地理空间距离算法(图文)的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

h5移动端各种各样的列表的制作方法(五)

HTML5和css3制作一个模态框实例

服务端主动发送数据回客户端在h5里的实现步奏

HTML5 frameset标签的替代方案是什么?frameset标签替代的解决办法

移动端利用HTML5对照片处理的教程实例

如何提取图片的主题色?

关于h5的事件属性详解

HTML5 canvas图像处理的实现代码分享

具体介绍HTML5表单新增属性

iconfont图标引用的方法步骤(代码)

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




打赏

取消

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

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

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

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

评论

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