我有两个常数 - gps lalitude和longtitude。我通过HTML5 JS API获得用户位置。 getCurrentPosition()
方法提供coords.accuracy
,显示我的位置准确性。
我需要检查常数和getCurrentPosition()
与gps坐标的距离是否小于10米。
是否有任何库或jQuery插件,或者我必须自己编写它?
答案 0 :(得分:0)
以下代码是我在Google Maps API v3中使用的代码。也许你可以用你的库做类似的事情。 thersineine公式考虑到地球是一个球体,这是我计算距离的最佳选择。 Google API附加了library来执行此操作。
通常你会发现你的库来计算距离,你会想出自己的逻辑。 再次,从这个逻辑中取出你需要的东西,并尝试你找到的库。
orderMarkersByDistance: function (markers) {
var flex = this,
geodesic = [],
arrClosest = [],
to, distance, arrDistances,
map = this.root.gmap3("get");
// loop through markers and calculate their distances from the center
for (var i = 0; i < markers.length; i++) {
to = new google.maps.LatLng(markers[i].lat, markers[i].lng);
distance = google.maps.geometry.spherical.computeDistanceBetween(map.center, to);
geodesic.push([i, distance]);
}
// sort the distances
geodesic.sort(function (a, b) { return a[1] - b[1]; });
// optionally, take the closest distances
arrDistances = geodesic.slice(0, 3);
// return closest markers
$.each(arrDistances, function (idx, item) {
arrClosest.push(markers[item[0]]);
});
return arrClosest;
},