我有一个页面可以在地图中加载很多标记(Google地图)。
单击时标记打开InfoWindows,其中包含“上一个”和“下一个”链接,用户可以使用这些链接来导航标记。现在我没有使用任何特定的顺序,当下一个/ prev标记太远时,地图会移动到整个地方。
我想要做的是以某种方式使用坐标,查询已经返回按邻近度排序的结果(lat和long的某种组合),以便当用户从一个移动时,地图移动“更少”标记到下一个。
我可能有也可能没有中心参考点来计算距离。我需要一个吗?
编辑(更多信息): 想象一下,我有一个查询,如:
select id, name, lat, long from whatever;
我希望有以下几点:
select id, name, somecalc(lat, long) as coord from whatever order by coord;
因此,当我在代码中处理此查询并生成标记时,每个“上一个”和“下一个”链接(我构建为链接列表)都会尽可能地使用最接近它们的标记。我需要的是上面的somecalc
。
答案 0 :(得分:0)
好老毕达哥拉斯是你的朋友:我们说我们从coords开始(start_lat,start_long)。例如,这可能是随机的第一个结果。如果您想按照距离坐标来订购结果,只需
SELECT
id, Name,
SQRT(POW(start_lat - lat, 2) + POW(start_long - Long, 2)) AS distance
FROM
whatever
ORDER BY
distance