我有一个这样的坐标数组(这只是一个示例):
47.554730,18.963960
47.552670,18.962850
47.552310,18.963400
47.552080,18.963720
47.551870,18.964060
47.551780,18.963840
47.551690,18.963300
47.551540,18.962310
47.551480,18.961990
47.551440,18.961800
我想过滤掉彼此太接近的坐标以减小尺寸。我怎样才能做到这一点?
我有一个想法:
设置一个数字作为公差范围。 循环遍历数组中的每个坐标,检查它们之间的差值是否小于容差范围数,如果是,则删除其中一个坐标。
这行得通吗?如果是,我如何在 Objective-C 中对此进行编码?
最佳答案
您可以使用公差检查,但不应直接在纬度值和经度值之间,而应是纬度和经度表示的地理位置之间的距离(以米为单位)的公差。纬度和经度的性质意味着您无法仅通过查看值来判断两点之间的物理距离。
为此,您可以从纬度/经度对创建 CLLocation
实例,然后使用 distanceFromLocation:
对其进行公差检查。
您需要决定如何选择要保留和丢弃的位置。对此有很多选择,其中许多需要多次循环以确保没有 2 个点彼此靠近。
关于ios - 如何过滤掉太近的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36770620/