【问题标题】:Preventing two markers in the same place Google Maps SDK iOS防止两个标记在同一个地方Google Maps SDK iOS
【发布时间】:2018-12-13 06:18:18
【问题描述】:
如何防止两个标记被放置在地图上的同一位置?
我正在设置一个 var markerLocations = [CLLocation2D]() 数组,当我正在放置我的新标记时,我想检查该数组并确保没有一个位置与我之前的位置相同放好它。
当使用.contains 时,您似乎只能检查一个值?有没有办法检查纬度和经度是否等于我要检查的位置?
【问题讨论】:
标签:
ios
swift
google-maps
dictionary
【解决方案1】:
您可以尝试将 lat long 转换为一致的字符串表示形式,并将这些表示形式缓存在字典中。
首先,将 lat long 截断为合适的小数位数,然后将其转换为 "lat0.12345long-1.23456" 形式的字符串。然后,对于每个项目将 true 存储在 [String:Bool] 字典中。然后,每次要插入新位置时,从新位置生成适当的键字符串,并检查它是否存在于字典中,然后仅在它不存在时才插入它。这应该适用于大量位置,因为在字典中查找键比检查数组是否包含项目要快得多。