Google earth上で統計データを可視化して見る
<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.2"> <Document> <name>site list</name> <description>Nuisance sites.</description> <Style id="defaultStyles"> <LineStyle> <color>cc000000</color> </LineStyle> <PolyStyle> <outline>0</outline> </PolyStyle> </Style> <Placemark> <name><都市名></name> <styleUrl>#defaultStyles</styleUrl> <Style> <PolyStyle> <color>dc0155ff</color> </PolyStyle> </Style> <Polygon> <extrude>1</extrude> <tessellate>1</tessellate> <altitudeMode>absolute</altitudeMode> <outerBoundaryIs> <LinearRing> <coordinates> <座標列> </coordinates> </LinearRing> </outerBoundaryIs> </Polygon> </Placemark> ・ ・ ・ ・ ・ ・ </Document> </kml>
<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://earth.google.com/kml/2.2"> <Document> <name>site list</name> <description>Nuisance sites.</description> <Style id="defaultStyles"> <IconStyle> <color>ff0078ff</color> <Icon> <href>circle.png</href> </Icon> </IconStyle> </Style> <Placemark> <name><名前></name> <LookAt> <longitude><経度></longitude> <latitude><緯度></latitude> <altitude>0</altitude> <range>1</range> <tilt>0</tilt> <heading>0</heading> </LookAt> <styleUrl>#defaultStyles</styleUrl> <Style> <IconStyle> <scale><スケール></scale> </IconStyle> </Style> <Point> <coordinates><経度,緯度>,0</coordinates> </Point> </Placemark> ・ ・ ・ ・ ・ ・ </Document> </kml>
<?php $zip = new ZipArchive(); // KMZファイルをオープン $res = $zip->open('./xxx.kmz', ZipArchive::CREATE); // KMZファイルのオープンに成功した場合 if ($res === true) { // 圧縮するファイルを指定する $zip->addFile('yyy.kml'); $zip->addFile('zzz.png');//円グラフの場合 // KMZファイルをクローズ $zip->close(); } ?>
<?php //CSV読み込み setlocale(LC_ALL, 'ja_JP.UTF-8'); $file = '2012Jleager_47todohuken.csv'; $data = file_get_contents($file); $data = mb_convert_encoding($data, 'UTF-8', 'sjis-win'); $temp = tmpfile(); $csv = array(); fwrite($temp, $data); rewind($temp); while (($data = fgetcsv($temp, 0, ",")) !== FALSE) { $csv[] = $data; } fclose($temp); $pre_script = ''; $pre_script .= '<?xml version="1.0" encoding="UTF-8"?>'; $pre_script .= '<kml xmlns="http://earth.google.com/kml/2.2">'; $pre_script .= '<Document>'; $pre_script .= '<name>J.leaguer map</name>'; $pre_script .= '<description>earth.</description>'; $pre_script .= '<Style id="defaultStyles">'; $pre_script .= '<LineStyle>'; $pre_script .= '<color>cc000000</color>'; $pre_script .= '</LineStyle>'; $pre_script .= '<PolyStyle>'; $pre_script .= '<outline>0</outline>'; $pre_script .= '</PolyStyle>'; $pre_script .= '</Style>'; $pre_script .= '\n'; $coordinate_delta = 0.05; for ($i = 0;$i < count($csv);$i++){ $name = $csv[$i][1]; $ido = $csv[$i][3]; $keido = $csv[$i][4]; $height = $csv[$i][6]; if(($ido != 0)&&($keido != 0)){ $ne_lat = $ido + $coordinate_delta; $ne_lng = $keido + $coordinate_delta; $nw_lat = $ido + $coordinate_delta; $nw_lng = $keido - $coordinate_delta; $sw_lat = $ido - $coordinate_delta; $sw_lng = $keido - $coordinate_delta; $se_lat = $ido - $coordinate_delta; $se_lng = $keido + $coordinate_delta; $coordinates = ""; $coordinates .= $ne_lng . "," . $ne_lat . "," . $height . " "; $coordinates .= $nw_lng . "," . $nw_lat . "," . $height . " "; $coordinates .= $sw_lng . "," . $sw_lat . "," . $height . " "; $coordinates .= $se_lng . "," . $se_lat . "," . $height . " "; $coordinates .= $ne_lng . "," . $ne_lat . "," . $height; $placemark .= "<Placemark>"; $placemark .= "<name>" + $name + "</name>"; $placemark .= "<styleUrl>#defaultStyles</styleUrl>"; $placemark .= "<Style>"; $placemark .= "<PolyStyle>"; $placemark .= "<color>dc0155ff</color>"; $placemark .= "</PolyStyle>"; $placemark .= "</Style>"; $placemark .= "<Polygon>"; $placemark .= "<extrude>1</extrude>"; $placemark .= "<tessellate>1</tessellate>"; $placemark .= "<altitudeMode>absolute</altitudeMode>"; $placemark .= "<outerBoundaryIs>"; $placemark .= "<LinearRing>"; $placemark .= "<coordinates>"; $placemark .= $coordinates; $placemark .= "</coordinates>"; $placemark .= "</LinearRing>"; $placemark .= "</outerBoundaryIs>"; $placemark .= "</Polygon>"; $placemark .= "</Placemark>"; $placemark .= "\n"; } } $post_script = ''; $post_script .= '</Document>'; $post_script .= '</kml>'; $fp=fopen("2012JLeager.kml","w"); fputs($fp,$pre_script . $placemark . $post_script); fclose($fp); $zip = new ZipArchive(); // ZIPファイルをオープン $res = $zip->open('./2012JLeager.kmz', ZipArchive::CREATE); // zipファイルのオープンに成功した場合 if ($res === true) { // 圧縮するファイルを指定する $zip->addFile('2012JLeager.kml'); // ZIPファイルをクローズ $zip->close(); } print("ok"); ?>