Методы GMSMapView устарели в версии 1.6.

Я обновил свое приложение, чтобы использовать версию 1.6 API Карт Google для iOS. Теперь он показывает мне, что три важных метода GMSMapView устарели:

'markers' is deprecated
'polylines' is deprecated
'groundOverlays' is deprecated

Сначала я подумал, что это может быть проблема на моей стороне, потому что в документации Google об этом нет упоминания, но потом я увидел заголовочный файл и заметил, что они на самом деле устарели, но они не указывают альтернативный метод для использования в порядке чтобы добиться того же:

- (NSArray *)markers __GMS_AVAILABLE_BUT_DEPRECATED;
- (NSArray *)groundOverlays __GMS_AVAILABLE_BUT_DEPRECATED;
- (NSArray *)polylines __GMS_AVAILABLE_BUT_DEPRECATED;

Может ли кто-нибудь указать мне, как это сделать, не используя устаревшие методы? Спасибо!

РЕДАКТИРОВАТЬ: Я только что нашел метод, с помощью которого вы можете выполнить [mapView clear], который удалит все маркеры и полилинии с карты. Есть ли способ удалить только все полилинии, не удаляя маркеры?


person gabriellanata    schedule 25.11.2013    source источник


Ответы (1)


Очень странно, что они не упомянули об этом в документах. В исходном коде они упоминают, что уберут его в будущем выпуске:

ПРИМЕЧАНИЕ. В версии 1.2 SDK Google Maps для iOS эти методы устарели. Они могут не появиться в более поздних выпусках SDK. Вместо использования этих методов мы предлагаем вам сохранить свои собственные ссылки на наложения, которые вы добавили в GMSMapView.

Похоже, они перекладывают на нас как разработчиков ответственность за сохранение ссылок на добавленные оверлеи. Я делаю это в своем приложении, создавая NSMutableArray добавленных маркеров. Каждый раз, когда я добавляю маркер на карту, он добавляется в массив.

Я предполагаю, что вы могли бы сделать то же самое с полилиниями и наложениями на землю. Каждый из них представляет собой отдельный класс, поэтому их нетрудно сгруппировать и идентифицировать позже, если вам это нужно.

person Chetan Shenoy    schedule 25.11.2013