ThinkGeo.com    |     Documentation    |     Premium Support

Polygon operation issues from OpenLayers to Web Edition

Hello,


I wrote some javascript functions based on OpenLayers 2.7 to implement polygon operations, including draw a new polygon, edit a polygon and remove a polygon from a map. For each operation, it will catch the event and get the new vertics of the polygon. Also it uses stylemap to select different colors when the mouse move in and move out a polygon. 


It works fine when I run it standalone.  But, it does not work properly after I ported the code to my project which is based on ThinkGeo Web Edition.  Such as,  some codes does not work ; polygon vertics can not be accessed; the vertics points still stay on the map after remove a polygon; the SelectFeature with stylemap can causes the modification event when the mouse move in a polygon.


I put my code in the attachment and indicate the problem lines with comments.


Thanks


Yongfeng


   



1493-ThinkGeo_question1.html (5.82 KB)

Hi Yongfeng,


I think these functions are some breaking changes between version 2.7 and 2.8 of OpenLayers (you can find them marked ‘Deprecated’ in version 2.8), and we didn’t notice this when upgrading our WebEdition. You can take a look at the screenshot from OpenLayers 2.8 documentation.

We have added this issue to our tracking system, and it will be fixed in the next public release version. Thank you for reporting this issue to us.
Sorry for the inconvenience and any more questions please let me know.
Thanks,
Sun

 



Hi Sun,


When do you have next release? Is it coming soon?


Do you have sample javascript code to implement polygon operations in the Web Edition now?  It can draw a polygon, edit a polygon and remove a polygon.  After each operation, there is an event to catch the update and get the new polygon vertics.


Thanks


Yongfeng



Yongfeng,


I have added a screenshot of a section in OpenLayers 2.8 documentation in my last reply. In the documentation, you can find that there is a corresponding new API instead of the old one. The “onModificationStart” is changed to “beforefeaturemodified”, the “onModification” is changed to “featuremodified”, and the “onModificationEnd” is changed to “afterfeaturemodified”. In one word, to use the latest version of WebEdition, you need to use the API of OpenLayers 2.8 but not 2.7 in the client side javascript code.
Any more questions please let me know.
Thanks,
Sun

Hello Sun,


I downloaded the OpenLayers 2.8 and took out the deprecated events from my js application.


I use the OpenLayers objects in Map Suite Web Edition. When I drew a polygon, I can get the vertices. But the data is weired. I used the following code to get the vertices


 var polygonFeatures = new OpenLayers.Control.DrawFeature(polygonLayer,OpenLayers.Handler.Polygon,{'featureAdded':polygonAdded});and use the following to print the vertics


 


function polygonAdded(feature) {"vertics: " + feature.geometry);

Thanks


Yongfeng



   alert(


}But it gave the data as "POLYGON((-13671496.495913452 6296428.835841003, ...))".  It should be like "POLYGON((-123.xxxxxxx 49.xxxxxxx, ......))".


 


Do you know why and how to fix it? 


By the way, feature.geomety.getVertics() does not work in Web Editition.



Hi Yongfeng,


Did you set the map unit to meter in your application? If so, the coordinate of each point in your tracked polygon should be like “POLYGON ((-13671496.495913452 6296428.835841003, ...))”. You should set the map unit to decimal degree if you want to get the WKT of tracked polygon like “POLYGON((-123.xxxxxxx 49.xxxxxxx, ......))". 
And about the getVertices() function, you should make sure there is no spelling error in your javascript code, because this function works fine in our end. The code is like this:

feature.geometry.getVertices();

Any more questions please let me know.
Thanks,
Sun

Hi Sun,


The problem is solved in the new Web Edition 3.1.299. 


Thanks


Yongfeng



Great, please feel free to let me know if you have any more questions. 
  
 Thanks, 
  
 Sun