1
|
<!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>
|