使用html5测量特定位置和当前位置之间的距离

Posted

技术标签:

【中文标题】使用html5测量特定位置和当前位置之间的距离【英文标题】:Measuring distance between specific and current position with html5 【发布时间】:2011-05-18 15:05:36 【问题描述】:

正如标题所示。知道如何实现吗?

一直在查看http://www.html5archive.com/2010/12/04/geolocation-api-example-distance-tracking/ 并尝试修改该代码,但没有成功。

最初不需要自动刷新。

但基本功能应该是获取用户位置并告诉用户与特定点之间的距离。

【问题讨论】:

【参考方案1】:

密钥代码位于this page 上,与您指定的代码相关联。我已将其转换为以下函数:

/** Extend Number object with method to convert numeric degrees to radians */
if (typeof Number.prototype.toRadians == 'undefined') 
    Number.prototype.toRadians = function()  return this * Math.PI / 180; ;


function getDistance(lat1,lon1,lat2,lon2) 
    var R = 6371; // km
    var dLat = (lat2-lat1).toRadians();
    var dLon = (lon2-lon1).toRadians(); 
    var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
            Math.cos(lat1.toRadians()) * Math.cos(lat2.toRadians()) * 
            Math.sin(dLon/2) * Math.sin(dLon/2); 
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
    return R * c;

您需要将特定的 lat 和 lon 作为前两个参数传递给它,并将当前的 lat 和 lon 作为后两个参数。

【讨论】:

并从页面底部获取 toRad() 函数,否则它工作正常!

以上是关于使用html5测量特定位置和当前位置之间的距离的主要内容,如果未能解决你的问题,请参考以下文章

“我当前的地理位置”和其他坐标之间的计算

是否可以获得当前位置与街道、大道或区域之间的距离?

在android中获取当前位置和选定地点之间的距离

在 Google Maps v2 上计算当前位置和标记之间的距离

距离回调的 HTML5 地理位置

如何获取当前位置和下一个当前位置之间的距离