- $data = array('geom' => (string)$path->geom,
- 'title' => (string)$path->displayTitle);
+ switch ($ext) {
+ case 'kml':
+ $this->kml($path);
+ break;
+ case 'gpx':
+ $this->gpx($path);
+ break;
+ case 'json':
+ default:
+ $this->json($path);
+ return;
+ break;
+ }
+ }
+
+ protected function kml(Syj_Model_Path $path) {
+ $data = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL; // <? <-- vim syntax goes crazy
+ $data .= '<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">';
+ $data .= '<Placemark>';
+ if ($path->creator) {
+ $data .= '<atom:author><atom:name>'
+ . htmlspecialchars($path->creator->pseudo, ENT_COMPAT, "UTF-8")
+ . '</atom:name></atom:author>';
+ }
+ $data .= '<name>' . htmlspecialchars($path->displayTitle, ENT_COMPAT, "UTF-8") . '</name>';
+ $data .= $path->geom->toKML();
+ $data .= '</Placemark>';
+ $data .= '</kml>';
+
+ $api = $this->_helper->SyjApi;
+ $api->setCheckIfNoneMatch(true)->setContentType('application/vnd.google-earth.kml+xml')->setBody($data);
+ }
+
+ protected function gpx(Syj_Model_Path $path) {
+ $data = '<?xml version="1.0" encoding="UTF-8"?>' . PHP_EOL; // <? <-- vim syntax goes crazy
+ $data .= '<gpx creator="syj" version="1.0" xmlns="http://www.topografix.com/GPX/1/0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">';
+ $data .= '<trk>';