Mercurial > lada > lada-client
annotate app/view/panel/Map.js @ 880:c63ecb95dffb
move INSTALL to a markdown File
author | Dustin Demuth <dustin@intevation.de> |
---|---|
date | Wed, 22 Jul 2015 16:01:54 +0200 |
parents | 729bfea7e8b1 |
children | 07dfcdf5b41f |
rev | line source |
---|---|
605
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
2 * Software engineering by Intevation GmbH |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
3 * |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
4 * This file is Free Software under the GNU GPL (v>=3) |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
5 * and comes with ABSOLUTELY NO WARRANTY! Check out |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
6 * the documentation coming with IMIS-Labordaten-Application for details. |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
7 */ |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
8 Ext.define('Lada.view.panel.Map', { |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
9 extend: 'Ext.panel.Panel', |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
10 alias: 'widget.map', |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
11 |
614
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
12 record: null, |
638
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
13 locationRecord: null, |
614
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
14 |
605
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
15 /** |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
16 * @cfg |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
17 * OpenLayers map options. |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
18 */ |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
19 mapOptions: { |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 maxExtent: new OpenLayers.Bounds(2.9, 42.95, 18.1, 60.6), |
614
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
21 scales: [5000000, 3000000, 2000000, 1000000, 500000, 250000, 100000, 25000], |
605
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
22 units: 'dd', |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 projection: new OpenLayers.Projection('EPSG:4326') |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 }, |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 /** |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 * Array of OpenLayers.Layer objects. |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
28 */ |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
29 |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
30 /** |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
31 * @private |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
32 * Initialize the map panel. |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
33 */ |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
34 initComponent: function() { |
796
7267bae1d43f
made window-panel recyclable, fwd openlayers events to ext
Dustin Demuth <dustin@intevation.de>
parents:
643
diff
changeset
|
35 var id = Ext.id(); |
614
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
36 this.layers = [ |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
37 new OpenLayers.Layer.WMS( |
643
477379250512
Open the ort create window on button click.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
638
diff
changeset
|
38 'Standard' + id, |
614
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
39 'http://osm.intevation.de/cgi-bin/standard.fcgi?', |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
40 { |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
41 layers: 'OSM-WMS-Dienst', |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
42 format: 'image/png', |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
43 BGCOLOR: '0xFFFFFF' |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
44 }, { |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
45 isBaseLayer: true, |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
46 buffer: 0, |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
47 visibility: true |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
48 }) |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
49 ]; |
643
477379250512
Open the ort create window on button click.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
638
diff
changeset
|
50 this.map = new OpenLayers.Map('map_' + id, { |
605
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
51 controls: [], |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
52 tileManager: null, |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 zoomMethod: null |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
54 }); |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 this.map.setOptions(this.mapOptions); |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 this.map.addLayers(this.layers); |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
57 var keyControl = new OpenLayers.Control.KeyboardDefaults(); |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
58 this.map.addControl(keyControl); |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
59 keyControl.activate(); |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
60 this.bodyStyle = {background: '#fff'}; |
614
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
61 this.initData(); |
635
def8def373e8
Added a toolbar to the OpenLayers map panel.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
614
diff
changeset
|
62 this.tbar = Ext.create('Lada.view.widget.MapToolbar'); |
796
7267bae1d43f
made window-panel recyclable, fwd openlayers events to ext
Dustin Demuth <dustin@intevation.de>
parents:
643
diff
changeset
|
63 this.addEvents('featureselected'); |
614
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
64 this.callParent(arguments); |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
65 }, |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
66 |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
67 initData: function() { |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
68 var me = this; |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
69 this.locationFeatures = []; |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
70 this.locationStore = Ext.data.StoreManager.get('locations'); |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
71 for (var i = 0; i < this.locationStore.count(); i++) { |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
72 this.locationFeatures.push(new OpenLayers.Feature.Vector( |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
73 new OpenLayers.Geometry.Point( |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
74 this.locationStore.getAt(i).get('longitude'), |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
75 this.locationStore.getAt(i).get('latitude') |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
76 ), |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
77 { |
879
729bfea7e8b1
Re-Styled the markers in the map: Increased icon-size of selected-marker to 15px, added colored labels to the markers showing the bezeichnung of the location
Dustin Demuth <dustin@intevation.de>
parents:
803
diff
changeset
|
78 id: this.locationStore.getAt(i).get('id'), |
729bfea7e8b1
Re-Styled the markers in the map: Increased icon-size of selected-marker to 15px, added colored labels to the markers showing the bezeichnung of the location
Dustin Demuth <dustin@intevation.de>
parents:
803
diff
changeset
|
79 bez: this.locationStore.getAt(i).get('bezeichnung') |
614
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
80 } |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
81 )); |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
82 } |
643
477379250512
Open the ort create window on button click.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
638
diff
changeset
|
83 this.featureLayer = new OpenLayers.Layer.Vector('vector_' + this.map.name, { |
614
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
84 styleMap: new OpenLayers.StyleMap({ |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
85 'default': new OpenLayers.Style(OpenLayers.Util.applyDefaults({ |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
86 externalGraphic: 'resources/lib/OpenLayers/img/marker-green.png', |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
87 graphicOpacity: 1, |
879
729bfea7e8b1
Re-Styled the markers in the map: Increased icon-size of selected-marker to 15px, added colored labels to the markers showing the bezeichnung of the location
Dustin Demuth <dustin@intevation.de>
parents:
803
diff
changeset
|
88 pointRadius: 10, |
729bfea7e8b1
Re-Styled the markers in the map: Increased icon-size of selected-marker to 15px, added colored labels to the markers showing the bezeichnung of the location
Dustin Demuth <dustin@intevation.de>
parents:
803
diff
changeset
|
89 label: '${bez}', |
729bfea7e8b1
Re-Styled the markers in the map: Increased icon-size of selected-marker to 15px, added colored labels to the markers showing the bezeichnung of the location
Dustin Demuth <dustin@intevation.de>
parents:
803
diff
changeset
|
90 labelAlign: 'rt', |
729bfea7e8b1
Re-Styled the markers in the map: Increased icon-size of selected-marker to 15px, added colored labels to the markers showing the bezeichnung of the location
Dustin Demuth <dustin@intevation.de>
parents:
803
diff
changeset
|
91 fontColor: 'green', |
729bfea7e8b1
Re-Styled the markers in the map: Increased icon-size of selected-marker to 15px, added colored labels to the markers showing the bezeichnung of the location
Dustin Demuth <dustin@intevation.de>
parents:
803
diff
changeset
|
92 fontWeight: 'bold' |
614
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
93 }, OpenLayers.Feature.Vector.style['default'])), |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
94 'select': new OpenLayers.Style({ |
879
729bfea7e8b1
Re-Styled the markers in the map: Increased icon-size of selected-marker to 15px, added colored labels to the markers showing the bezeichnung of the location
Dustin Demuth <dustin@intevation.de>
parents:
803
diff
changeset
|
95 externalGraphic: 'resources/lib/OpenLayers/img/marker-blue.png', |
729bfea7e8b1
Re-Styled the markers in the map: Increased icon-size of selected-marker to 15px, added colored labels to the markers showing the bezeichnung of the location
Dustin Demuth <dustin@intevation.de>
parents:
803
diff
changeset
|
96 pointRadius: 15, |
729bfea7e8b1
Re-Styled the markers in the map: Increased icon-size of selected-marker to 15px, added colored labels to the markers showing the bezeichnung of the location
Dustin Demuth <dustin@intevation.de>
parents:
803
diff
changeset
|
97 label: '${bez}', |
729bfea7e8b1
Re-Styled the markers in the map: Increased icon-size of selected-marker to 15px, added colored labels to the markers showing the bezeichnung of the location
Dustin Demuth <dustin@intevation.de>
parents:
803
diff
changeset
|
98 labelAlign: 'rt', |
729bfea7e8b1
Re-Styled the markers in the map: Increased icon-size of selected-marker to 15px, added colored labels to the markers showing the bezeichnung of the location
Dustin Demuth <dustin@intevation.de>
parents:
803
diff
changeset
|
99 fontColor: 'blue', |
729bfea7e8b1
Re-Styled the markers in the map: Increased icon-size of selected-marker to 15px, added colored labels to the markers showing the bezeichnung of the location
Dustin Demuth <dustin@intevation.de>
parents:
803
diff
changeset
|
100 fontWeight: 'bold' |
614
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
101 }) |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
102 }) |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
103 }); |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
104 this.featureLayer.addFeatures(this.locationFeatures); |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
105 this.map.addLayer(this.featureLayer); |
796
7267bae1d43f
made window-panel recyclable, fwd openlayers events to ext
Dustin Demuth <dustin@intevation.de>
parents:
643
diff
changeset
|
106 |
614
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
107 this.selectControl = new OpenLayers.Control.SelectFeature(this.featureLayer, { |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
108 clickout: false, |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
109 toggle: false, |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
110 multiple: false, |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
111 hover: false, |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
112 onSelect: me.selectedFeature, |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
113 scope: me |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
114 }); |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
115 this.map.addControl(this.selectControl); |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
116 this.selectControl.activate(); |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
117 }, |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
118 |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
119 selectFeature: function(id) { |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
120 var feature = this.featureLayer.getFeaturesByAttribute('id', id); |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
121 this.map.setCenter( |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
122 new OpenLayers.LonLat(feature[0].geometry.x, feature[0].geometry.y)); |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
123 this.map.zoomToScale(this.mapOptions.scales[5]); |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
124 this.selectControl.unselectAll(); |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
125 this.selectControl.select(feature[0]); |
605
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
126 }, |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
127 |
638
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
128 activateDraw: function(record) { |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
129 this.locationRecord = record; |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
130 if (!this.drawPoint) { |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
131 this.drawPoint = new OpenLayers.Control.DrawFeature(this.featureLayer, |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
132 OpenLayers.Handler.Point); |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
133 this.map.addControl(this.drawPoint); |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
134 } |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
135 this.drawPoint.activate(); |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
136 this.drawPoint.events.register('featureadded', this, this.featureAdded); |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
137 }, |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
138 |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
139 featureAdded: function(features) { |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
140 this.locationRecord.set('latitude', features.feature.geometry.y); |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
141 this.locationRecord.set('longitude', features.feature.geometry.x); |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
142 this.drawPoint.deactivate(); |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
143 this.selectControl.unselectAll(); |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
144 this.selectControl.select(features.feature); |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
145 }, |
d21048cbdbb3
Added controllers for map and location form and handle new locations.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
635
diff
changeset
|
146 |
605
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
147 /** |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
148 * @private |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
149 * Override to display and update the map view in the panel. |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
150 */ |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
151 afterRender: function() { |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
152 this.superclass.afterRender.apply(this, arguments); |
796
7267bae1d43f
made window-panel recyclable, fwd openlayers events to ext
Dustin Demuth <dustin@intevation.de>
parents:
643
diff
changeset
|
153 |
605
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
154 this.map.render(this.body.dom); |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
155 this.map.addControl(new OpenLayers.Control.Navigation()); |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
156 this.map.addControl(new OpenLayers.Control.PanZoomBar()); |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
157 this.map.addControl(new OpenLayers.Control.ScaleLine()); |
796
7267bae1d43f
made window-panel recyclable, fwd openlayers events to ext
Dustin Demuth <dustin@intevation.de>
parents:
643
diff
changeset
|
158 }, |
7267bae1d43f
made window-panel recyclable, fwd openlayers events to ext
Dustin Demuth <dustin@intevation.de>
parents:
643
diff
changeset
|
159 |
7267bae1d43f
made window-panel recyclable, fwd openlayers events to ext
Dustin Demuth <dustin@intevation.de>
parents:
643
diff
changeset
|
160 /** |
7267bae1d43f
made window-panel recyclable, fwd openlayers events to ext
Dustin Demuth <dustin@intevation.de>
parents:
643
diff
changeset
|
161 * Forward OpenlayersEvent to EXT |
7267bae1d43f
made window-panel recyclable, fwd openlayers events to ext
Dustin Demuth <dustin@intevation.de>
parents:
643
diff
changeset
|
162 */ |
7267bae1d43f
made window-panel recyclable, fwd openlayers events to ext
Dustin Demuth <dustin@intevation.de>
parents:
643
diff
changeset
|
163 selectedFeature: function() { |
7267bae1d43f
made window-panel recyclable, fwd openlayers events to ext
Dustin Demuth <dustin@intevation.de>
parents:
643
diff
changeset
|
164 this.fireEvent('featureselected', this, arguments); |
614
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
165 }, |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
166 |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
167 beforeDestroy: function() { |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
168 if (this.map) { |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
169 this.map.destroy(); |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
170 } |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
171 delete this.map; |
04e380ce4d73
Load locations as layer on the map, set selections based on the selected 'ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
605
diff
changeset
|
172 this.callParent(arguments); |
605
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
173 }, |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
174 |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
175 /** |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
176 * @private |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
177 * Override to resize the map and reposition the logo. |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
178 */ |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
179 onResize: function() { |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
180 this.superclass.onResize.apply(this, arguments); |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
181 this.map.updateSize(); |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
182 } |
c6994912a326
Added panel with OpenLayers map.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
183 }); |