Pierre,
Yes, your method is right and works well. I have two suggestion for you. One you could override the redraw function of LayerSwitcher, and you just need to modify the type of all input element to radio, that's so easy, but you need to place many code on the client-side. The other one is to override the function of onInputClick in LayerSwitcher control. You could refer the code below:
OpenLayers.Control.LayerSwitcher.prototype.onInputClick = function(e) {
if (!this.inputElem.disabled) {
if (this.inputElem.type == "radio") {
this.inputElem.checked = true;
this.layer.map.setBaseLayer(this.layer);
} else {
this.inputElem.checked = !this.inputElem.checked;
for (i = 0; i < this.layerSwitcher.dataLayers.length; i++) {
var layerEntry = this.layerSwitcher.dataLayers[i];
if (layerEntry.layer.name != this.layer.name) {
layerEntry.inputElem.checked = false;
}
else {
layerEntry.inputElem.checked = this.inputElem.checked;
}
this.layerSwitcher.updateMap();
}
}
}
OpenLayers.Event.stop(e);
}
Thanks,
Khalil