Files
openlayers/examples/wkt.html
crschmidt d8b8f44803 Pullup trunk for RC4.
Fixes:
#694    Safari 1.3.2 doesn't work with OL 2.4
#695    GeoRSS serializer is broken
#696    events need to fall through the overview map extent rectangle
#697    Vector example to show how to use styles
#698    add close box option to AnchoredBubble
#701    SVG render does not always clear features when map extent changes
#703    OpenLayers.Layer.Vector do not properly destroy its features
#706    Full CSS support fails when Control.OverviewMap is loaded
#708    change WKT format to deal in features instead of geometries
#710    Install instructions unclear
#711    OpenLayers.Layer.Image requires OpenLayers.Tile.Image
#715    layer.js needs sanity check
#718    WMS.Untiled Clone doesn't work
#719    SVG renderer does not always redraw LineStrings and Polygons
#720    remove console.log() from OpenLayers.Format.WKT


git-svn-id: http://svn.openlayers.org/branches/openlayers/2.4@3177 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
2007-05-24 14:43:07 +00:00

153 lines
5.3 KiB
HTML

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>WKT</title>
<style type="text/css">
#info {
position: absolute;
top: 70px;
left: 550px;
width: 350px;
}
#map {
width: 512px;
height: 350px;
border: 1px solid gray;
}
#controls {
width: 512px;
}
#wktInput {
float: right;
}
#controlToggle {
padding-left: 1em;
}
#controlToggle li {
list-style: none;
}
</style>
<script src="../lib/OpenLayers.js"></script>
<script type="text/javascript">
<!--
var map, vectors, drawControls, wkt;
function init(){
map = new OpenLayers.Map('map');
var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0?", {layers: 'basic'});
vectors = new OpenLayers.Layer.Vector("Vector Layer");
map.addLayers([wms, vectors]);
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.addControl(new OpenLayers.Control.MousePosition());
var options = {
hover: true,
onSelect: displayWKT
};
drawControls = {
point: new OpenLayers.Control.DrawFeature(vectors,
OpenLayers.Handler.Point),
line: new OpenLayers.Control.DrawFeature(vectors,
OpenLayers.Handler.Path),
polygon: new OpenLayers.Control.DrawFeature(vectors,
OpenLayers.Handler.Polygon),
hover: new OpenLayers.Control.SelectFeature(vectors, options)
};
for(var key in drawControls) {
map.addControl(drawControls[key]);
}
wkt = new OpenLayers.Format.WKT();
map.setCenter(new OpenLayers.LonLat(0, 0), 3);
document.getElementById('noneToggle').checked = true;
}
function toggleControl(element) {
for(key in drawControls) {
var control = drawControls[key];
if(element.value == key && element.checked) {
control.activate();
} else {
control.deactivate();
}
}
}
function displayWKT(feature) {
var str = wkt.write(feature);
// not a good idea in general, just for this demo
str = str.replace(/,/g, ', ');
document.getElementById('info').innerHTML = str;
}
function parseWKT() {
var element = document.getElementById('wkt');
var features = wkt.read(element.value);
var bounds;
if(features) {
if(features.constructor != Array) {
features = [features];
}
for(var i=0; i<features.length; ++i) {
if (!bounds) {
bounds = features[i].geometry.getBounds();
} else {
bounds.extend(features[i].geometry.getBounds());
}
}
vectors.addFeatures(features);
map.zoomToExtent(bounds);
var plural = (features.length > 1) ? 's' : '';
element.value = 'Feature' + plural + ' added'
} else {
element.value = 'Bad WKT';
}
}
// -->
</script>
</head>
<body onload="init()">
<h1>OpenLayers WKT Example</h1>
<div id="info"></div>
<div id="map"></div>
<div id="controls">
<p>See <a href="http://en.wikipedia.org/wiki/Well-known_text#Geometric_Objects">Wikipedia</a>
for a description and examples of WKT.</p>
<div id="wktInput">
<textarea id="wkt" rows="6" cols="30">paste WKT here...</textarea>
<br />
<input type="button" value="add feature" onclick="parseWKT();" />
</div>
<ul id="controlToggle">
<li>
<input type="radio" name="type" value="none" id="noneToggle"
onclick="toggleControl(this);" checked="checked" />
<label for="noneToggle">navigate</label>
</li>
<li>
<input type="radio" name="type" value="point" id="pointToggle" onclick="toggleControl(this);" />
<label for="pointToggle">draw point</label>
</li>
<li>
<input type="radio" name="type" value="line" id="lineToggle" onclick="toggleControl(this);" />
<label for="lineToggle">draw line</label>
</li>
<li>
<input type="radio" name="type" value="polygon" id="polygonToggle" onclick="toggleControl(this);" />
<label for="polygonToggle">draw polygon</label>
</li>
<li>
<input type="radio" name="type" value="hover" id="hoverToggle"
onclick="toggleControl(this);" />
<label for="hoverToggle">view WKT for feature</label>
</li>
</ul>
</div>
</body>
</html>