Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы MapKit ссылка класса MKOverlayRenderer

Опции
Развертывание Target:

На этой странице
Язык:

MKOverlayRenderer

Наследование


Соответствует


Оператор импорта


Swift

import MapKit

Objective C

@import MapKit;

Доступность


Доступный в iOS 7.0 и позже.

MKOverlayRenderer класс определяет основное поведение, связанное со всеми основанными на карте оверлейными программами. Средство рендеринга наложения рисует визуальное представление объекта наложения — т.е. объект, соответствующий MKOverlay протокол. Этот класс определяет инфраструктуру получения, используемую представлением карты. Подклассы, как ожидают, переопределят drawMapRect:zoomScale:inContext: метод для рисования содержания наложения.

Платформа Набора Карты обеспечивает несколько конкретных экземпляров средств рендеринга наложения. В частности это обеспечивает средства рендеринга для каждого из конкретных объектов наложения. Если Вы хотите нарисовать содержание наложения по-другому, можно использовать одно из этих существующих средств рендеринга или определить собственные подклассы.

Разделение на подклассы примечаний

Можно разделить на подклассы MKOverlayRenderer создать оверлейные программы на основе пользовательских форм, содержания или методов получения. Единственные подклассы метода, как ожидают, переопределят, drawMapRect:zoomScale:inContext: метод. Однако, если Ваш класс содержит содержание, которое может не быть готово к праву заимствования далеко, необходимо также переопределить canDrawMapRect:zoomScale: метод и использование это для создания отчетов, когда класс готов и в состоянии нарисовать.

