如何在openlayers 6中群集不同类型的几何体?
我需要对一些具有不同类型几何体(点、线串和多边形)的特征进行聚类,如何在openlayers 6中群集不同类型的几何体?,openlayers,openlayers-6,Openlayers,Openlayers 6,我需要对一些具有不同类型几何体(点、线串和多边形)的特征进行聚类, 哪种方法最好?此外,当我缩放到单个要素时,这是使用要素本身适当样式的最佳方式(如多边形、多边形等)。簇源必须具有处理非点要素的几何函数。最基本的方法是返回数据块中心的点 geometryFunction: functionfunction(feature) { return new Point(getCenter(feature.getGeometry().getExtent())); } 也可以使用标签点(线串的中点和多
哪种方法最好?此外,当我缩放到单个要素时,这是使用要素本身适当样式的最佳方式(如多边形、多边形等)。簇源必须具有处理非点要素的几何函数。最基本的方法是返回数据块中心的点
geometryFunction: functionfunction(feature) {
return new Point(getCenter(feature.getGeometry().getExtent()));
}
也可以使用标签点(线串的中点和多边形的内部点)。对于样式设置,如果簇包含多个要素,但如果该簇包含该要素几何图形的单个要素样式,则样式功能应设置为簇样式
var clusterLayer = new Vectorlayer({
source: new ClusterSource({
distance: distance,
source: vectorSource,
geometryFunction: functionfunction(feature) {
var geometry = feature.getGeometry();
var type = geometry.getType();
if (type == 'Point') {
return geometry;
if (type == 'LineString') {
return new Point(geometry.getCoordinateAt(0.5));
} else if (type == 'Polygon') {
return geometry.getInteriorPoint();
} else {
return new Point(getCenter(feature.getGeometry().getExtent()));
}
}
}),
style: function(feature) {
var features = feature.get('features');
if (features.length > 1) {
return clusterStyle;
else {
defaultStyles.setGeometry(features[0].getGeometry());
return defaultStyles;
}
}
});
谢谢,它起作用了。