Предотвращение двух маркеров в одном месте Google Maps SDK iOS - PullRequest
0 голосов
/ 04 июля 2018

Как я могу предотвратить размещение двух маркеров в одном месте на карте?

Я устанавливаю массив var markerLocations = [CLLocation2D](), и пока я делаю свой новый маркер для размещения, я хочу проверить этот массив и убедиться, что нет места, которое находится в том же месте, что и мое, прежде чем я поместите это.

При использовании .contains кажется, что вы можете проверить только одно значение? Есть ли способ проверить, совпадают ли значения lat и long с местоположением, по которому я пытаюсь проверить?

1 Ответ

0 голосов
/ 04 июля 2018

Вы можете попробовать преобразовать lat long в согласованное строковое представление и кэшировать эти представления в словаре.

Сначала обрежьте длину lat до подходящего числа десятичных разрядов, а затем преобразуйте его в строку вида "lat0.12345long-1.23456". Затем для каждого предмета храните true в [String:Bool] словаре. Затем каждый раз, когда вы хотите вставить новое местоположение, генерируйте соответствующую строку ключа из нового местоположения и проверяйте, существует ли она в словаре, а затем вставляйте ее, только если ее там еще нет. Это должно хорошо работать даже при большом количестве местоположений, поскольку поиск ключей в словарях намного быстрее, чем проверка наличия в массиве элемента.

...