Как работать с файлами KMZ в Apple MapKit - PullRequest
2 голосов
/ 14 мая 2011

Я пытаюсь вытянуть некоторые файлы KMZ через сеть и наложить их на Google Maps.Я посмотрел на пример Apple kmlParser, который очень близок к тому, что я хочу сделать, однако в его текущей форме он может анализировать только файлы KML.Однако большинство RSS-каналов и данных Google в сети, по-видимому, представлены в формате KMZ (я считаю, что это версия KML-файлов в формате ZIP).Можно ли распаковать файлы KMZ программным способом в Xcode?

- (void)viewDidLoad

{[super viewDidLoad];

// Locate the path to the route.kml file in the application's bundle
// 
//NSURL *path = @"http://earthquake.usgs.gov/earthquakes/catalogs/eqs7day-age.kmz";
//NSURL *url = [[NSURL alloc] initWithString:@"http://earthquake.usgs.gov/earthquakes/catalogs/eqs7day-age.kmz"];
//kml = [[KMLParser parseKMLAtURL:url] retain];    // and parse it with the KMLParser.
NSString *path = [[NSBundle mainBundle] pathForResource:@"doc" ofType:@"kml"];
kml = [[KMLParser parseKMLAtPath:path] retain];    // and parse it with the KMLParser.


// Add all of the MKOverlay objects parsed from the KML file to the map.
NSArray *overlays = [kml overlays];
[map addOverlays:overlays];

В приведенном выше фрагменте кода я также пытался использовать метод NSURL(закомментированные строки), но это не работает.Я должен вручную загрузить файл KMZ, разархивировать его, а затем передать его в анализатор KML, и в идеале я хотел бы сделать это в самой программе.

Буду признателен за любую помощь или руководство о том, как решить эту проблему.проблема.

Софи

Ответы [ 2 ]

3 голосов
/ 16 мая 2013

эй, я хотел бы порекомендовать KML Viewer,

просто скачайте проект и там все найдете

ссылка: KML Viewer

я знаю, что это поздно, но это для тех, кто хочет справиться :)

1 голос
/ 16 мая 2011

Вы правы, что файлы KMZ просто упакованы в файлы KML.Соответствующая часть документации: здесь .

Пример Apple KML очень прост.Если вы хотите более полнофункциональный парсер, я бы порекомендовал libKML .Он полностью поддерживает стандарт KML и обрабатывает файлы KML и KMZ.Единственная загвоздка в том, что она написана на C ++ и использует навязчивые указатели, которые могут быть немного болезненными в Obj-C.

Если вы действительно хотите написать свой собственный анализатор, и вам просто нужен способ распаковать файлы, ZipKit должно работать на вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...