get('/spacciatori/kml', function () use ($app) { $callbackFn = $app->request()->get('callback'); $mysqlconnetion = new MysqlClass; $query = "SELECT ProfiloID, Name, Email, CONCAT(Comune, ', ', Cap, ' - ', Provincia) as Indirizzo, Latitudine, Longitudine, TipoPM FROM `profilo` where bSpacciatore = 1"; $retObj = $mysqlconnetion->queryToObject($query); $mysqlconnetion->disconnetti(); // Creates the Document. $dom = new DOMDocument('1.0', 'UTF-8'); // Creates the root KML element and appends it to the root document. $node = $dom->createElementNS('http://earth.google.com/kml/2.1', 'kml'); $parNode = $dom->appendChild($node); // Creates a KML Document element and append it to the KML element. $dnode = $dom->createElement('Document'); $docNode = $parNode->appendChild($dnode); // Creates the two Style elements, one for restaurant and one for bar, and append the elements to the Document element. $restStyleNode = $dom->createElement('Style'); $restStyleNode->setAttribute('id', '1'); $restIconstyleNode = $dom->createElement('IconStyle'); $restIconstyleNode->setAttribute('id', 'restaurantIcon'); $restIconNode = $dom->createElement('Icon'); $restHref = $dom->createElement('href', 'http://maps.google.com/mapfiles/kml/pal2/icon63.png'); $restIconNode->appendChild($restHref); $restIconstyleNode->appendChild($restIconNode); $restStyleNode->appendChild($restIconstyleNode); $docNode->appendChild($restStyleNode); $barStyleNode = $dom->createElement('Style'); $barStyleNode->setAttribute('id', '2'); $barIconstyleNode = $dom->createElement('IconStyle'); $barIconstyleNode->setAttribute('id', 'barIcon'); $barIconNode = $dom->createElement('Icon'); $barHref = $dom->createElement('href', 'http://maps.google.com/mapfiles/kml/pal2/icon27.png'); $barIconNode->appendChild($barHref); $barIconstyleNode->appendChild($barIconNode); $barStyleNode->appendChild($barIconstyleNode); $docNode->appendChild($barStyleNode); // Iterates through the MySQL results, creating one Placemark for each row. foreach ($retObj as $row) { // Creates a Placemark and append it to the Document. $node = $dom->createElement('Placemark'); $placeNode = $docNode->appendChild($node); // Creates an id attribute and assign it the value of id column. $placeNode->setAttribute('id', 'placemark_' . $row['ProfiloID']); // Create name, and description elements and assigns them the values of the name and address columns from the results. $nameNode = $dom->createElement('name',htmlentities($row['Name'])); $placeNode->appendChild($nameNode); $descNode = $dom->createElement('description', $row['Indirizzo'] . '
Contatta: ' . $row['Email']); $placeNode->appendChild($descNode); $styleUrl = $dom->createElement('styleUrl', '#' . $row['TipoPM']); $placeNode->appendChild($styleUrl); // Creates a Point element. $pointNode = $dom->createElement('Point'); $placeNode->appendChild($pointNode); // Creates a coordinates element and gives it the value of the lng and lat columns from the results. $coorStr = $row['Longitudine'] . ',' . $row['Latitudine']; $coorNode = $dom->createElement('coordinates', $coorStr); $pointNode->appendChild($coorNode); } $kmlOutput = $dom->saveXML(); header('Content-type: application/vnd.google-earth.kml+xml'); echo $kmlOutput; }); $app->get('/spacciatori/bound/:FromLat/:FromLng/:ToLat/:ToLng', function ($FromLat, $FromLng, $ToLat, $ToLng) use ($app) { $callbackFn = $app->request()->get('callback'); $mysqlconnetion = new MysqlClass; $query = "SELECT Name, Email, CONCAT(Comune, ', ', Cap, ' - ', Provincia) as Indirizzo, Latitudine, Longitudine, TipoPM FROM `profilo` " . "where bSpacciatore = 1 AND " . "Latitudine BETWEEN " . $ToLat . " AND " . $FromLat . " AND ". "Longitudine BETWEEN " . $ToLng . " AND " . $FromLng; $retObj = $mysqlconnetion->queryToObject($query); $mysqlconnetion->disconnetti(); returnJson($app, $callbackFn, $retObj); });