summaryrefslogtreecommitdiff
path: root/misc/openlayers/examples/sundials.html
diff options
context:
space:
mode:
Diffstat (limited to 'misc/openlayers/examples/sundials.html')
-rw-r--r--misc/openlayers/examples/sundials.html107
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, "&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()">
+ <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>