获取区域内的所有坐标

时间:2019-02-08 01:59:27

标签: javascript google-maps data-structures coordinates closest

我正在使用Google Maps API,并且在世界范围内有一些坐标(标记)。如何获得一英里内点的标记列表的最佳方法,该标记列表的中心是“ A”标记?

我认为的第一种方法是计算点A与所有其他点之间的距离,并对数组进行排序。它可以工作,但需要进行 n 个交互。

第二种方法将存储坐标和一个“块”(城市,州,国家/地区),然后重复前面的方法,仅在此“块”内部搜索。它仍然是 n ,但是现在'n'较小。

存储数据并对其进行处理的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以存储几个有序的索引和坐标列表,每个基于x,y或z或经度或纬度信息。

例如:

Points = {(2,3), (6,4), (7,1), (1, 9)};

xList = {1, 2, 6, 7};
xIndexList = {3, 0, 1, 2};

yList = {1, 3, 4, 9};
yIndexList = {2, 0, 1, 3};

然后,您可以过滤距A的x坐标1英里以内的x值,并过滤y值的x值,并仅考虑这些索引的重叠部分。 (之后,您仍然应该对这些点进行距离检查。)

虽然有点麻烦,但是如果使用球坐标,则应注意极点和日期线,但这至少很快。