在Openlayers中,我如何获得以英里为单位的圆的半径?

时间:2013-02-08 16:46:23

标签: javascript openlayers openstreetmap

我在Openlayers的地图上绘制一个圆圈,我想以英里为单位计算圆的半径并显示它。我该怎么做?

3 个答案:

答案 0 :(得分:1)

您可以使用以下代码解决此问题:

//vectorLayer.features[0] --> Your circle feature
var central = vectorLayer.features[0].geometry.getCentroid();
var point1 = new OpenLayers.Geometry.Point(central.x, central.y);

var circlePoint = vectorLayer.features[0].geometry.components[0].components[1];
var point2 = new OpenLayers.Geometry.Point(circlePoint.x, circlePoint.y);

var length = point1.distanceTo(point2);

console.log(length * 0.0006213712)

我希望它可以帮助你...

答案 1 :(得分:1)

以下是我最终如何做到这一点。

var measure = event.measure;
var areaSquareMiles =  measure * 0.386102;
var radius = 0.565352 * Math.sqrt(areaSquareMiles);

答案 2 :(得分:0)

不确定我是否收到您的问题,但如果您有直径则不应该太难: radius=diameter/2 如果您只有圆的点并想要找出半径,则可以通过计算点之间的最大距离来估算直径。根据所需的精度(插值),有不同的解决方案。希望这会有所帮助。