|
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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | <html xmlns="http://www.w3.org/1999/xhtml"> <head> <link rel="stylesheet" href="../theme/default/style.css" type="text/css" /> <link rel="stylesheet" href="style.css" type="text/css" /> <style type="text/css"> #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://labs.metacarta.com/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"></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> |