重组地理点的算法
Algorithm to regroup geographic points
我正在使用地图创建一个应用程序,我必须在上面放置点。问题是当这些点在附近时,用户看不出差异。所以,我需要重新组合积分。
我收到了这样的 JSON:
[{"id": "1", "x": 253, "y": 144},
{"id": "2", "x": 142, "y": 355},
{"id": "3", "x": 175, "y": 330},
{"id": "4", "x": 140, "y": 5},
{"id": "5", "x": 307, "y": 306},
{"id": "6", "x": 233, "y": 304},
{"id": "7", "x": 212, "y": 163},
{"id": "8", "x": 202, "y": 163},
{"id": "9", "x": 204, "y": 171}]
我需要重新组合最大点相差 20px 的点与所有其他点的平均值的坐标。
是这样的 JSON:
[{"id": ["1"], "x": 253, "y": 144},
{"id": ["2"], "x": 142, "y": 355},
{"id": ["3"], "x": 175, "y": 330},
{"id": ["4"], "x": 140, "y": 5},
{"id": ["5"], "x": 307, "y": 306},
{"id": ["6"], "x": 233, "y": 304},
{"id": ["7","8","9"], "x": 206, "y": 165}]
我只需要一个算法来帮助我构建自己的代码。
谢谢你能给我的所有帮助。
欧氏距离是两点之间的最短路径,计算公式为
sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2))
只需从上到下遍历您的点列表,如果任意两点之间的欧几里得距离小于 20,则删除第二个点或将其与第一个点分组,这样您就不会再次处理它。然后,您可以根据需要计算该组的平均位置。
我正在使用地图创建一个应用程序,我必须在上面放置点。问题是当这些点在附近时,用户看不出差异。所以,我需要重新组合积分。
我收到了这样的 JSON:
[{"id": "1", "x": 253, "y": 144},
{"id": "2", "x": 142, "y": 355},
{"id": "3", "x": 175, "y": 330},
{"id": "4", "x": 140, "y": 5},
{"id": "5", "x": 307, "y": 306},
{"id": "6", "x": 233, "y": 304},
{"id": "7", "x": 212, "y": 163},
{"id": "8", "x": 202, "y": 163},
{"id": "9", "x": 204, "y": 171}]
我需要重新组合最大点相差 20px 的点与所有其他点的平均值的坐标。 是这样的 JSON:
[{"id": ["1"], "x": 253, "y": 144},
{"id": ["2"], "x": 142, "y": 355},
{"id": ["3"], "x": 175, "y": 330},
{"id": ["4"], "x": 140, "y": 5},
{"id": ["5"], "x": 307, "y": 306},
{"id": ["6"], "x": 233, "y": 304},
{"id": ["7","8","9"], "x": 206, "y": 165}]
我只需要一个算法来帮助我构建自己的代码。
谢谢你能给我的所有帮助。
欧氏距离是两点之间的最短路径,计算公式为
sqrt(pow(x2 - x1, 2) + pow(y2 - y1, 2))
只需从上到下遍历您的点列表,如果任意两点之间的欧几里得距离小于 20,则删除第二个点或将其与第一个点分组,这样您就不会再次处理它。然后,您可以根据需要计算该组的平均位置。