tim@975: function handleMeasurements(event) { tim@975: var geometry = event.geometry; tim@975: var units = event.units; tim@975: var order = event.order; tim@975: var measure = event.measure; tim@975: var element = document.getElementById('measurements'); tim@975: tim@975: var out = ""; tim@975: if(order == 1) { tim@975: out += "L\u00e4nge: " + measure.toFixed(3) + " " + units; tim@975: } else { tim@975: out += "Fl\u00e4che: " + measure.toFixed(3) + " " + units + "2"; tim@975: } tim@975: tim@975: element.innerHTML=out; tim@975: }; tim@975: tim@975: tim@975: tim@975: function readWMC(merge) { tim@975: var layers = mapPanel.layers; tim@975: map = mapPanel.map; tim@975: tim@975: var format = new OpenLayers.Format.WMC({'layerOptions': {buffer: 0}}); tim@975: var text = document.getElementById("wmc").value; tim@975: tim@975: merge = true; tim@975: if(merge) { tim@975: try { tim@975: map = format.read(text, {map: map}); tim@975: } catch(err) { tim@975: document.getElementById("wmc").value = err; tim@975: } tim@975: } else { tim@975: map.destroy(); tim@975: try { tim@975: var jsonFormat = new OpenLayers.Format.JSON(); tim@975: var mapOptions = jsonFormat.read(); tim@975: map = format.read(text, {map: mapOptions}); tim@975: } catch(err) { tim@975: document.getElementById("wmc").value = err; tim@975: } tim@975: } tim@975: tim@975: // create MapPanel tim@975: mapPanel = new GeoExt.MapPanel({ tim@975: border: true, tim@975: title: "Karte", tim@975: region: "center", tim@975: map: map, tim@975: zoom: 1, tim@975: layers: map.layers tim@975: }); tim@975: } tim@975: tim@975: tim@975: function writeWMC(merge) { tim@975: var format = new OpenLayers.Format.WMC({'layerOptions': {buffer: 0}}); tim@975: tim@975: try { tim@975: var text = format.write(map); tim@975: document.getElementById("wmc").value = text; tim@975: } catch(err) { tim@975: document.getElementById("wmc").value = err; tim@975: } tim@975: } tim@975: tim@975: tim@975: tim@975: function toggleGetFeatureInfo(evt) { tim@975: if (infoActive) { tim@975: infoControls.click.deactivate(); tim@975: infoActive = false; tim@975: } tim@975: else { tim@975: infoControls.click.activate(); tim@975: infoActive = true; tim@975: } tim@975: } tim@975: tim@975: tim@975: function showInfo(evt) { tim@975: } tim@975: tim@975: tim@975: function addLayer() { tim@975: var record = grid.getSelectionModel().getSelected(); tim@975: tim@975: if (record) { tim@975: var copy = record.copy(); tim@975: copy.set("layer", record.get("layer")); tim@975: copy.get("layer").mergeNewParams({ tim@975: format: "image/png", tim@975: transparent: true tim@975: }); tim@975: tim@975: mapPanel.layers.add(copy); tim@975: mapPanel.map.zoomToExtent(OpenLayers.Bounds.fromArray(copy.get("llbbox"))); tim@975: } tim@975: } tim@975: tim@975: tim@975: // this is just copied from OpenLayers.Util tim@975: function urlAppend(url, paramStr) { tim@975: var newUrl = url; tim@975: if(paramStr) { tim@975: var parts = (url + " ").split(/[?&]/); tim@975: newUrl += (parts.pop() === " " ? tim@975: paramStr : tim@975: parts.length ? "&" + paramStr : "?" + paramStr); tim@975: } tim@975: return newUrl; tim@975: } tim@975: tim@975: tim@975: function updateCapabilities() { tim@975: var ele = Ext.Element.get('capfield'); tim@975: tim@975: var url = ele.getValue(); tim@975: var service = "SERVICE=WMS"; tim@975: var request = "REQUEST=GetCapabilities"; tim@975: url = urlAppend(url, service); tim@975: url = urlAppend(url, request); tim@975: tim@975: store = new GeoExt.data.WMSCapabilitiesStore({ tim@975: url: url tim@975: }); tim@975: store.load(); tim@975: tim@975: grid.destroy(); tim@975: grid = new Ext.grid.GridPanel({ tim@975: id: 'wmsgrid', tim@975: collapsible: false, tim@975: split: false, tim@975: border: true, tim@975: height: 440, tim@975: //autoHeight: true, don't use autoHeight, because the component doesn't tim@975: //take care on the 'addLayer' button at the bottom tim@975: store: store, tim@975: cm: new Ext.grid.ColumnModel([ tim@975: { tim@975: header: 'Name', tim@975: dataIndex: 'name', tim@975: sortable: true tim@975: }, tim@975: { tim@975: id: 'title', tim@975: header: 'Title', tim@975: dataIndex: 'title', tim@975: sortable: true tim@975: }]), tim@975: renderTo: 'capgrid', tim@975: bbar: [{ tim@975: text: 'Add Layer', tim@975: handler: addLayer tim@975: }] tim@975: }); tim@975: } tim@975: tim@975: tim@975: function editFeature(e) { tim@975: var feature = e.feature; tim@975: tim@975: // TODO SET FEATURE ATTRIBUTES tim@975: //feature.attributes['lawa'] = 999; tim@975: //feature.attributes['lawa_id'] = 999; tim@975: //feature.attributes['w_gwk_lawa'] = 999; tim@975: //feature.attributes['w_wrrl'] = 999; tim@975: //feature.attributes['length_fee'] = 999; tim@975: } tim@975: tim@975: function updateControls() { tim@975: var controls = panel.controls; tim@975: tim@975: controls.remove(drawPointControl); tim@975: controls.remove(drawPathControl); tim@975: controls.remove(drawPolygonControl); tim@975: tim@975: panel.destroy(); tim@975: panel = new OpenLayers.Control.Panel(); tim@975: panel.addControls(controls); tim@975: tim@975: if (points.getVisibility()) tim@975: panel.addControls(drawPointControl); tim@975: if (lines.getVisibility()) tim@975: panel.addControls(drawPathControl); tim@975: if (polygons.getVisibility()) tim@975: panel.addControls(drawPolygonControl); tim@975: tim@975: map.addControl(panel); tim@975: }