# cesium-plotting-symbol
**Repository Path**: cofferlait/cesium-plotting-symbol
## Basic Information
- **Project Name**: cesium-plotting-symbol
- **Description**: plotting symbols for cesium.
- **Primary Language**: JavaScript
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 1
- **Created**: 2019-02-24
- **Last Updated**: 2021-07-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# cesium-plotting-symbol
基于cesiumn的标绘插件
## 支持图形
1. [点类型](https://github.com/renshuo/cesium-plotting-symbol/tree/master/src/Point)
1. 点
2. 3D模型
2. [线](https://github.com/renshuo/cesium-plotting-symbol/tree/master/src/Polyline)
1. 2阶bezier曲线
2. 3阶bezier曲线
3. N阶bezier曲线
4. bezier平滑线
5. 圆弧线
6. 折线
3. [多边形](https://github.com/renshuo/cesium-plotting-symbol/tree/master/src/Polygon)
1. 多边形
2. 矩形
3. 椭圆
4. 圆形
4. 其他
1. 单箭头
5. [贴图类](https://github.com/renshuo/cesium-plotting-symbol/tree/master/src/Image)
3. 红旗
## 安装
```bash
npm install cesium-plotting-symbol --save
```
## 引入:
```javascript
import cps from 'cesium-plotting-symbol'
```
## 属性编辑窗
```html
```
```javascript
export default {
components: {
'prop-editor': cps.PropEditor // 在vue中注册cps.PropEditor
}
}
```
## 开始绘图
用户通过鼠标和键盘控制图形的绘制过程
```javascript
let graph = cps.start(new cps.Point())
```
或
```javascript
let graph = cps.start({obj: 'Point'})
```
## 直接绘图
根据传入的参数直接绘制图形到地图上
```javascript
let graph = cps.draw({obj: 'Point', color: '#00f', pixelSize: 12, alpha: 0.8, ctls: [{lon: 110, lat: 45}]})
```
在经纬度(110, 45)绘制一个大小为12, 蓝色,透明度0.8的点。
## 获取标绘的控制点信息
graph是new cps.Point()的结果,用来持有图形对象,目前提供以下功能:
graph.getCtlPositions() // 返回图形的所有控制点的坐标,
```javascript
graph.getCtlPositions().map((po) => {
return cps.mapUtil.convertCartesian(po)
}))
```
## 删除,清除图形
```javascript
cps.delete()
```
删除当前选中的图形
```javascript
cps.deleteAll()
```
删除所有图形
```javascript
let json = cps.save()
```
保存当前所有标绘到一个json对象列表
```javascript
cps.load(json)
```
从json中获取标绘图形列表,并直接绘制在地图上
## 快捷键
#### 查看模式
#### 创建模式
#### 选择模式
'ctrl+shift+d', 'shift+delete': 清除所有图形
#### 编辑模式
'delete', 'ctrl+d': 删除当前正在编辑的图形
#### 控制点编辑模式
## 一个栗子(VUE):
```html
```
```javascript
import cps from 'cesium-plotting-symbol'
export default {
name: 'mapview',
data () {
return {
graphList: []
}
},
methods: {
drawPoint () {
this.$data.graphList.push(cps.start(new cps.Point()))
},
drawArea () {
this.$data.graphList.push(cps.start({obj: 'Polygon'}))
},
getCtlPositions () {
this.$data.graphList.map((graph) => {
let pos = graph.getCtlPositions()
if (pos.length === 1) {
console.log('point:', cps.mapUtil.convertCartesian(pos[0]))
} else {
console.log('area:', pos.map((po) => {
return cps.mapUtil.convertCartesian(po)
}))
}
})
}
}
```
具体栗子见(https://github.com/renshuo/cesium-plotting-symbol/tree/master/dev/TopPane.vue)