ThinkGeo.com    |     Documentation    |     Premium Support

Edit overlay - enable rotate for subset of features in the layer

Hallo


I have a scenario in which the user can start editing features
from an “InMemoryFeatureLayer”. When the edit starts I move the all features of
the layer to the EditOverlay.


My problem is that subset of the features should be only rotatable
and movable. 


I understand that I can control in the edit type by setting
the following properties of the EditOverlay, but this affect all the features
in the EditOverlay


ThinkGeoMap.EditOverlay.CanResize
= false;


ThinkGeoMap.EditOverlay.CanRotate
= true;


ThinkGeoMap.EditOverlay.CanReshape
= false;


ThinkGeoMap.EditOverlay.CanRemoveVertex
= false;


ThinkGeoMap.EditOverlay.CanAddVertex
= false; 


ThinkGeoMap.EditOverlay.CanDrag
= true;


 


How can I have this unique edit (CanDrag= true + CanRotate=true) only for
specific features in the Edit overlay while keeping other features editable as
default (all edit properties are enabled)


I tried to
use EditInteractiveOverlay but it did not helped. 


Can I have
more than one editOverlay in same way?


Do you
have any other suggestion regarding this issue?


Thank you


Miri



Hi Miri, 
  
 I tested multiply EditOverlay, it won’t works. 
  
 So the solution should be create your custom edit overlay like this: 
  
  public class MyEditEditInteractiveOverlay : EditInteractiveOverlay
    {
        protected override System.Collections.Generic.IEnumerable<Feature> CalculateResizeControlPointsCore(Feature feature)
        {
            System.Collections.Generic.IEnumerable<Feature> features = new System.Collections.ObjectModel.Collection<Feature>();
            
            if (feature is your special feature)
            {
                return features;
            }
            else
            {
                return base.CalculateResizeControlPointsCore(feature);
            }
        }


        protected override System.Collections.Generic.IEnumerable<Feature> CalculateVertexControlPointsCore(Feature feature)
        {
            System.Collections.Generic.IEnumerable<Feature> features = new System.Collections.ObjectModel.Collection<Feature>();
            
            if (feature is your special feature)
            {
                return features;
            }
            else
            {
                return base.CalculateVertexControlPointsCore(feature);
            }
        }
    } 
 
  
 Regards, 
  
 Don

thank you, it is working good

Hi Miri, 
  
 I am glad to hear that works for you. 
  
 Regards, 
  
 Don