Stop Browser Map
[busui.git] / labs / stopBrowser.php
blob:a/labs/stopBrowser.php -> blob:b/labs/stopBrowser.php
--- a/labs/stopBrowser.php
+++ b/labs/stopBrowser.php
@@ -1,1 +1,102 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head>
+    <script src="openlayers/OpenLayers.js"></script>
+ <SCRIPT TYPE="text/javascript" SRC="OpenStreetMap.js"></SCRIPT> 
+    <script type="text/javascript">
+        var map,select;
+       
+	
+function init()
+{
+    var extent = new OpenLayers.Bounds(148.98, -35.48, 149.25, -35.15);
+ 
+		// set up the map options
+		var options = 
+		{
+			   maxExtent: extent,
+			   numZoomLevels: 20, 
+		}; 
+ 
+		// create the ol map object
+		map = new OpenLayers.Map('map', options);
+    
+var osmtiles = new OpenLayers.Layer.OSM("OSM");
 
+var nearmap = new OpenLayers.Layer.OSM.NearMap("NearMap");
+
+	    var stopbrowser = new OpenLayers.Layer.Vector("POI", {
+		projection: new OpenLayers.Projection("EPSG:4326"),
+		strategies: [
+			new OpenLayers.Strategy.BBOX(),
+		],
+		protocol: new OpenLayers.Protocol.HTTP({
+                        url: "stopBrowser.kml.php",  //Note that it is probably worth adding a Math.random() on the end of the URL to stop caching.
+			format: new OpenLayers.Format.KML({
+                                extractStyles: true, 
+                                extractAttributes: true
+                        }),
+		})
+	    });
+
+	map.addLayers([osmtiles,stopbrowser,nearmap]);
+
+    var lonLat = new OpenLayers.LonLat(149.11, -35.28).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
+    map.setCenter(lonLat, 15);
+    map.addControl( new OpenLayers.Control.LayerSwitcher({'ascending':false}));
+    map.addControl(new OpenLayers.Control.MousePosition(
+    {
+        displayProjection: new OpenLayers.Projection("EPSG:4326"),
+        suffix: "__________________________________"
+    }));
+    map.addControl(new OpenLayers.Control.MousePosition(
+    {
+        displayProjection: new OpenLayers.Projection("EPSG:900913")
+    }));
+    
+  select = new OpenLayers.Control.SelectFeature(stopbrowser);
+            
+            stopbrowser.events.on({
+                "featureselected": onFeatureSelect,
+                "featureunselected": onFeatureUnselect
+            });
+ 
+            map.addControl(select);
+            select.activate();   
+
+}
+ function onPopupClose(evt) {
+            select.unselectAll();
+        }
+        function onFeatureSelect(event) {
+            var feature = event.feature;
+            // Since KML is user-generated, do naive protection against
+            // Javascript.
+            var content = "<h2>"+feature.attributes.name + "</h2>" + feature.attributes.description;
+            if (content.search("<script") != -1) {
+                content = "Content contained Javascript! Escaped content below.<br />" + content.replace(/</g, "&lt;");
+            }
+            popup = new OpenLayers.Popup.FramedCloud("chicken", 
+                                     feature.geometry.getBounds().getCenterLonLat(),
+                                     new OpenLayers.Size(100,100),
+                                     content,
+                                     null, true, onPopupClose);
+            feature.popup = popup;
+            map.addPopup(popup);
+        }
+        function onFeatureUnselect(event) {
+            var feature = event.feature;
+            if(feature.popup) {
+                map.removePopup(feature.popup);
+                feature.popup.destroy();
+                delete feature.popup;
+            }
+        }
+    </script>
+
+  </head>
+  <body onload="init()">
+    <div id="map" width="100%" height="100%" class="smallmap"></div>
+  </body>
+</html>
+
+