【发布时间】:2018-05-26 00:06:09
【问题描述】:
我有一个这样的位置坐标数组
let coodinatesArray: [CLLocationCoordinate2D] = [
CLLocationCoordinate2DMake(-37.986866915266461, 145.0646907496548),
CLLocationCoordinate2DMake(-30.082868871929833, 132.65902204771416),
CLLocationCoordinate2DMake(-21.493671405743246, 120.25335334577362),
CLLocationCoordinate2DMake(-20.311181400000002, 118.58011809999996),
CLLocationCoordinate2DMake(-20.311183981008153, 118.58011757850542),
CLLocationCoordinate2DMake(-8.3154534852154622, 119.32445770062185),
CLLocationCoordinate2DMake(4.0574731310941274, 120.06879782273836),
CLLocationCoordinate2DMake(16.244430153007979, 120.68908125783528),
CLLocationCoordinate2DMake(27.722556142642798, 121.4334213799517),
CLLocationCoordinate2DMake(37.513067999999976, 122.12041999999997)
]
我找到了一些答案1、2,但我无法使用它,因为我的数组不是Equatable。是否可以在数组中使用 filter 快速删除它?
【问题讨论】:
-
此列表中的所有位置均不重复。您希望它们有多接近才被视为“重复”? (双精度比 GPS 实际提供的精度高得多。)只是将
CLLocationCoordinate2D设置为Equatable掩盖了这一事实,使许多“相等”的坐标看起来不同。 -
使用
filter的要求太严格了。