我想让用户能够找出他们从兴趣点到地图半径边缘的距离。我还想将该单位转换为公里、米或海里。我了解所有多边形都以米为单位绘制。我正在使用fromCircle
将圆转换为几何多边形。请帮我。我记得getbound()
openlayers 2中有一个函数,但我找不到它来计算从兴趣点或地图中心到边缘的距离。我已经通过 stackoverflow 搜索了几天,但找不到确切的需求或与新版本的 openlayers 一起工作的解决方案。
var vectorSource = vectorLayer.getSource();
var centerLongitudeLatitude = map.getView().getCenter();
var viewProjection = map.getView().getProjection();
var pointResolution = olProj.getPointResolution(viewProjection, 1, centerLongitudeLatitude);
console.log('pointResolution', pointResolution)
function addCirclePolygon(coordinates, radius=1600) {
var _radius = radius/pointResolution;
// var circle = new Feature(new Circle(coordinates, _radius));
var circle = new Feature(new Circle(coordinates, _radius));
circle.setStyle(new Style({
stroke: new Stroke({
color: 'blue',
width: 3
}),
fill: new Fill({
color: 'rgba(0, 0, 255, 0.1)'
})
}));
var geom=circle.get('geometry');
if (circle instanceof Circle) {
circle.set('geometry', fromCircle(geom));
}
vectorSource.addFeature(circle);
}