Stop Browser Map
[busui.git] / labs / stopBrowser.kml.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
        header('Content-type: application/vnd.google-earth.kml+xml');
//http://wiki.openstreetmap.org/wiki/OpenLayers_Dynamic_KML
 
// Creates the KML/XML 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);
 
 
$bbox = $_GET['bbox']; // get the bbox param from google earth
list($bbox_south, $bbox_west, $bbox_north,$bbox_east) = explode(",", $bbox); // west, south, east, north
 
include ('../include/common.inc.php');
$debugOkay = Array();
$contents = getNearbyStops( (($bbox_west+ $bbox_east) /2), ($bbox_south + $bbox_north)/2 ,50, 3000);
foreach ($contents as $stop) {
                $description = 'http://bus.lambdacomplex.org/' . 'stop.php?stopid=' . $stop['stop_id'] ." <br>";
                $trips = getStopTripsWithTimes($stop['stop_id'], "", "", "", 3);
                if ($trips) {
                        foreach ($trips as $key => $row) {
                                if ($key < 3) {
                                        $description .= $row['route_short_name'] . ' ' . $row['route_long_name'] . ' @ ' . $row['arrival_time'] . "<br>";
                                }
                        }
                } else {
                        $description .= "No more trips today";
                }
                                         // 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' . $stop['stop_id']);
 
                                          // Create name, and description elements and assigns them the values of the name and address columns from the results.
                                          $nameNode = $dom->createElement('name',htmlentities($stop['stop_name']));
                                          $descriptionNode = $dom->createElement('description',$description);
                                          $placeNode->appendChild($nameNode);
                                          $placeNode->appendChild($descriptionNode);
 
                                          // 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 = $stop['stop_lon'] . ','  . $stop['stop_lat'];
                                          $coorNode = $dom->createElement('coordinates', $coorStr);
                                          $pointNode->appendChild($coorNode);
                                }
 
 
        $kmlOutput = $dom->saveXML();
        echo $kmlOutput;
?>