Удалить только рестораны из MKMapView

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

Я видел ниже в документации, но это действительно все или ничего?

@property (nonatomic) BOOL showsPointsOfInterest;

Если для этого свойства установлено значение YES, на карте отображаются значки и метки для ресторанов, школ и других соответствующих объектов. Значением по умолчанию для этого свойства является YES.

Например, ниже я хочу показать бензоколонку, но не ресторан.

введите описание изображения здесь

1 ответ

Решение

Невозможно управлять определенным типом точек, которые наносятся на график. Apple может добавить / удалить / изменить определенные типы, которые она отображает в любом будущем обновлении Map Kit. Как вы упомянули, ваш единственный курс действий - это настройка showsPointsOfInterest,

Вы можете использовать стороннюю базу данных мест от Foursquare или Facebook, чтобы получить схожие точки интереса и нанести их на свою карту, однако нет никакой гарантии, что результаты будут соответствовать тем, которые Apple покажет в других случаях.

В IOS 13 у вас есть возможность фильтровать: вот пример, чтобы не отображать элементы на карте

localMap.pointOfInterestFilter = .some(MKPointOfInterestFilter(including: []))

Например, вы можете отфильтровать аэропорты с карты...

localMap.pointOfInterestFilter = .some(MKPointOfInterestFilter(including: [MKPointOfInterestCategory.airport]))

Другой вариант в iOS 13 - включить или исключить определенные достопримечательности:

// Includes airports
localMap.pointOfInterestFilter?.includes(MKPointOfInterestCategory.airport)


// Excludes laundry/laundromats
localMap.pointOfInterestFilter?.excludes(MKPointOfInterestCategory.laundry)
Другие вопросы по тегам