Добавить KML или URL-карту в приложение iPhone

Я пытаюсь наложить пользовательский чертеж дизайна дороги (kml или dgn) на карту в моем приложении iPhone с помощью примера Apple KMLViewer. Я могу сказать, что он читает KML, потому что карта масштабируется до границ чертежа, а пара фрагментов чертежа отображается так, как они должны быть. Большая зависание здесь большая часть рисунка не отображается вообще. Приложенный снимок экрана показывает только две строки отображаемого чертежа.

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

Кроме того, просмотрите журнал отладки здесь:

2013-07-25 23: 07: 06.597 KMLViewer [2407: c07] Ожидается, что в окнах приложений будет контроллер корневого представления в конце запуска приложения. Jul 25 23:07:06 Michaels-iMac.local KMLViewer [2407]: ImageIO : CGImageReadSessionGetCachedImageBlockData *** CGImageReadSessionGetCachedImageBlockData: readSession [0x8434040] имеет плохой readRef [0x8463610]

Я провел много исследований, и, похоже, это горячая тема. Могу ли я адаптировать KMLViewer к моему KML или есть лучший метод Apple? Я бы очень признателен за некоторые советы. Чем точнее, тем лучше. Спасибо заранее за ваше время.

2 Solutions collect form web for “Добавить KML или URL-карту в приложение iPhone”

Вы можете использовать что-то вроде MapBox iOS SDK для отображения и Simple KML для синтаксического анализа в родные типы Cocoa. Как указано выше, вы хотите использовать аннотации и их представления / слои, предоставленные делегатом представления карты.

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

Я только читал эту тему, так как у меня никогда не было необходимости рисовать собственные маршруты внутри MKMapView, но …

MKPolyLine, класс MapKit и метод протокола mapView:(MKMapView *) viewForOverlay:(id < MKOverlay >) станет способом решения.

Документация Apple на MKPolyLine и mapView: viewForOverlay:

Пример проекта

Быстрый пример, демонстрирующий общую ошибку при обучении рисованию MKPolyLines

редактировать

23:07:06.597 KMLViewer[2407:c07] Application windows are expected to have a root view controller at the end of application launch

потому что вы явно не сказали Xcode, что контроллер просмотра является начальным контроллером представления.

Вам нужно либо заменить [window addSubview:[someController view]]; в

 [self.window setRootViewController:someController]; 

в applicationDidFinishLaunchingWithOptions:

или убедитесь, что ваш main.m указывает надлежащего делегата

 retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate"); 

или (для раскадровки) установите раскадровку в качестве основной раскадровки в настройках сборки

  • Как наложить изображение на карту IOS с помощью быстрой
  • MKDirectionsRequest между двумя заданными точками на карте
  • Добавить пользовательское свойство в MKAnnotation
  • MKMapSnapshotter использует невероятное количество CPU и RAM
  • Как настроить пузырь вызова для MKAnnotationView?
  • Как вызвать сегмент из кнопки раскрытия информации на карточке?
  • Наложение MKMapView
  • Наложение изображений MonoTouch Mapkit
  • Проблемы с производительностью с MapKit на iOS6
  • MapKit в iOS 6 - Как найти места поблизости ...?
  • Вычисление плиток для отображения в MapRect при «увеличенном увеличении» за пределами набора оверлея
  • Interesting Posts

    Приложение, перенесенное в iOS 7, теперь запрашивает доступ к микрофону

    Как я могу извлечь параметры из нестандартного объекта URL NSString?

    UINavigationItem titleView анимация

    Приложение Xamarin iOS «не содержит правильного права на бета-версию», несмотря на то, что флаг бета-права является частью профиля предоставления

    В чем разница между AnyObject и UIbutton как отправителем?

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

    Как получить данные из блоков с помощью NSURLSession?

    Запрос Sqlite для поиска слова поиска со смежными словами

    Запретить дублирование при импорте RSS-канала в базовые данные

    iOS: передача пользовательского NSURL в NSURLProtocol

    Уменьшить размер окна iPhone Simulator?

    iOS Segue – Когда отображаются контрольные экземпляры viewControllers

    Шифрование AES256 имеет разный результат между node.js и object-c

    Скруббер (UISlider) в AVPlayer?

    Открыть растровый просмотр вручную

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.