Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Possible Duplicate:
Unproject Radius with Openlayers with CRS:84 Projection

I allow a user to draw a circle in Openlayers.

I created an alert to show the radius of the circle.

I now need to convert the radius to kilometers.

For example 0.001788057579325097 (How many kilometers is this)

How do I change this to kilometers? I think its just the decimals that is the problem.

      // The Drag function is now made and called
         // Add Drag
     drag = new OpenLayers.Control.DragFeature(polygonLayer, {
     autoActivate: true,
     onComplete: displayRadius
     });


 function displayRadius(circle) {
     var area = circle.geometry.getArea();
     var radius = 0.565352 * Math.sqrt(area);
     alert(radius);
      }
share|improve this question

marked as duplicate by whuber Mar 19 '12 at 20:51

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

    
What projection do you use? –  drnextgis Feb 29 '12 at 11:29
    
@drnextgis EPSG:4326 for my one map and CRS:84 for my other map –  Blake Loizides Feb 29 '12 at 12:02
    
Can you show some code? I'll tell you what that number that is if you show me the code that is producing it. –  CaptDragon Feb 29 '12 at 13:48
2  
A figure consisting of points at a constant number of degrees from a center is not a circle! The length of a decimal degree changes with direction (and is usually noticeably longer in the north-south direction than in the east-west direction). A value like 0.001788... decimal degrees will range from 200 meters down to 200 * cos(latitude) meters. The solution is to use an appropriate projected coordinate system for drawing the circle so that your user gets close to a true circle rather than a (grievously) distorted one. –  whuber Feb 29 '12 at 16:54
1  
I'm a chronic liar. getArea() will return whatever map units you have chosen. In my case it's meters because i have meters as my map units which i have specified in my constructor like this: ...maxResolution: 156543, units: 'm', projection: "EPSG:41001"... –  CaptDragon Feb 29 '12 at 20:43
show 2 more comments

1 Answer 1

You can create a path geometry from center to some point of your cercle and get the distance of the path (similar to what measure control does).

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.