openlayers群集策略-为1个功能的群集显示自定义图标

openlayers群集策略-为1个功能的群集显示自定义图标,openlayers,Openlayers,我有一个页面,显示从kml文件导入的矢量层(基本上与)。它工作得非常好,既可以只使用固定策略,也可以同时使用固定策略和集群策略 我想创建一个混合显示,而“一个功能的集群”将显示原始的自定义图标,例如,包含在img/arrowRed.png下的KML文件中 现在,如果我使用集群策略,将使用默认图标(黄色磁盘)显示1个集群(功能) 我宁愿不使用任何不是标准openlayers的插件或库有什么建议吗? 下面是使用集群的原始javascript代码的一部分(删除集群策略声明新建OpenLayers.st

我有一个页面,显示从kml文件导入的矢量层(基本上与)。它工作得非常好,既可以只使用固定策略,也可以同时使用固定策略和集群策略

我想创建一个混合显示,而“一个功能的集群”将显示原始的自定义图标,例如,包含在
img/arrowRed.png
下的KML文件中

现在,如果我使用集群策略,将使用默认图标(黄色磁盘)显示1个集群(功能)

我宁愿不使用任何不是标准openlayers的插件或库有什么建议吗?

下面是使用集群的原始javascript代码的一部分(删除集群策略声明
新建OpenLayers.strategy.cluster()
和自定义图标显示得很好):

请参阅下面的客户端自定义图标(绿色标记)让位于群集默认图标(黄色磁盘)

在以下位置找到解决方案:

将群集策略更改为1以上。上述守则将成为:

var clusterStrategy = new OpenLayers.Strategy.Cluster({ distance: 35, threshold: 2 });
var urlKMLClient = 'KMLClientsAll.kml'; 
var layerKMLClient = new OpenLayers.Layer.Vector("Clients", {
        strategies: [new OpenLayers.Strategy.Fixed(), clusterStrategy, refresh],
        protocol: new OpenLayers.Protocol.HTTP({
            url: urlKMLClient,
            format: new OpenLayers.Format.KML({
                extractStyles: true, 
                extractAttributes: true,
                maxDepth: 2
            })
        })
    }); 

使用:
newopenlayers.Strategy.Cluster({threshold:2})
这允许对不在集群中的点进行隔离

(重复了GIS论坛中同一问题的答案)

var clusterStrategy = new OpenLayers.Strategy.Cluster({ distance: 35, threshold: 2 });
var urlKMLClient = 'KMLClientsAll.kml'; 
var layerKMLClient = new OpenLayers.Layer.Vector("Clients", {
        strategies: [new OpenLayers.Strategy.Fixed(), clusterStrategy, refresh],
        protocol: new OpenLayers.Protocol.HTTP({
            url: urlKMLClient,
            format: new OpenLayers.Format.KML({
                extractStyles: true, 
                extractAttributes: true,
                maxDepth: 2
            })
        })
    });