Add some friendly name/duplicate subsitution rules
[bus.git] / displayroutes.kml.php
blob:a/displayroutes.kml.php -> blob:b/displayroutes.kml.php
--- a/displayroutes.kml.php
+++ b/displayroutes.kml.php
@@ -1,1 +1,65 @@
+<?php

+header('Content-Type: application/vnd.google-earth.kml+xml');

+echo '<?xml version="1.0" encoding="UTF-8"?>

+<kml xmlns="http://www.opengis.net/kml/2.2"><Document>';

+echo '

+    <Style id="yellowLineGreenPoly">

+      <LineStyle>

+        <color>7f00ff00</color>

+        <width>4</width>

+      </LineStyle>

+      <PolyStyle>

+        <color>7f00ffff</color>

+      </PolyStyle>

+	</Style>';

+$conn = pg_connect("dbname=openstreetmap user=postgres password=snmc");

+if (!$conn) {

+  echo "An error occured.\n";

+  exit;

+}

+

+$result_route = pg_query($conn, "SELECT * from current_relation_tags, (Select id FROM current_relation_tags WHERE k = 'route' AND v = 'bus') as a 

+where a.id = current_relation_tags.id and k = 'ref';");

+if (!$result_route) {

+  echo "An route retirieve error occured.\n";

+  exit;

+}

+

+while ($route = pg_fetch_assoc($result_route)) {

+ echo "\n<Placemark>\n";

+ echo "<name>".$route['v']." position at ".$route['id']."</name>";

+ echo "<description>".$route['v']." position at ".$route['id']."</description>";

+echo "<styleUrl>#yellowLineGreenPoly</styleUrl>";

+echo "      <LineString>

+        <extrude>1</extrude>

+        <coordinates> ";

+$result_way = pg_query($conn, 'SELECT member_id, sequence_id FROM "current_relation_members" WHERE "id" = '.$route['id'].' order by "sequence_id" 

+ASC');

+if (!$result_way) {

+  echo "An way retirieve error occured.\n";

+  exit;

+}

+  $count = 0;

+

+while ($way = pg_fetch_assoc($result_way)) {

+	$result_node = pg_query($conn, 'SELECT * FROM current_nodes INNER JOIN current_way_nodes ON current_way_nodes.node_id=current_nodes.id WHERE 

+current_way_nodes.id = '.$way['member_id'].' order by "sequence_id" ASC');

+	if (!$result_node) {

+	  echo "An node retirieve error occured.\n";

+	  exit;

+	}

+

+	while ($node = pg_fetch_assoc($result_node)) {

+   $count++;

+		echo ($node['longitude']/10000000).",".($node['latitude']/10000000).",600 \n";

+	}

+}

+	if ($count == 0) echo (0).",".(0).",600 \n";

+echo "        </coordinates>

+      </LineString>";

+echo '</Placemark>';

+}

+

+echo "\n</Document></kml>\n";

+?>