2012-04-19 165 views
1

我阅读本教程Apple kml viewvwer文章。它帮助我加载kml,但是当我加载图像时。我的文件夹中创建的文件夹名称的文件,并写PNG图像。在KML文件,图像refrence使用。这里是代码阅读kmz文件并在地图上显示图片

self.archive = [ZKDataArchive archiveWithArchivePath:archivePath]; 
[self.archive inflateAll]; 
for (int i =0;i < [self.archive.inflatedFiles count]; i++) { 

    NSDictionary *fileDict = [self.archive.inflatedFiles objectAtIndex:i]; 
    NSData *fileData = [fileDict objectForKey:ZKFileDataKey]; 
    NSString *fileName = [fileDict objectForKey:ZKPathKey]; 
    NSString *ext = [fileName pathExtension]; 

    NSString* fileToSaveTo; 

    if([fileName isEqualToString:@"doc.kml"]) 
    { 

     fileToSaveTo = fileName; 
     NSArray* path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); 
     NSString* documentsDirectory = [path objectAtIndex:0]; 
     NSLog(@"%@",documentsDirectory); 
     [fileData writeToFile:[NSString stringWithFormat:@"%@/%@",documentsDirectory,fileToSaveTo] atomically:YES]; 

    } 
    else{ 
     fileToSaveTo = [fileName substringFromIndex:6]; 
     NSLog(@"%@",fileToSaveTo); 

     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *documentsDirectory = [paths objectAtIndex:0]; 
     // Get documents folder 
     NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"files"]; 
     NSLog(@"%@",documentsDirectory); 
     [fileData writeToFile:[NSString stringWithFormat:@"%@/%@",dataPath,fileToSaveTo] atomically:YES]; 
    } 
} 

,但我不能在地图上看到的影像。图像是安全的文件和kml文件阅读完美...但我想要显示的图像:(

回答

0

我不能评论任何使用kml在iPhone应用程序,但我认为你遇到的问题可能如果你在桌面上查看谷歌地球上的kml/kmz,他们是否都能正常工作?你没有这样说,但我的猜测是否定的,如果是这样,那么它是

我的建议是实际检查kmz文件的引用和结构。kmz文件的一般标准是在文档的根目录中有一个doc.kml文件和所有的资源在'文件'目录中t档案。因此,所有引用应该是相对 like:<href>files\image.png</href>许多生成kml的程序将使用本地工作的绝对引用,但不能在压缩到kmz或其他人查看时使用。