Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Openlayers 3-群集和;作为组合的线条_Javascript_Geocoding_Openlayers 3 - Fatal编程技术网

Javascript Openlayers 3-群集和;作为组合的线条

Javascript Openlayers 3-群集和;作为组合的线条,javascript,geocoding,openlayers-3,Javascript,Geocoding,Openlayers 3,我的目标是在视图中聚集许多坐标。这些点之间也可以有“连接”,我想将其显示为线字符串 我尝试了很多,但是我找不到一种方法将这些线集成到集群中 我目前(稳定)的状态可以在这里看到: 如果这两个点“合并”到集群中,那么如果连接消失或者是集群本身的一部分,那就太好了 有人能帮我吗 我试图将矢量线作为源添加到集群中 或者通过addFeature 我认为您当前无法向集群添加行。Openlayers 3(从V3.14.2开始)群集只允许对点进行群集。如果查看ol.source.Cluster的源代码,会

我的目标是在视图中聚集许多坐标。这些点之间也可以有“连接”,我想将其显示为线字符串

我尝试了很多,但是我找不到一种方法将这些线集成到集群中

我目前(稳定)的状态可以在这里看到:

如果这两个点“合并”到集群中,那么如果连接消失或者是集群本身的一部分,那就太好了

有人能帮我吗

我试图将矢量线作为源添加到集群中

或者通过addFeature


我认为您当前无法向集群添加行。Openlayers 3(从V3.14.2开始)群集只允许对点进行群集。如果查看ol.source.Cluster的源代码,会有一条语句断言其中的所有功能都必须是点。 (来自)

ol.source.Cluster.prototype.createCluster\uux=函数(功能){
var-length=features.length;
var形心=[0,0];
对于(变量i=0;i
我认为最好的办法是在聚集点时,以某种方式将线层的可见性更改为false

编辑:但是,在下一版本的ol中,这可能会发生更改,一个包含geometryFunction选项的pull请求()已被合并

var clusterSource = new ol.source.Cluster({
  distance: 20,
  source: vectorDevices
});
var clusterSource = new ol.source.Cluster({
  distance: 20,
  source: [vectorDevices, vectorLine]
});
clusterSource.addFeature(vectorLine);
ol.source.Cluster.prototype.createCluster_ = function(features) {
  var length = features.length;
  var centroid = [0, 0];
  for (var i = 0; i < length; i++) {
    var geometry = features[i].getGeometry();
    goog.asserts.assert(geometry instanceof ol.geom.Point,
        'feature geometry is a ol.geom.Point instance');
    var coordinates = geometry.getCoordinates();
    ol.coordinate.add(centroid, coordinates);
  }
  ol.coordinate.scale(centroid, 1 / length);

  var cluster = new ol.Feature(new ol.geom.Point(centroid));
  cluster.set('features', features);
  return cluster;
};