I've got a PHP page that composes a KMZ file for download. This KMZ contains a KML with a JPEG Overlay.
I assume that this file is correct because the KML can be opened by Google Earth without problem. This is the snippet that I use to generate KMZ from KML and JPEG Overlay:
$zip = new ZipArchive();
$tmp_file = tempnam('.','');
$zip->open($tmp_file, ZipArchive::CREATE);
$download_file = file_get_contents($kml);
$zip->addFromString(basename($kml),$download_file);
$download_file = file_get_contents($jpeg);
$zip->addFromString("files/".basename($jpeg),$download_file);
$zip->close();
header('Content-disposition: attachment; filename=test.kmz');
header('Content-Type: application/vnd.google-earth.kmz .kmz');
readfile($tmp_file);
The problem is that both in OS X and Windows the KMZ cannot be opened in Google Earth.
But if I unzip it in Windows, the resulting KML+JPEG are opened without problems.
In OSX, I can't unzip the KMZ because it results corrupted. I think that the problem could be in header or mime type.
Does someone have experience with this?
KMZ has a standard format which compresses doc.kml file. All the kml string should be written in doc.kml file.In PHP, I would do
$zip->addFromString("doc.kml", $kmlString);