ios - 如何过滤掉太近的坐标?

标签 ios objective-c arrays coordinates

我有一个这样的坐标数组(这只是一个示例):

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/

相关文章:

ios - 在 Swift 2 中剪切数组元素

ios - 核心数据子类不会自动生成

iOS Cocoa NSArrayI 长度] : unrecognized selector sent to instance

objective-c - 来自 NSCharacterSet 的 NSArray

java - 返回数组中整数的第一个数字

c - C 字符数组中的奇怪之处

ios - linkedin 应用程序的自定义 URL 链接

ios - 有两个相同模型版本时的核心数据迁移

iOS——在启动图像后立即将初始 View 设置为广告 x 秒数是否可以接受?

ios - cancelLocalNotification 不起作用