# new ClusterRenderer(options)
èšç±»æ¸²æŸ“器,多个点èšé›†åœ¨ä¸€èµ·ï¼Œä¼šå½¢æˆä¸€ä¸ªç‚¹ç¬¦å·
傿•°
åç§° | 类型 | 默认值 | æè¿° |
---|---|---|---|
options |
Object | æž„é€ å‚æ•° |
|
radius |
Number | 80 | èšåˆåŠå¾„,å•ä½åƒç´ |
clusterBoundSymbol |
SimpleFillSymbol | èšåˆè¾¹ç•Œï¼Œæ˜¾ç¤ºèšåˆåŒºåŸŸçš„范围,仅支æŒéƒ¨åˆ†æ ·å¼ |
|
clusterInfos |
Array.<ClusterInfo> | èšåˆä¿¡æ¯ï¼Œæè¿°èšåˆç‚¹æ•°é‡åŒºé—´å†…显示的符å·ä¿¡æ¯ã€‚ |
|
defaultSymbol |
Symbol | 默认的èšåˆç‚¹ç¬¦å·ï¼Œç›®å‰ä»…支æŒSimpleMarkerSymbol|PcitureMarkerSymboléƒ¨åˆ†æ ·å¼,䏿”¯æŒçº¿å›¾å±‚ |
|
maxScale |
Number | 20 | 最大èšç±»æ¯”例尺,å•ä½ä¸ºm,超过这个比例尺范围ä¸è¿›è¡Œèšç±» |
isExpandOnClick |
Boolean | true | 点击èšç±»ç‚¹æ˜¯å¦å±•å¼€ |
isHoverShowBound |
Boolean | false | é¼ æ ‡æ‚¬åœæ˜¾ç¤ºèšç±»è¾¹ç•Œ |
defaultLabelSymbol |
TextSymbol | 默认的文å—ç¬¦å· |
|
defaultLabelExpressionInfo |
Object | null | 默认的文å—表达å¼ã€‚以$cluster_count表示èšç±»ç‚¹æ•°é‡ï¼Œä¾‹å¦‚ { expression: "$cluster_count + '个'"}。 |
支æŒå¦‚下方法:
[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://webclient.smaryun.com: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.<ClusterInfo>
|
|
defaultLabelExpressionInfo |
Object
|
null
|
|
defaultLabelSymbol |
TextSymbol
|
|
defaultSymbol |
Symbol
|
|
isExpandOnClick |
Boolean
|
|
isHoverShowBound |
Boolean
|
|
maxScale |
Number
|
|
radius |
Number
|
|
type |
String
|
|
æˆå‘˜å˜é‡è¯¦æƒ…
# clusterInfos
èšåˆä¿¡æ¯ï¼Œæè¿°èšåˆç‚¹æ•°é‡åŒºé—´å†…显示的符å·ä¿¡æ¯ã€‚
方法
方法概述
åç§° | 返回值类型 | æè¿° |
---|---|---|
fromJSON |
ClusterRenderer
|
通过jsonæž„é€ ClusterRenderer对象 |
clone |
ClusterRenderer
|
克隆ClusterRenderer对象 |
fromJSON |
|
|
toJSON |
Object
|
导出json对象 |
方法详情
# static fromJSON(json)
傿•°
åç§° | 类型 | æè¿° |
---|---|---|
json |
Object | json对象 |
# fromJSON(json)
å°†JSONæ ¼å¼çš„æ¸²æŸ“规则转æ¢ä¸ºJS对象
傿•°
åç§° | 类型 | æè¿° |
---|---|---|
json |
Object | 渲染规则的实例化JSON |
- Inherited From: