Hello, I'm trying to build a function that lets me draw a 'circle' (40-sided polygon) and then get the coordinates of it's center and get it's radius.
Drawing the circle is pretty straightforward (I just copied the code from http://openlayers.org/dev/examples/regular-polygons.html). Getting the Centroid and handling the sketchcomplete-event works (with Fabian's help: http://osgeo-org.1803224.n2.nabble.com/Get-infos-on-newly-created-polygo n-with-Draw-Feature-td5216851.html#a5216851). I'm still stuck with getting the radius. I'm using a random point on the circle with var aussen = new OpenLayers.Geometry.Point(event.feature.geometry.components[0].component s[0].x,event.feature.geometry.components[0].components[0].y); (though I'm not sure if that's the best way). And try to use getGeodesicLength to get the distance (I need it in meters/km). I tried this: function getRingCenter(event) { var proj = map.getProjectionObject(); var mitte = event.feature.geometry.getCentroid(); var aussen = new OpenLayers.Geometry.Point(event.feature.geometry.components[0].component s[0].x,event.feature.geometry.components[0].components[0].y); var line = new OpenLayers.Geometry.LineString([mitte, aussen]); alert (line.getGeodesicLength(proj)); alert (line.getGeodesicLength(proj)* this.map.getScale() ); alert (this.map.getUnits()); } I don't understand what I get in the first alert, but it seems that it has to do with the current display size/zoom level, so I tried to multiply it with getScale(). According to getUnits() the result should bei meters - but the numbers seem to be random. I'm a little desperate - help is very much appreciated. Chris
_______________________________________________ Users mailing list [email protected] http://openlayers.org/mailman/listinfo/users
