我与谷歌地图API的工作,并在全球拥有数坐标(标记)。如何获得一英里内的点的标记列表与中央的“A”标记的最好方法?
我认为,第一种方式是计算A点和所有其他点之间的距离和数组进行排序。它的工作原理,但占据N相互作用。
第二种方式将存储的坐标和“块”(城市,州,国家),并重复前面的方法,只是这里面的“块”搜索。它仍然是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的然后你就可以从1英里筛选x值x坐标和相同的Y值,只考虑这些指标的重叠。 (您仍然应该做这点距离检查之后。)
这是有点麻烦,虽然,一个应该是围绕极点,如果使用球面坐标日线小心,但它至少是快。