2012-04-19 9 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

iPhoneアプリでのkmlの使用についてはコメントできませんが、あなたの問題はおそらく

Google Earthでデスクトップ上のkml/kmzを見ると、両方とも正しく動作していますか?あなたはそのようには言いませんが、私の推測はノーとなります。

kmzファイルの一般的な標準は、アーカイブのルートにdoc.kmlファイルを置くことですその中の 'files'ディレクトリにあるすべてのリソースtアーカイブ。このため、すべての参照はの相対のようになります。<href>files\image.png</href> kmlを生成するプログラムの多くは、ローカルで動作する絶対参照を使用しますが、kmzに圧縮されたときや他の誰かが見たときには使用できません。

関連する問題