Удалить только рестораны из 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)