获取区域内的所有坐标

Get all coordinates inside an area

我正在使用 google 地图 API 并且在世界范围内有一些坐标(标记)。如何获得一英里内点的标记列表,中心有 'A' 标记?

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

第二种方式是存储坐标和一个'chunk'(城市,州,国家),重复前面的方法,只在这个"chunk"里面搜索。它仍然是 n,但现在 'n' 变小了。

存储和处理数据的最佳方式是什么?

您可以存储多个有序的索引和坐标列表,每个都基于 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值,并且只考虑这些索引的重叠。 (之后您仍然应该对这些点进行距离检查。)

虽然有点笨重,如果使用球坐标,应该注意两极和日期变更线,但至少速度很快。