# new ClusterRenderer(options)
èšç±»æ¸²æŸ“器,多个点èšé›†åœ¨ä¸€èµ·ï¼Œä¼šå½¢æˆä¸€ä¸ªç‚¹ç¬¦å· 使用须知: 1ã€æŽ¨è使用点è¦ç´ 图层作为èšç±»çš„æ•°æ®ï¼ŒåŒºå’Œçº¿ä¼šé¢å¤–å¢žåŠ è®¡ç®—èšç±»ç‚¹çš„工作é‡ï¼Œå½±å“åŠ è½½çš„æ€§èƒ½ã€‚ 2ã€æŽ¨è使用空间å‚考系为地ç†ç³»çš„æ•°æ®ï¼Œå…¶ä»–投影系会在å‰ç«¯å†…部处ç†å投逻辑,影å“åŠ è½½çš„æ€§èƒ½ã€‚
傿•°
åç§° | 类型 | 默认值 | æè¿° |
---|---|---|---|
options |
Object | æž„é€ å‚æ•° |
|
radius |
Number | 80 | èšåˆåŠå¾„,å•ä½åƒç´ |
clusterBoundSymbol |
SimpleFillSymbol | èšåˆè¾¹ç•Œï¼Œæ˜¾ç¤ºèšåˆåŒºåŸŸçš„范围,仅支æŒéƒ¨åˆ†æ ·å¼ |
|
clusterInfos |
Array.<(UniqueValueClusterlnfo|ClassBreakClusterlnfo)> | èšåˆä¿¡æ¯ï¼Œæè¿°èšåˆç‚¹æ•°é‡åŒºé—´å†…显示的符å·ä¿¡æ¯ã€‚ |
|
defaultSymbol |
Symbol | 默认的èšåˆç‚¹ç¬¦å·ï¼Œç›®å‰ä»…支æŒSimpleMarkerSymbol|PcitureMarkerSymboléƒ¨åˆ†æ ·å¼,䏿”¯æŒçº¿å›¾å±‚ |
|
maxScale |
Number | 20 | 最大èšç±»æ¯”例尺,å•ä½ä¸ºm,超过这个比例尺范围ä¸è¿›è¡Œèšç±» |
isExpandOnClick |
Boolean | true | 点击èšç±»ç‚¹æ˜¯å¦å±•å¼€ |
isHoverShowBound |
Boolean | false | é¼ æ ‡æ‚¬åœæ˜¾ç¤ºèšç±»è¾¹ç•Œ |
defaultLabelSymbol |
TextSymbol | 默认的文å—ç¬¦å· |
|
defaultLabelExpressionInfo |
Object | null | 默认的文å—表达å¼ã€‚以$cluster_count表示èšç±»ç‚¹æ•°é‡ï¼Œä¾‹å¦‚ { expression: "$cluster_count + '个'"}。 |
|
valueExpressionTitle |
String | å—æ®µè¡¨è¾¾å¼æè¿° |
|
valueExpression |
String | '$cluster_count' | å—æ®µè¡¨è¾¾å¼ï¼Œé»˜è®¤å–'$cluster_count',表示按èšç±»ç°‡ä¸Šç‚¹çš„æ•°é‡ä½œä¸ºåˆ†æ®µçš„便® |
minHybridClusterCount |
Number | 0 | æœ€å°æ··åˆèšåˆæ•°é‡ã€‚大于ç‰äºŽæ¤å€¼è¿›è¡Œæ··åˆèšç±»ï¼Œå°äºŽæ¤å€¼åˆ™ä¼˜å…ˆä»¥åˆ†ç»„类型èšç±»ã€‚ |
deconflictionStrategy |
String | 'none' | èšç±»å†²çªç–略,默认为'none'。'none'表示ä¸è®¾ç½®å†²çªè§£å†³ç–略,'static'表示采用默认的冲çªè§£å†³ç–略。 |
支æŒå¦‚下方法:
[1ã€é€šè¿‡jsonæž„é€ ClusterRenderer对象][2ã€å¯¼å‡ºjson对象]
[3ã€å…‹éš†ClusterRenderer对象]
示例
// ES5引入方å¼
const { ClusterRenderer } = zondy.renderer
const { TextSymbol, SimpleMarkerSymbol } = zondy.symbol
// ES6引入方å¼
import { ClusterRenderer, TextSymbol, SimpleMarkerSymbol } from "@mapgis/webclient-common"
// åˆå§‹åŒ–èšç±»æ¸²æŸ“器对象
const clusterRenderer = new ClusterRenderer({
// èšç±»å‚æ•°
clusterInfos:[
// èšç±»åˆ†æ®µ1
{
// 最å°èšç±»æ•°é‡
minValue: 0,
// 最大èšç±»æ•°é‡
maxValue: 2,
// èšç±»æ–‡å—æ ·å¼
labelSymbol: new TextSymbol({
// æ–‡å—颜色
color:'#ffffff',
// æ–‡å—大å°
font:{
size:20
},
}),
// èšç±»ç¬¦å·æ ·å¼
symbol: new SimpleMarkerSymbol({
// 符å·é¢œè‰²
color: 'rgba(112, 0, 255, 0.6)',
// 符å·å¤§å°
size: 20,
// 符å·å¤–è¾¹çº¿æ ·å¼
outline: {
// 外边线颜色
color: 'rgba(122, 211, 22, 0.6)',
// 外边线宽度
width: 4
}
})
},
// èšç±»åˆ†æ®µ2
{
// 最å°èšç±»æ•°é‡
minValue: 2,
// 最大èšç±»æ•°é‡
maxValue: 6,
// èšç±»æ–‡å—æ ·å¼
labelSymbol:new TextSymbol({
// æ–‡å—颜色
color: '#000000',
// æ–‡å—大å°
font: {
size: 12
},
}),
// èšç±»ç¬¦å·æ ·å¼
symbol: new SimpleMarkerSymbol({
// 符å·é¢œè‰²
color: 'rgba(240, 194, 12, 0.6)',
// 符å·å¤§å°
size: 30,
// 符å·å¤–è¾¹çº¿æ ·å¼
outline: {
// 外边线颜色
color: 'rgba(241, 211, 87, 0.6)',
// 外边线宽度
width: 5
}
})
},
// èšç±»åˆ†æ®µ3
{
// 最å°èšç±»æ•°é‡
minValue: 6,
// 最大èšç±»æ•°é‡
maxValue: 10,
// èšç±»æ–‡å—æ ·å¼
labelSymbol: new TextSymbol({
// æ–‡å—颜色
color: '#000000',
// æ–‡å—大å°
font: {
size: 12
},
}),
// èšç±»ç¬¦å·æ ·å¼
symbol: new SimpleMarkerSymbol({
// 符å·é¢œè‰²
color: 'rgba(255, 0, 0, 0.6)',
// 符å·å¤§å°
size: 30,
// 符å·å¤–è¾¹çº¿æ ·å¼
outline: {
// 外边线颜色
color: 'rgba(111, 111, 111, 0.6)',
// 外边线宽度
width: 5
}
})
}
]
})
二维Leaflet上èšç±»çš„实现ä¾èµ–于Leaflet.markerclusteræ’ä»¶
链接地å€:https://github.com/Leaflet/Leaflet.markercluster
const layer = new IGSFeatureLayer({
url: "http://192.168.82.89:8089/igs/rest/services/Map/%E6%B9%96%E5%8C%97%E7%9C%814326/FeatureServer/1-0",
renderer: new ClusterRenderer({
// èšç±»å‚æ•°
clusterInfos: [
// èšç±»åˆ†æ®µ2
{
// 最å°èšç±»æ•°é‡
minValue: 1,
// 最大èšç±»æ•°é‡
maxValue: 6,
// èšç±»æ–‡å—æ ·å¼
labelSymbol: new TextSymbol({
// æ–‡å—颜色
color: "#000000",
// æ–‡å—大å°
font: {
size: 12,
},
}),
// èšç±»ç¬¦å·æ ·å¼
symbol: new SimpleMarkerSymbol({
// 符å·é¢œè‰²
color: "rgba(240, 194, 12, 0.6)",
// 符å·å¤§å°
size: 30,
// 符å·å¤–è¾¹çº¿æ ·å¼
outline: {
// 外边线颜色
color: "rgba(241, 211, 87, 0.6)",
// 外边线宽度
width: 5,
},
}),
},
// èšç±»åˆ†æ®µ3
{
// 最å°èšç±»æ•°é‡
minValue: 6,
// 最大èšç±»æ•°é‡
maxValue: 300,
// èšç±»æ–‡å—æ ·å¼
labelExpressionInfo: {
expression: "$cluster_count + '个'",
},
labelSymbol: new TextSymbol({
// æ–‡å—颜色
color: "#000000",
// æ–‡å—大å°
font: {
size: 12,
},
}),
// èšç±»ç¬¦å·æ ·å¼
symbol: new SimpleMarkerSymbol({
// 符å·é¢œè‰²
color: "rgba(255, 0, 0, 0.6)",
// 符å·å¤§å°
size: 30,
// 符å·å¤–è¾¹çº¿æ ·å¼
outline: {
// 外边线颜色
color: "rgba(111, 111, 111, 0.6)",
// 外边线宽度
width: 5,
},
}),
},
],
isExpandOnClick: true,
isHoverShowBound: true,
defaultLabelSymbol: new TextSymbol({
// æ–‡å—颜色
color: "#ff0000",
// æ–‡å—大å°
font: {
size: 20,
family: "SimHei",
},
haloColor: "#ffffff",
haloSize: 3,
}),
defaultLabelExpressionInfo: { expression: "$cluster_count + '个'"},
})
})
map.add(layer)
layer.on("layerview-created", (result) => {
console.log("åŠ è½½å®Œæ¯•:", result.layer);
//视点跳转
view.flyTo({
extent: result.layer.extent,
});
const layer = result.layer;
const layerView = result.layerView;
// 获å–innerLayer,这个innerLayer就是Leaflet.markerclusteræ’ä»¶ä¸çš„L.markerClusterGroup图层,相关apiå¯ä»¥å‚考上述链接
const innerLayer = layerView.innerLayer;
});
继承关系
æˆå‘˜å˜é‡
æˆå‘˜å˜é‡æ¦‚è¿°
åç§° | 类型 | æè¿° |
---|---|---|
clusterBoundSymbol |
SimpleFillSymbol
|
|
clusterInfos |
Array.<(UniqueValueClusterlnfo|ClassBreakClusterlnfo)>
|
|
defaultLabelExpressionInfo |
Object
|
null
|
|
defaultLabelSymbol |
TextSymbol
|
|
defaultSymbol |
Symbol
|
|
id |
String
|
|
isExpandOnClick |
Boolean
|
|
isHoverShowBound |
Boolean
|
|
maxScale |
Number
|
|
radius |
Number
|
|
type |
String
|
|
æˆå‘˜å˜é‡è¯¦æƒ…
方法
方法概述
åç§° | 返回值类型 | æè¿° |
---|---|---|
fromJSON |
ClusterRenderer
|
|
clone |
ClusterRenderer
|
|
fromJSON |
|
|
toJSON |
Object
|
|
方法详情
# static fromJSON(json)
傿•°
åç§° | 类型 | æè¿° |
---|---|---|
json |
Object | json对象 |
# fromJSON(json)
å°†JSONæ ¼å¼çš„æ¸²æŸ“规则转æ¢ä¸ºJS对象
傿•°
åç§° | 类型 | æè¿° |
---|---|---|
json |
Object | 渲染规则的实例化JSON |
- Inherited From: