1

我阅读了本教程Apple kml viewvwer文章。它可以帮助我加载 kml,但是当我也加载图像时。我创建文件夹名称文件并在文件夹中写入png图像..在kml文件中,使用图像参考..这是代码

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 文件读取完美......但我也想显示图像:(

4

1 回答 1

0

我无法评论在 iPhone 应用程序中对 kml 的任何使用,但我认为您遇到的问题很可能在此之前发生。

如果您在桌面上查看 Google 地球中的 kml/kmz,它们是否都能正常工作?你没有这样说,但我的猜测是没有。如果是这样,那么这是我无法帮助的问题。

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

于 2012-04-20T19:33:34.850 回答