# DC-SDK

<p>
<img src="https://img.shields.io/github/workflow/status/ningsk/dc-sdk/publish"/>
<img src="https://img.shields.io/badge/license-Apache%202-blue"/>
<img src="https://img.shields.io/npm/v/@ningsk/dc-sdk?color=orange&logo=npm" />
<img src="https://img.shields.io/npm/dt/@ningsk/dc-sdk?logo=npm"/>
</p>

[**🇨🇳 中文**](./README_zh.md) | [**🇬🇧English**](./README.md)

> DC-SDK 是基于 Cesium 进行二次开发的2、3D一体 WebGis 应用框架,该框架优化了 Cesium 的使用方式和增添了一些额外功能，旨在为开发者快速构建 WebGis 应用。

##主页

> http://dc.ningsk.cn

```warning
Tips：本框架是 JS+GIS 的框架包。开发者需要有一定的前端技术和 GIS 相关技术
```

## 安装

`NPM / YARN` **_`(推荐使用)`_**

NPM / YARN 的方式安装，它能更好地和 `webpack` 打包工具配合使用。

```node
yarn add @ningsk/dc-sdk
-------------------------
npm install @ningsk/dc-sdk
```

```js
import DC from '@ningsk/dc-sdk/dist/dc.base.min' //基础包
import DcCore from '@ningsk/dc-sdk/dist/dc.core.min' //核心包
import DcChart from '@ningsk/dc-sdk/dist/dc.chart.min' //chart包
import DcMapv from '@ningsk/dc-sdk/dist/dc.mapv.min' //mapv包
import '@ningsk/dc-sdk/dist/dc.core.min.css' // 主要样式
```

`NPM / YARN` **_`(按需安装)`_**

```node
yarn add @ningsk/dc-base
yarn add @ningsk/dc-core
yarn add @ningsk/dc-chart
yarn add @ningsk/dc-mapv
-------------------------
npm install @ningsk/dc-base
npm install @ningsk/dc-core
npm install @ningsk/dc-chart
npm install @ningsk/dc-mapv
```

```js
import DC from '@ningsk/dc-base' //基础包
import DcCore from '@ningsk/dc-core' //核心包
import DcChart from '@ningsk/dc-chart' //chart包
import DcMapv from '@ningsk/dc-mapv' //mapv包
import '@ningsk/dc-core/dist/dc.core.min.css' // 主要样式
```

`CDN`

