类ol.geom.Circle的方法getRadius()返回圆的半径; 如何将此值转换为米?
我使用特定的投影在地图上绘制一个圆圈(例如球形墨卡托,LambertIIe等) 然后我将这个几何转换为度数来处理进一步的处理,例如测试一个点(以度为单位)是否在这个圆圈内
因此,从度数几何中获得半径始终在同一单位(米)中将是有用的
提前致谢
让 -
答案 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);
}