ThinkGeo.com    |     Documentation    |     Premium Support

Delete the editing shape

I try to use the client side api, to maniulate the gis module, thus i draw and edit a shape client side.i saw it was possible to delete the last shape but is there a way to delete the shape that i select with the edition tool.


 


Thanks in advance


Sebastien



this should work, but you will need to get the feature id from your edit layer, then use that to delete it from your shape layer, this is assuming you have populated your edit layer from some kind of shapes layer. My example shaped layer is in the StaticOverlay and is called "MyShapeLayer". 
  
 string FeatureID = "12"   //find the feature id from the edit layer 
 ShapeFileFeatureLayer currentLayer = (ShapeFileFeatureLayer)mapMain.StaticOverlay.Layers["MyShapeLayer"]; 
 currentLayer.Open(); 
 currentLayer.EditTools.BeginTransaction(); 
 currentLayer.EditTools.Delete(FeatureID) 
 currentLayer.EditTools.EndTransaction();  
 currentLayer.Close();  


thanks but is it possible to do it on the client side, ideally i would see that we draw a point on client side then we select it (on client side by using Map1.SetDrawMode(‘Modify’);) then delete the selected feature. The only problem is that i cant find the feature id when i select a feature.

Hi Sebastien,



Web Edition doesn’t have the default action to delete a selected feature. 



Here is a JavaScript method for you to satisfy your requirement; please call “deleteSelectedFeature()” to delete the selected feature. We’ll consider to add this feature in the future version.



If you have any questions please let me know.



Thanks,



Howard


var tgMap;
var OnMapCreated = function(map) {
    tgMap = map;

    var keyboard = new OpenLayers.Control.KeyboardDefaults();
    tgMap.addControl(keyboard);
    keyboard.activate();
};

var getEditOverlay = function() {
    var layers = tgMap.getLayersByName('EditOverlay');
    if (layers.length > 0) {
        return layers[0];
    } else {
        return null;
    }
};

var getModifyControl = function() {
    return tgMap.getControl('Modify');
};

// Delete feature which is selected.
var deleteSelectedFeature = function() {
    var editOverlay = getEditOverlay();
    var modifyControl = getModifyControl();
    if (editOverlay != null && modifyControl != null) {
        var selectedFeatures = editOverlay.selectedFeatures;
        if (selectedFeatures.length > 0) {
            modifyControl.unselectFeature({ feature: selectedFeatures[0] });
            editOverlay.removeFeatures(selectedFeatures);
        }
    }
}