ThinkGeo.com    |     Documentation    |     Premium Support

How to identify the right Shape Type?

In Our application, the shapes are drawn/edited on the client side to help improve the performance. On the serverside when I access the drawn shapes from the EditOverLay layer only 3 shape types are being recognized –


Point
Line
Polygon
 
I was wondering if there is a way to recognize the actual shapes drawn by the user.
For Eg:


        
  • If the user draws a Rectangle, Ellipse or a Square. Is there a way to get the Shape information from EditOverLay or any other layer??

  •     
  • If the shape is edited on the client side, is there a way to get the information that the shape got edited and what category the shape currently belongs to?


 
The shapes - Circle, Rectangle, Ellipse, Polygon or any edited shapes currently fall into the Polygon category. I am looking for a way to differentiate these shapes.
 
Any assistance in this matter is truly appreciated..









Hi GNak,


 


I’m afraid we can’t do it in the current version, because it doesn’t support circle or rectangle in OGC standard, so we have no idea about circle but only polygon. For example, after drawing a circle on client side, it will be a polygon when passing back to server. There are a couple ways to work it around though, here attached is a solution which posts the shape type in string back to server, then fills the shape type into the features in EditOverlay, hope it helps. 


 


Any question please let us know.


 


Thanks,


 


Howard




600-Post5598.zip (99.1 KB)

Thank-you for the information and the sample, it definitely helped.  
  
 I have a question though - Say if the user draws 5 shapes  
 How can I make sure that the shapetype saved in the HTML control is for the specific shape?  
 Is there a way to include the feature ID for the specific shape, while saving the shape information on the client side? 
  
 I tried with featuer.id in the method - onClientDrawEnd but to no avail. There should be another way that I may not be aware of. 
  
 I was wondering if there is a way to get the ShapeType associtaed with that feature or shape drawn and then access the information on the serverside for further manipulation.  
  
 I look forward to hear from you.  
  
 Thanks again for your help !









Hi GNak,


 


The shape types added to the HTML control is with the same order as adding features, so generally, the types and the features are synchronized. 


 


I think your idea is better though to include the featureID for the specific shape. The client and server API is not totally the same, just change the property from feature.id to feature.fid in onClientDrawEnd method on client side, you’ll get the feature with correct id on server side. 


 


Thanks


 


Howard




Hi Howard, 
  
 Thank-you for the information, it was extremely helpful. I am able to get the FeatureId using the feature.fid on the client side.  
  
 In my application I am interested in the Fid on the edit shapes that happen on the client side. I get the fid most of the times but there are scenarios when the fid is blank or Null.  
 Eg: When you draw a new shape and then immediately edit it.  
 Put an alert on ClientEndEdit for feature.fid, it will display blank or null. 
 This happens only on the first edit, consecutive edits would provide the fid information. 
  
 Is there a work around for this? I need to have the fid information in my application esp. on a shape edit. 
  
 I eagerly look forward to hear from you.









Hi GNak,


 


I couldn’t recreate your issue. I was wondering that in the last post, the Fid is set in the OnClientDrawEnd function immediately after your drawing action is completed, but why the Fid is missing when you edit it?


 


Please see the attached sample, if something I misunderstand, please provide more information.


 


Any questions please let me know.


 


Thanks,


 


Howard




611-Post5598.zip (95.8 KB)