1 |
5833
|
leinfelder
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
2 |
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
3 |
|
|
<head>
|
4 |
|
|
<link rel="stylesheet" href="/geoserver/style.css" type="text/css" />
|
5 |
|
|
<style type="text/css">
|
6 |
|
|
body {
|
7 |
|
|
margin: 1em;
|
8 |
|
|
}
|
9 |
|
|
#map {
|
10 |
|
|
width: 800px;
|
11 |
|
|
height: 475px;
|
12 |
|
|
border: 1px solid black;
|
13 |
|
|
}
|
14 |
|
|
</style>
|
15 |
|
|
<script src="openlayers/OpenLayers.js"></script>
|
16 |
|
|
<script type="text/javascript">
|
17 |
|
|
OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
|
18 |
|
|
|
19 |
|
|
var map;
|
20 |
|
|
function init(){
|
21 |
|
|
map = new OpenLayers.Map('map');
|
22 |
|
|
var political = new OpenLayers.Layer.WMS(
|
23 |
|
|
"State",
|
24 |
|
|
"/geoserver/wms",
|
25 |
|
|
{layers: 'topp:tasmania_state_boundaries',
|
26 |
|
|
format: 'image/png'}
|
27 |
|
|
);
|
28 |
|
|
|
29 |
|
|
var water = new OpenLayers.Layer.WMS(
|
30 |
|
|
"Water",
|
31 |
|
|
"/geoserver/wms",
|
32 |
|
|
{
|
33 |
|
|
layers: 'topp:tasmania_water_bodies',
|
34 |
|
|
transparent: 'true',
|
35 |
|
|
format: 'image/png'
|
36 |
|
|
}
|
37 |
|
|
);
|
38 |
|
|
|
39 |
|
|
var roads = new OpenLayers.Layer.WFS(
|
40 |
|
|
"Roads",
|
41 |
|
|
"/geoserver/wfs",
|
42 |
|
|
{typename: 'topp:tasmania_roads'},
|
43 |
|
|
{
|
44 |
|
|
typename: 'tasmania_roads',
|
45 |
|
|
featureNS: 'http://www.openplans.org/topp',
|
46 |
|
|
extractAttributes: false
|
47 |
|
|
}
|
48 |
|
|
);
|
49 |
|
|
roads.style = OpenLayers.Util.applyDefaults({strokeColor: "#ff0000"},
|
50 |
|
|
OpenLayers.Feature.Vector.style["default"]);
|
51 |
|
|
|
52 |
|
|
var cities = new OpenLayers.Layer.WFS(
|
53 |
|
|
"Cities",
|
54 |
|
|
"/geoserver/wfs",
|
55 |
|
|
{typename: 'topp:tasmania_cities'},
|
56 |
|
|
{
|
57 |
|
|
typename: 'tasmania_cities',
|
58 |
|
|
featureNS: 'http://www.openplans.org/topp',
|
59 |
|
|
extractAttributes: false
|
60 |
|
|
}
|
61 |
|
|
);
|
62 |
|
|
cities.style = OpenLayers.Util.applyDefaults({strokeColor: "#0000ff"},
|
63 |
|
|
OpenLayers.Feature.Vector.style["default"]);
|
64 |
|
|
|
65 |
|
|
map.addLayers([political, water, roads, cities]);
|
66 |
|
|
|
67 |
|
|
|
68 |
|
|
var panel = new OpenLayers.Control.Panel(
|
69 |
|
|
{displayClass: 'olControlEditingToolbar'}
|
70 |
|
|
);
|
71 |
|
|
|
72 |
|
|
var drawLine = new OpenLayers.Control.DrawFeature(
|
73 |
|
|
roads, OpenLayers.Handler.Path,
|
74 |
|
|
{displayClass: 'olControlDrawFeaturePath'}
|
75 |
|
|
);
|
76 |
|
|
drawLine.featureAdded = function(feature) {
|
77 |
|
|
feature.layer.eraseFeatures([feature]);
|
78 |
|
|
// cast to multilinestring
|
79 |
|
|
feature.geometry = new OpenLayers.Geometry.MultiLineString(
|
80 |
|
|
feature.geometry
|
81 |
|
|
);
|
82 |
|
|
feature.style.strokeColor = "#ff0000";
|
83 |
|
|
feature.state = OpenLayers.State.INSERT;
|
84 |
|
|
feature.layer.drawFeature(feature);
|
85 |
|
|
}
|
86 |
|
|
|
87 |
|
|
var drawPoint = new OpenLayers.Control.DrawFeature(
|
88 |
|
|
cities, OpenLayers.Handler.Point,
|
89 |
|
|
{displayClass: 'olControlDrawFeaturePoint'}
|
90 |
|
|
);
|
91 |
|
|
drawPoint.featureAdded = function(feature) {
|
92 |
|
|
feature.layer.eraseFeatures([feature]);
|
93 |
|
|
// cast to multipoint
|
94 |
|
|
feature.geometry = new OpenLayers.Geometry.MultiPoint(
|
95 |
|
|
feature.geometry
|
96 |
|
|
);
|
97 |
|
|
feature.style.strokeColor = "#0000ff";
|
98 |
|
|
feature.state = OpenLayers.State.INSERT;
|
99 |
|
|
feature.layer.drawFeature(feature);
|
100 |
|
|
}
|
101 |
|
|
|
102 |
|
|
panel.addControls(
|
103 |
|
|
[new OpenLayers.Control.Navigation(), drawLine, drawPoint]
|
104 |
|
|
);
|
105 |
|
|
|
106 |
|
|
map.addControl(panel);
|
107 |
|
|
map.addControl(new OpenLayers.Control.LayerSwitcher());
|
108 |
|
|
|
109 |
|
|
map.zoomToExtent(
|
110 |
|
|
new OpenLayers.Bounds(145.51045,-44.0,149.0,-40.5)
|
111 |
|
|
);
|
112 |
|
|
}
|
113 |
|
|
</script>
|
114 |
|
|
</head>
|
115 |
|
|
<body onload="init()">
|
116 |
|
|
<h3>OpenLayers WFS-T demo: Tasmania cities and roads</h3>
|
117 |
|
|
<a href="#" onclick="map.layers[2].commit();return false">Save Roads</a><br />
|
118 |
|
|
<a href="#" onclick="map.layers[3].commit();return false">Save Cities</a>
|
119 |
|
|
<div id="map"></div>
|
120 |
|
|
</body>
|
121 |
|
|
</html>
|