Представление карты может разместить большие оверлейные программы рядом и распределить рендеринг каждой мозаики для разделения потоков. Поэтому реализация Вашего drawMapRect:zoomScale:inContext: метод должно быть безопасно выполнить от фоновых потоков и от многократных потоков одновременно.

  • init (наложение:) - initWithOverlay: Определяемый инициализатор

    Инициализирует и возвращает средство рендеринга наложения и связывает его с указанным объектом наложения.

    Объявление

    Swift

    init!(overlay overlay: MKOverlay!)

    Objective C

    - (instancetype)initWithOverlay:(id<MKOverlay>)overlay

    Параметры

    overlay

    Объект наложения для использования при рисовании содержания наложения на карте. Этот объект предоставляет данные, должен был нарисовать форму наложения. Средство рендеринга наложения хранит сильную ссылку к этому объекту.

    Возвращаемое значение

    Инициализированный объект средства рендеринга наложения.

    Обсуждение

    Первоначально, средство рендеринга наложения предполагает, что наложение полностью непрозрачно и что это имеет масштабный коэффициент содержания 1,0. Можно изменить эти значения по мере необходимости с помощью alpha и contentScaleFactor свойства.

    Оператор импорта

    Objective C

    @import MapKit;

    Swift

    import MapKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • overlay Свойство

    Объект наложения, содержащий данные для рисования. (только для чтения)

    Объявление

    Swift

    var overlay: MKOverlay! { get }

    Objective C

    @property(nonatomic, readonly) id< MKOverlay > overlay

    Обсуждение

    Объект наложения содержит координату, в которой можно нарисовать наложение и другую информацию, которую предоставляет Ваше приложение.

    Оператор импорта

    Objective C

    @import MapKit;

    Swift

    import MapKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • alpha Свойство

    Сумма прозрачности для применения к наложению.

    Объявление

    Swift

    var alpha: CGFloat

    Objective C

    @property CGFloat alpha

    Обсуждение

    Значение в этом свойстве может быть в диапазоне 0.0 к 1.0, где 0.0 представляет общую прозрачность и 1.0 представляет общую непрозрачность. Значение по умолчанию этого свойства 1.0.

    Оператор импорта

    Objective C

    @import MapKit;

    Swift

    import MapKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • contentScaleFactor Свойство

    Масштабный коэффициент раньше рисовал содержание наложения. (только для чтения)

    Объявление

    Swift

    var contentScaleFactor: CGFloat { get }

    Objective C

    @property(readonly) CGFloat contentScaleFactor

    Обсуждение

    Масштабный коэффициент определяет, как содержание отображается от логического координатного пространства (измеренный в точках) к координатному пространству устройства (измеренный в пикселях). Это значение обычно также 1.0 или 2.0. Более высокие масштабные коэффициенты указывают, что каждая точка представлена больше чем на один пиксель на экране. Например, если масштабный коэффициент 2.0 и прямоугольный размер получения является 50 x 50 точек, размер базовой области составляет 100 x 100 пикселей.

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

    Оператор импорта

    Objective C

    @import MapKit;

    Swift

    import MapKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • Возвращает точку в области получения средства рендеринга наложения, соответствующей указанной точке на карте.

    Объявление

    Swift

    func pointForMapPoint(_ mapPoint: MKMapPoint) -> CGPoint

    Objective C

    - (CGPoint)pointForMapPoint:(MKMapPoint)mapPoint

    Параметры

    mapPoint

    Точка на двумерной проекции карты. Если у Вас есть координатное значение (широта и долгота), можно использовать MKMapPointForCoordinate функционируйте для преобразования той координаты в точку карты.

    Возвращаемое значение

    Точка в области получения наложения, соответствующей точке карты.

    Обсуждение

    Можно вызвать этот метод безопасно от представления drawMapRect:zoomScale:inContext: метод.

    Оператор импорта

    Objective C

    @import MapKit;

    Swift

    import MapKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • Возвращает точку на карте, соответствующей указанной точке в области получения средства рендеринга наложения.

    Объявление

    Swift

    func mapPointForPoint(_ point: CGPoint) -> MKMapPoint

    Objective C

    - (MKMapPoint)mapPointForPoint:(CGPoint)point

    Параметры

    point

    Точка в области получения наложения, которую Вы хотите преобразовать.

    Возвращаемое значение

    Точка на двумерной проекции карты, соответствующей указанной точке.

    Обсуждение

    Можно вызвать этот метод безопасно от представления drawMapRect:zoomScale:inContext: метод.

    Оператор импорта

    Objective C

    @import MapKit;

    Swift

    import MapKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • Возвращает прямоугольник в области получения средства рендеринга наложения, соответствующей указанному прямоугольнику на карте.

    Объявление

    Swift

    func rectForMapRect(_ mapRect: MKMapRect) -> CGRect

    Objective C

    - (CGRect)rectForMapRect:(MKMapRect)mapRect

    Параметры

    mapRect

    Прямоугольник на двумерной проекции карты.

    Возвращаемое значение

    Прямоугольник в области получения наложения, соответствующей прямоугольнику карты.

    Обсуждение

    Можно вызвать этот метод безопасно от представления drawMapRect:zoomScale:inContext: метод.

    Оператор импорта

    Objective C

    @import MapKit;

    Swift

    import MapKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • Возвращает прямоугольник на карте, соответствующей указанному прямоугольнику в области получения средства рендеринга наложения.

    Объявление

    Swift

    func mapRectForRect(_ rect: CGRect) -> MKMapRect

    Objective C

    - (MKMapRect)mapRectForRect:(CGRect)rect

    Параметры

    rect

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

    Возвращаемое значение

    Прямоугольник на двумерной проекции карты, соответствующей указанному прямоугольнику.

    Обсуждение

    Можно вызвать этот метод безопасно от представления drawMapRect:zoomScale:inContext: метод.

    Оператор импорта

    Objective C

    @import MapKit;

    Swift

    import MapKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • Возвращает булево значение, указывающее, готово ли представление наложения нарисовать свое содержание.

    Объявление

    Swift

    func canDrawMapRect(_ mapRect: MKMapRect, zoomScale zoomScale: MKZoomScale) -> Bool

    Objective C

    - (BOOL)canDrawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale

    Параметры

    mapRect

    Прямоугольник карты, который должен быть обновлен.

    zoomScale

    Текущий масштабный коэффициент применился к карте.

    Возвращаемое значение

    YEStrue если это средство рендеринга наложения готово нарисовать свое содержание на карте или NOfalse если это не.

    Обсуждение

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

    Если Вы возвращаетесь NOfalse от этого метода Ваше приложение ответственно за вызов setNeedsDisplayInMapRect:zoomScale: метод, когда средство рендеринга наложения впоследствии становится готовым нарисовать его содержание.

    Реализация по умолчанию этого метода возвраты YEStrue.

    Оператор импорта

    Objective C

    @import MapKit;

    Swift

    import MapKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • Рисует содержание наложения в указанном расположении на карте.

    Объявление

    Swift

    func drawMapRect(_ mapRect: MKMapRect, zoomScale zoomScale: MKZoomScale, inContext context: CGContext!)

    Objective C

    - (void)drawMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale inContext:(CGContextRef)context

    Параметры

    mapRect

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

    zoomScale

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

    context

    Графический контекст для использования для рисования содержания наложения.

    Обсуждение

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

    При определении, где нарисовать содержание, сделайте начальные вычисления относительно самой карты. Другими словами, вычислите позицию и размер любого содержания наложения, использующего точки карты и прямоугольники карты, преобразуйте те значения в постоянного клиента CGPoint и CGRect типы с помощью методов этого класса, и затем передают преобразованные точки любым примитивам получения.

    Рекомендуется использовать Базовую Графику для рисования любого содержания для оверлейных программ. Если Вы принимаете решение нарисовать использование классы UIKit и методы вместо этого, необходимо продвинуть указанный графический контекст на штабель контекста (использующий UIGraphicsPushContext функция) прежде, чем сделать любые звонки получения. Когда Вы сделаны, таща, необходимо так же вытолкать графический контекст от штабеля с помощью UIGraphicsPopContext. Наложение, рисующее обычно, происходит на фоновых потоках для улучшения производительности, не управляйте представлениями UIKit или другими объектами, которыми можно только управлять на основном потоке приложения.

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

    Оператор импорта

    Objective C

    @import MapKit;

    Swift

    import MapKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • Лишает законной силы все содержание наложения для всех масштабов изменения масштаба.

    Объявление

    Swift

    func setNeedsDisplay()

    Objective C

    - (void)setNeedsDisplay

    Обсуждение

    Этот метод заставляет все содержание наложения быть перерисованным во время следующего цикла обновления. Этот метод лишает законной силы наложение независимо от текущего масштаба изменения масштаба, связанного с картой.

    Оператор импорта

    Objective C

    @import MapKit;

    Swift

    import MapKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • Лишает законной силы указанную часть наложения во всех масштабах изменения масштаба

    Объявление

    Swift

    func setNeedsDisplayInMapRect(_ mapRect: MKMapRect)

    Objective C

    - (void)setNeedsDisplayInMapRect:(MKMapRect)mapRect

    Параметры

    mapRect

    Часть наложения для обновления. Укажите, что это значение с помощью карты координирует.

    Обсуждение

    Отмечание прямоугольника как недопустимые причины, что часть наложения, которое будет перерисовано во время следующего цикла обновления. Этот метод лишает законной силы наложение независимо от текущего масштаба изменения масштаба, связанного с картой.

    Оператор импорта

    Objective C

    @import MapKit;

    Swift

    import MapKit

    Доступность

    Доступный в iOS 7.0 и позже.

  • Лишает законной силы указанную часть наложения, но только в указанном масштабе изменения масштаба.

    Объявление

    Swift

    func setNeedsDisplayInMapRect(_ mapRect: MKMapRect, zoomScale zoomScale: MKZoomScale)

    Objective C

    - (void)setNeedsDisplayInMapRect:(MKMapRect)mapRect zoomScale:(MKZoomScale)zoomScale

    Параметры

    mapRect

    Часть наложения для обновления. Укажите, что это значение с помощью карты координирует.

    zoomScale

    Масштаб изменения масштаба, для которого Вы хотите лишить законной силы наложение.

    Обсуждение

    Отмечание прямоугольника как недопустимые причины, что часть наложения, которое будет перерисовано во время следующего цикла обновления. Этот метод лишает законной силы наложение только в указанном масштабе изменения масштаба.

    Оператор импорта

    Objective C

    @import MapKit;

    Swift

    import MapKit

    Доступность

    Доступный в iOS 7.0 и позже.