1
我有一个经纬度地址列表,我想按照距离一个地址最近的距离对它们进行排序。谁能帮忙?按纬度和经度最近的距离对地址列表进行排序
我有一个经纬度地址列表,我想按照距离一个地址最近的距离对它们进行排序。谁能帮忙?按纬度和经度最近的距离对地址列表进行排序
假设你的地址看起来像这样
{
restaurant: 'Moe\'s la Patate'
longitude: 12345,
latitude: -1234
}
,并放置在一个名为阵列地址
var addresses = [{
restaurant: 'Moe\'s la Patate'
longitude: 12345,
latitude: -1234
},{
restaurant: 'Mc Donalds'
longitude: -531,
latitude: 235
}// ...
];
和你的立场是相同的格式(我将使用变量)
你可以做√(a^2 + b^2)calcul
var position = {
longitude: 2231,
latitude: -4211
}
var addressesByDistance = addresses.map(function(data){
var distX = position.longitude - data.longitude;
var distY = position.latitude - data.latitude;
var distance = Math.sqrt(Math.pow(distX, 2) + Math.pow(distY, 2));
return distance;
}).sort();
这并不采取考虑全面了大地,但只有10家餐厅,我想他们都在同一个城市?
不管怎么说,希望这有助于
感谢您的帮助。我使用你的函数来计算距离,并将其作为属性添加到每个元素,然后应用插入排序通过距离属性对它们进行排序。 – PlanetHackers
所以有两个部分在这里,首先获得的距离从你的“一个地址”的每个地址。然后对它们进行排序。哪一部分特别需要帮助?你的列表中有多少个地址?你的代码到目前为止看起来如何? – duncan
我想按最近的第一个显示餐馆列表。可能有10个或更多地址需要排序。这里是我想要使用的链接:[最佳早午餐](http://bestofthebrunch.co.uk/restaurants/swan-at-the-globe/)。 我遵循http://mobiforge.com/design-development/geo-sorting-using-device-geolocation-to-sort-distance的文档,但未能达到结果。 – PlanetHackers
你的代码到目前为止是什么样的? – duncan