如何使用getRadius()以米为单位获取圆的光线

时间:2015-08-04 09:46:16

标签: openlayers-3

类ol.geom.Circle的方法getRadius()返回圆的半径; 如何将此值转换为米?

我使用特定的投影在地图上绘制一个圆圈(例如球形墨卡托,LambertIIe等) 然后我将这个几何转换为度数来处理进一步的处理,例如测试一个点(以度为单位)是否在这个圆圈内

因此,从度数几何中获得半径始终在同一单位(米)中将是有用的

提前致谢

让 -

2 个答案:

答案 0 :(得分:1)

您可以使用ol.proj.METERS_PER_UNIT表格获取以米为单位的半径:

var units = map.getView().getProjection().getUnits();
var radiusM = circle.getRadius() * ol.proj.METERS_PER_UNIT[units];

答案 1 :(得分:0)

我使用以下方法获取半径(getFirstCoordinate引用中心,getLastCoordinate引用外围点):

var wgs84Sphere = new ol.Sphere(6378137);

var center=circle.getFirstCoordinate();
var ray=getDistance(center[0],center[1],circle.getLastCoordinate()[0],circle.getLastCoordinate()[1]);


// getDistance returns the distance between 2 points (source : http://openlayers.org/en/v3.7.0/examples/measure.html)

function getDistance(long1,lat1,long2,lat2) {
    var c1 = [long1,lat1];
    var c2 = [long2,lat2];
    return wgs84Sphere.haversineDistance(c1,c2);
}