Project

General

Profile

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>
(2-2/2)