获取地理位置及计算距离
2016-03-09 18:16
393 查看
获取地理位置及计算距离
function loadSupport(){ //支持检测 if(navigator.geolocation){ navigator.geolocation.getCurrentPosition(updataPosition,showError); }else{ alert("对不起,浏览器不支持"); document.innerHTML = "对不起,浏览器不支持" } } function updataPosition(position){ var latitudeP = position.coords.latitude, longitudeP = position.coords.longitude, accuracyP = position.coords.accuracy, altitudeP = position.coords.altitude, altitudeAccuracyP = position.coords.altitudeAccuracy, speedP = position.coords.speed; var distanceP = getDistance(latitudeP,longitudeP,31.22, 121.48); } function showError(error){ switch(error){ case error.PERMISSION_DENIED: document.innerHTML = "用户拒绝方位地理位置" break; case error.POSITION_UNAVAILABLE: document.innerHTML = "地理位置信息无法获取" break; case error.TIMEOUT: document.innerHTML = "获取位置时间超时" break; case error.UNKNOWN_ERROR: document.innerHTML = "未知错误" break; } } function rad(d){ return d * Math.PI / 180; } function getDistance(lat1,lng1,lat2,lng2){ var earth_radius = 6378.137 //单位为公里 var radlat1 = rad(lat1); var radlng1 = rad(lng1); var radlat2 = rad(lat2); var radlng2 = rad(lng2); var a = radlat1 - radlat2; var b = radlng1 - radlng2; var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + Math.cos(radlat1)*Math.cos(radlat2)*Math.pow(Math.sin(b/2),2))); s = s * earth_radius; s = Math.round(s); return s; }
相关文章推荐
- 横竖屏检测
- 代码整理-AppDelegate 中
- VS2015 插件
- eclipse快速代码整理技巧
- 实用的keil5代码整理小技巧
- Shiro学习--与SpringMVC整合(数据库,Shiro注解和Shiro标签)
- 一起看代码来玩玩QT之24 AudioPlayer
- php-fpm – 启动参数及重要配置详解
- C++ 总结
- 一起看代码来玩玩QT之23 audioRecord
- Eclipse 安装反编译插件jadClipse(转)
- Struts2的简单认识
- 一起看代码来玩玩QT之22 VideoPlayer (linux 下 )
- java学习之自定义异常
- 深入解析设计模式中的适配器模式在C++中的运用
- java中类序列化与反序列化的实现
- C++ MPICH
- 2016蓝桥杯假期任务之《核桃的数量 》
- 在eclipse中配置opencv开发环境