[Resources 下载链接](https://github.com/ningsk/dc-sdk/releases)

```html
<!--基础包-->
<script src="https://cdn.jsdelivr.net/npm/@ningsk/dc-sdk/dist/dc.base.min.js"></script>
<!--核心包-->
<script src="https://cdn.jsdelivr.net/npm/@ningsk/dc-sdk/dist/dc.core.min.js"></script>
<!--chart包-->
<script src="https://cdn.jsdelivr.net/npm/@ningsk/dc-sdk/dist/dc.chart.min.js"></script>
<!--mapv包-->
<script src="https://cdn.jsdelivr.net/npm/@ningsk/dc-sdk/dist/dc.mapv.min.js"></script>
<!--主要样式-->
<link
  href="https://cdn.jsdelivr.net/npm/@ningsk/dc-sdk/dist/dc.core.min.css"
  rel="stylesheet"
  type="text/css"
/>
```

```
请将 resources 放置工程根目录 libs/dc-sdk 下，如果放置到其他目录下，框架将无法正常运行
```

## 配置

> 配置主要用于 `NPM / YARN` 的方式

由于 DC 框架中将 `CESIUM_BASE_URL` 设置为 `JSON.stringify('./libs/dc-sdk/resources/')`，这样需将 `Cesium` 相关的静态资源文件: `Assets`、`Workers` 、`ThirdParty` 复制到工程的 `libs/dc-sdk/resources` 目录下以保证三维场景能够正常呈现

`Webpack`

[工程模板](https://github.com/cavencj/dc-vue-app)

```js
// webpack.config.js

const path = require('path')
const CopywebpackPlugin = require('copy-webpack-plugin')
const ningskDist = './node_modules/@ningsk'

module.exports = {
  plugins: [
    new CopyWebpackPlugin([
      {
        from: path.join(ningskDist, 'dc-sdk/dist/resources'),
        to: 'libs/dc-sdk/resources',
      },
    ]),
  ],
}
```

`Vue2.x`

[工程模板](https://github.com/ningsk/dc-vue)

```js
// vue.config.js

const path = require('path')
const CopywebpackPlugin = require('copy-webpack-plugin')
const ningskDist = './node_modules/@ningsk'

module.exports = {
  // 其他配置
  chainWebpack: (config) => {
    config.plugin('copy').use(CopywebpackPlugin, [
      [
        {
          from: path.join(ningskDist, 'dc-sdk/dist/resources'),
          to: 'libs/dc-sdk/resources',
        },
      ],
    ])
  },
}
```

`Vue3.x`

[工程模板](https://github.com/ningsk/dc-vue-next)

```js
// vue.config.js

const path = require('path')
const CopywebpackPlugin = require('copy-webpack-plugin')
const ningskDist = './node_modules/@ningsk'

module.exports = {
  // 其他配置
  chainWebpack: (config) => {
    config.plugin('copy').use(CopywebpackPlugin, [
      {
        patterns: [
          {
            from: path.join(ningskDist, 'dc-sdk/dist/resources'),
            to: path.join(__dirname, 'dist', 'libs/dc-sdk/resources'),
          },
        ],
      },
    ])
  },
}
```


## 开始

```js
global.DC = DC
DC.use(DcCore) // Node 方式
DC.ready(() => {
  let viewer = new DC.Viewer(divId) // divId 为一个div节点的Id属性值，如果不传入，会无法初始化3D场景
})
```

## 文档

[DC Sdk  Api](https://resource.ningsk.cn/dc-docs/v2.x/zh)

[Cesium Api](https://cesium.com/docs/cesiumjs-ref-doc/)

## 示例

|  ![picture](http://dc.ningsk.cn/examples/images/baselayer/baidu.png?v=1) | ![picture](http://dc.ningsk.cn/examples/images/baselayer/tdt.png?v=1) | ![picture](http://dc.ningsk.cn/examples/images/baselayer/arcgis.png?v=2) | ![picture](http://dc.ningsk.cn/examples/images/mini-scene/china.gif) |
|  :-----------------------------------------------------------: | :-----------------------------------------------------------: | :------------------------------------------------------------------: | :--------------------------------------------------------------: |
|  ![picture](http://dc.ningsk.cn/examples/images/mini-scene/dfmz.gif) | ![picture](http://dc.ningsk.cn/examples/images/mini-scene/factory.gif?v=1) | ![picture](http://dc.ningsk.cn/examples/images/layer/cluster_circle.gif) | ![picture](http://dc.ningsk.cn/examples/images/model/shp_custom_shader.gif) |
|  ![picture](http://dc.ningsk.cn/examples/images/overlay/polyline_image_trail.gif) | ![picture](http://dc.ningsk.cn/examples/images/overlay/wall_trail.gif?v=1) | ![picture](http://dc.ningsk.cn/examples/images/overlay/water.gif?v=2)  |  ![picture](http://dc.ningsk.cn/examples/images/overlay/plot-overlay.png)   |

[更多>>](http://dc.ningsk.cn/#/examples)

## 生态

|  模块名称 | 状态 | 描述 | 
|  :------ | :------: | :------ | 
| [dc-chart](https://github.com/ningsk/dc-chart) | <img src="https://img.shields.io/npm/v/@ningsk/dc-chart?logo=npm" /> | DC图表模块，用于在三维场景中添加Echarts功能 | 
| [dc-mapv](https://github.com/ningsk/dc-mapv) | <img src="https://img.shields.io/npm/v/@ningsk/dc-mapv?logo=npm" /> | DC大数据模块，用于在三维场景中添加Mapv功能 | 
| [dc-ui](https://github.com/ningsk/dc-ui) | <img src="https://img.shields.io/npm/v/@ningsk/dc-ui?logo=npm" /> | DC基于Vue2.x组件开发框架，将DC功能Vue模块化 | 
|  dc-ui-next | <img src="https://img.shields.io/npm/v/@ningsk/dc-ui-next?logo=npm" /> | DC基于Vue3.x组件开发框架，将DC功能Vue模块化 |

## QQ 群

<p>
<img src="http://dc.ningsk.cn/examples/images/base/q1.png?v=2" style="width:60px;height:60px" title="数字视觉"/>
<img src="http://dc.ningsk.cn/examples/images/base/q2.png?v=6" style="width:60px;height:60px" title="Cesium开心农场"/>
</p>

## 支持

> 如果dc-sdk能够给您带来效益，请支持一下呗~
<p>
<img src="http://dc.ningsk.cn/examples/images/base/sponsor.jpg?v=2" style="width:60px;height:60px" title="数字视觉"/>
</p>

## 版权声明

```warning
1.框架作为一个基础平台，代码开源，任何个人和机构可以修改、重构，无需经过我方授权。
2.任何个人和机构修改框架出现的问题，我方无需负责。
3.后期会添加一些行业性的插件和工具，代码会适量开源。
4.对于我方发布的程序包，任何个人和机构在遵守下列条件的前提下可以永久免费使用:
   1)程序包完整引用；
   2)保留此版权信息在控制台输出
我方保留对此版权信息的最终解释权。
```

## 谢谢
