Maps 限制距离中心点10公里的区域-OpenLayers地图

Maps 限制距离中心点10公里的区域-OpenLayers地图,maps,openlayers,Maps,Openlayers,我正在使用OpenLayers库显示地图上的一些特定点。我只想显示距离中心点10公里的区域。有人能帮我做这个吗 下面是我的代码片段 var映射=新映射({ 图层:[ 新瓦工({ 资料来源:新OSM() }), 矢量层 ], 目标:“地图”, 视图:新视图({ 中心:变换([19.83752162,52.09696925],'EPSG:4326','EPSG:3857'), 缩放:12, }) }); 要实现这一点,必须在地图初始化之前进行一些预处理 1-从中心坐标生成特征 let pointFe

我正在使用OpenLayers库显示地图上的一些特定点。我只想显示距离中心点10公里的区域。有人能帮我做这个吗

下面是我的代码片段

var映射=新映射({
图层:[
新瓦工({
资料来源:新OSM()
}),
矢量层
],
目标:“地图”,
视图:新视图({
中心:变换([19.83752162,52.09696925],'EPSG:4326','EPSG:3857'),
缩放:12,
})
});

要实现这一点,必须在地图初始化之前进行一些预处理

1-从中心坐标生成特征

let pointFeature = new ol.Feature(
    new ol.geom.Point(transform([19.83752162, 52.09696925], 'EPSG:4326', 'EPSG:3857'))
);
2-获取上述创建特征的范围

let poitnExtent = pointFeature.getGeometry().getExtent();
3-将范围缓冲到所需半径

let bufferedExtent = new ol.extent.buffer(poitnExtent, raduis goes here (In meters));
4-使用此缓冲区来初始化映射

var map = new Map({
  layers: [
    new TileLayer({
      source: new OSM()
    }),
    vectorLayer
  ],
  target: 'map',
  view: new View({
    center: transform([19.83752162, 52.09696925], 'EPSG:4326', 'EPSG:3857'),
    extent: bufferedExtent,
    zoom: 12,

  })
});

要实现这一点,必须在映射初始化之前进行一些预处理

1-从中心坐标生成特征

let pointFeature = new ol.Feature(
    new ol.geom.Point(transform([19.83752162, 52.09696925], 'EPSG:4326', 'EPSG:3857'))
);
2-获取上述创建特征的范围

let poitnExtent = pointFeature.getGeometry().getExtent();
3-将范围缓冲到所需半径

let bufferedExtent = new ol.extent.buffer(poitnExtent, raduis goes here (In meters));
4-使用此缓冲区来初始化映射

var map = new Map({
  layers: [
    new TileLayer({
      source: new OSM()
    }),
    vectorLayer
  ],
  target: 'map',
  view: new View({
    center: transform([19.83752162, 52.09696925], 'EPSG:4326', 'EPSG:3857'),
    extent: bufferedExtent,
    zoom: 12,

  })
});

您可以在视图上设置maxResolution选项(所需的值将取决于地图大小)。maxResolution可防止缩小,但仍允许平移。如果您不想平移超过10km,可以在视图上设置一个范围选项(仅在OpenLayers 6中)。您可以在视图上设置一个maxResolution选项(所需的值将取决于您的地图szie)。maxResolution可防止缩小,但仍允许平移。如果您永远不想平移超过10km,可以在视图上设置一个范围选项(仅在OpenLayers 6中)。您甚至可以跳过创建特征,因为仅几何图形就足够了,例如:
const pointExtent=new ol.geom.Point(transform([19.83752162,52.09696925],'EPSG:4326','EPSG:3857')).getExtent()注意3857中的距离,它们是不可靠的,尤其是在北纬地区,如OPG中,您甚至可以跳过创建特征,因为仅几何图形就足够了,例如:
const pointExtent=new ol.geom.Point(transform([19.83752162,52.09696925],'EPSG:4326','EPSG:3857')).getExtent()注意3857中的距离,它们不可靠,尤其是在北纬地区,如OP