Rol*_*ndo 1 javascript leaflet
我有一个包含50个项目的列表:
var mylocations = [{'id':'A', 'loc':[-21,2]},...,];
Run Code Online (Sandbox Code Playgroud)
如何在传单或JavaScript中最有效地使其成为如果我接受特定位置的输入[<longitude>,<latitude>]
,半径(例如50英里)......我可以获得"mylocations"
该圈内的所有内容吗?
使用外部库很好.
Leaflet的L.LatLng
对象包括一个distanceTo
方法:
返回使用Haversine公式计算的给定LatLng的距离(以米为单位).
http://leafletjs.com/reference.html#latlng-distanceto
var inRange = [], latlng_a = new L.LatLng(0, 0), latlng_b;
locations.forEach(function (location) {
latlng_b_ = new L.LatLng(location.pos[0], location.pos[1]);
if (latlng_a.distanceTo(latlng_b) < 80.4672) {
inRange.push(location);
}
});
Run Code Online (Sandbox Code Playgroud)