多边形
多边形是由环数组组成。
多边形有2D和3D两种不同的绘制方式。
1. 数据结构
1.1 多边形
interface IGraphicPolygon {
// 多边形的位置
position: number[][][]
// 样式
style: PolygonStyle|Polygon2DStyle
}
1.2 多边形样式
- 2D
interface Polygon2DStyle {
color: string
size: number
// 多边形的填充图案
pattern?: Polygon2DPattern
// 多边形的边框线
outline?: Polygon2DOutlineStyle
}
- 3D
interface PolygonStyle {
// 多边形颜色
color: string
// 文本大小
size: number
// 边框设置
edges?: PolygonEdgesStyle
}
1.3 边框设置
- 2D
interface Polygon2DOutlineStyle {
color: string,
// 线的类型
pattern?: Pattern,
}
- 3D 设置边框大小,颜色,样式,例如:3px solid #407bFF
interface PolygonEdgesStyle {
// 大小
size: number | string
// 样式
type?: string
// 颜色
color: string
}
1.4 图案
- 多边形的填充图案 共有7种图案:'solid'实线,'vertical'垂直,'horizontal'水平,'forward-diagonal'正向对角线,'diagonal-cross'对角交叉线,'cross'叉,'backward-diagonal'后向对角线
type Polygon2DPattern = 'solid' | 'vertical' | 'horizontal' | 'forward-diagonal' | 'diagonal-cross' | 'cross' | 'backward-diagonal'
- 边框线的类型 共有12种:'dash'虚线,'dash-dot'点划线,'dot'点,'long-dash'长划线, 'long-dash-dot'长划点线,'long-dash-dot-dot'长划点点线,'none'无,'short-dash'短划线,'short-dash-dot'短划点线,'short-dash-dot-dot'短划点点线,'short-dot'短点线,'solid'实线
type Pattern = 'dash' | 'dash-dot' | 'dot' | 'long-dash' | 'long-dash-dot' | 'long-dash-dot-dot' | 'none' | 'short-dash' | 'short-dash-dot' | 'short-dash-dot-dot' | 'short-dot' | 'solid'
2. 使用
2.1 定义点的位置
const position= [
[
[116.30022, 39.90056, 10],
[116.30080, 39.90056, 10],
[116.30061, 39.89986, 10],
[116.30023, 39.89986, 10],
],
]
2.2 定义绘制点的样式
有两种情况:
- 2D
const style2D = {
color: '#f1f1b8',
outline: {
size: 3,
color: 'red',
//线的类型,实线solid 虚线dash 点虚线dot 点和虚线交叉dash-dot long-dash-dot long-dash-dot-dot short-dash short-dash-dot short-dash-dot-dot short-dot 在此为实线
pattern: 'solid',
},
pattern:'solid' //solid vertical horizontal forward-diagonal diagonal-cross cross backward-diagonal
}
- 3D
const style3D = {
color: '#f1f1b8',//棱柱填充颜色
size: 20,//棱柱 高度
//棱柱边框设置 粗细 类型 颜色
edges: {
// 边框大小
size: 2,
// 边框类型 实线solid 素描sketch
type: 'solid',
//边框颜色
color: '#f3d751'
}
}
2.3 绘制图形
有两种情况:
- 使用
Polygon2D
类来绘制。
const polygon2D = new ubm.Polygon2D(position,style2D)
- 使用
Polygon3D
类来绘制。
const polygon3D = new ubm.Polygon3D(position,style3D)