diff options
Diffstat (limited to 'misc/openlayers/examples/sundials.html')
-rw-r--r-- | misc/openlayers/examples/sundials.html | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/misc/openlayers/examples/sundials.html b/misc/openlayers/examples/sundials.html new file mode 100644 index 0000000..b718755 --- /dev/null +++ b/misc/openlayers/examples/sundials.html @@ -0,0 +1,107 @@ +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> + <meta name="apple-mobile-web-app-capable" content="yes"> + <link rel="stylesheet" href="../theme/default/style.css" type="text/css"> + <link rel="stylesheet" href="style.css" type="text/css"> + + <style type="text/css"> + html, body { + height: 100%; + } + #map { + width: 100%; + height: 80%; + border: 1px solid black; + } + .olPopup p { margin:0px; font-size: .9em;} + .olPopup h2 { font-size:1.2em; } + </style> + <script src="../lib/OpenLayers.js"></script> + <script type="text/javascript"> + var lon = 5; + var lat = 40; + var zoom = 5; + var map, select; + + function init(){ + map = new OpenLayers.Map('map'); + + var wms = new OpenLayers.Layer.WMS( + "OpenLayers WMS", + "http://vmap0.tiles.osgeo.org/wms/vmap0", + {layers: 'basic'} + ); + + var sundials = new OpenLayers.Layer.Vector("KML", { + projection: map.displayProjection, + strategies: [new OpenLayers.Strategy.Fixed()], + protocol: new OpenLayers.Protocol.HTTP({ + url: "kml/sundials.kml", + format: new OpenLayers.Format.KML({ + extractStyles: true, + extractAttributes: true + }) + }) + }); + + map.addLayers([wms, sundials]); + + select = new OpenLayers.Control.SelectFeature(sundials); + + sundials.events.on({ + "featureselected": onFeatureSelect, + "featureunselected": onFeatureUnselect + }); + + map.addControl(select); + select.activate(); + map.zoomToExtent(new OpenLayers.Bounds(68.774414,11.381836,123.662109,34.628906)); + } + 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, "<"); + } + 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()"> + <h1 id="title">KML Layer Example</h1> + + <div id="tags"> + kml, popup, feature + </div> + + <p id="shortdesc"> + Demonstrates loading and displaying a KML file on top of a basemap. + </p> + + <div id="map" class="smallmap"></div> + + <div id="docs"></div> + </body> +</html> |