[Users] Why don´t my measure Controls toggle off?
Robert Buckley
robertdbuckley at yahoo.com
Wed Oct 6 20:28:14 CEST 2010
Hi,
I thought I had this toggling business sorted out, and then this happened. I
can´t see why the select tool doesn´t disable the measure tools?
Can anyone see my error?
Thanks,
Robert Buckley
var toolbarItems = [], action, actions = {};
var toggleGroup = "ToogleGroup";
// ### important ###
OpenLayers.Control.Measure.prototype.geodesic = true;
function check(btn)
{
if (btn == 'OK'){
oDragPanCtrl.activate();
}
};
// MaxExtent control
action = new GeoExt.Action({
text: "",
tooltip: "Auf Verbandsgebiet zoomen",
icon: '../images/arrow_out.png',
control: new OpenLayers.Control.ZoomToMaxExtent(),
map: map
});
actions["max_extent"] = action;
toolbarItems.push(action);
toolbarItems.push(' ',' ',' ',' ');
// Pan control
action = new GeoExt.Action({
text: "",
enableToggle: true,
toggleGroup: toggleGroup,
tooltip: "Schwenken",
icon: '../images/hand.png',
control: new OpenLayers.Control.DragPan({isDefault: true,title:
'Pan'}),
map: map
});
actions["Pan"] = action;
toolbarItems.push(action);
toolbarItems.push(' ',' ',' ',' ');
//Keyboard zoom control
action = new GeoExt.Action({
text: "",
tooltip: "Heranzoomen",
enableToggle: true,
icon: '../images/zoombox.png',
toggleGroup: toggleGroup,
control: new OpenLayers.Control.ZoomBox({alwaysZoom:true}),
map: map
});
actions["Zoom"] = action;
toolbarItems.push(action);
toolbarItems.push(' ',' ',' ',' ');
// Navigation history - two "button" controls
ctrl = new OpenLayers.Control.NavigationHistory();
map.addControl(ctrl);
action = new GeoExt.Action({
text: "",
icon: '../images/arrow_left.png',
control: ctrl.previous,
disabled: true,
tooltip: "zurück zur vorherigen Ausdehnung"
});
actions["previous"] = action;
toolbarItems.push(action);
action = new GeoExt.Action({
text: "",
control: ctrl.next,
icon: '../images/arrow_right.png',
disabled: true,
tooltip: "vor zur nächsten Ausdehnung"
});
actions["next"] = action;
toolbarItems.push(action);
toolbarItems.push(' ',' ',' ',' ');
//select control
action = new GeoExt.Action({
text: "",
tooltip: "Features selektieren",
enableToggle: true,
icon: '../images/information.png',
toggleGroup: toggleGroup,
control: new OpenLayers.Control.SelectFeature(
[layer_wea,layer_biogas,layer_wasserkraft,layer_kraftwerke],
{
clickout: true, toggle: false,
multiple: false, hover: false
}
),
map: map
});
actions["Select"] = action;
actions["area", "Entfernung"].disabled=true;
toolbarItems.push(action);
toolbarItems.push(' ',' ',' ',' ');
// Measure line control
// style the sketch fancy
var sketchSymbolizers = {
"Point": {
pointRadius: 4,
graphicName: "square",
fillColor: "white",
fillOpacity: 1,
strokeWidth: 1,
strokeOpacity: 1,
strokeColor: "#333333"
},
"Line": {
strokeWidth: 3,
strokeOpacity: 1,
strokeColor: "#2AFF2A",
strokeDashstyle: "dash"
},
"Polygon": {
strokeWidth: 2,
strokeOpacity: 1,
strokeColor: "#2AFF2A",
strokeDashstyle: "dash",
fillColor: "#2AFF2A",
fillOpacity: 0.2
}
};
var style = new OpenLayers.Style();
style.addRules([
new OpenLayers.Rule({symbolizer: sketchSymbolizers})
]);
var styleMap = new OpenLayers.StyleMap({"default": style});
action = new GeoExt.Action({
text: "area",
toggleGroup: toggleGroup,
group: toggleGroup,
control: new OpenLayers.Control.Measure(OpenLayers.Handler.Polygon,
{
persist: false,
handlerOptions: {
layerOptions: {styleMap: styleMap}
},
eventListeners: {
measure: function(evt) {
Ext.MessageBox.show(
{
title: 'Flächenberechnung',
buttons: Ext.MessageBox.OK,
width: 200,
msg: "Area: " + evt.measure.toFixed(2) + evt.units + "²",
fn: check
});
}
}
}),
map: map
});
actions["area"] = action;
// Measure area control
action = new GeoExt.Action({
text: "Entfernung",
toggleGroup: toggleGroup,
group: toggleGroup,
control: new OpenLayers.Control.Measure(OpenLayers.Handler.Path, {
persist: false,
handlerOptions: {
layerOptions: {styleMap: styleMap}
},
eventListeners: {
measure: function(evt) {
Ext.MessageBox.show(
{title: 'Flängenberechnung'
,buttons: Ext.MessageBox.OK
,width:200
,msg:"Länge: " + evt.measure.toFixed(2) + evt.units,
fn: check
});
}
}
}),
map: map
});
actions["Entfernung"] = action;
toolbarItems.push({
text: "",
icon: '../images/ruler.png',
tooltip: "Messwerkzeuge",
toggleGroup: toggleGroup,
menu: new Ext.menu.Menu({
items: [
new Ext.menu.CheckItem(actions["area"]),
new Ext.menu.CheckItem(actions["line"])
]
})
});
More information about the Users
mailing list