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

问题描述:

我在Openlayers的地图上画一个圆圈,我想计算一英里的圆的半径并显示它。我该怎么做呢?在Openlayers中,我如何获得英里的圆的半径?

以下是我终于实现了它。

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

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

就可以解决这个问题,下面的代码:

//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) 

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