88 lines
4.0 KiB
PHP
88 lines
4.0 KiB
PHP
<?php
|
|
|
|
$app->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'] . '<br>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);
|
|
}); |