我阅读了这篇教程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文件读取完美...但我也想显示图像:(
答案 0 :(得分:0)
我无法评论在iPhone应用程序中使用kml,但我认为您可能遇到的问题甚至可能在此之前发生。
如果您在桌面上查看Google地球中的kml / kmz,它们是否都能正常工作?你没有这样说,但我的猜测是否定的。如果确实如此,那么这是我无法帮助的问题。
我的建议是实际检查kmz文件引用和结构。 kmz文件的一般标准是在归档的根目录中包含doc.kml文件,并在该归档中的“files”目录中包含所有资源。因此,所有引用都应该是 relative ,如:<href>files\image.png</href>
许多生成kml的程序将使用本地工作的绝对引用,但不能在压缩到kmz或其他人查看时使用。