/cesium_dev_kit

In my leisure time, I have written some common cases of Cesium (such as model control, analysis, material, shader effect, etc.), and utilized ES6 for packaging with the aim of providing convenience for my friends' studies and work. If this is beneficial to you, please show your support by giving a star.

Primary LanguageJavaScriptMIT LicenseMIT

cesium_dev_kit

Build Status NPM Package NPM DownloadsWeekly Build Size GitHub Repo stars license

English | 中文

Introduction

 This is a Cesium development kit that includes functionalities such as layer loading, coordinate conversion, coordinate picking, camera control, measurement, plotting, model loading and manipulation (translation, rotation scaling), 3Dtiles view position adjustment, weather effects (rain, snow, fog), scene rendering with radar scan and information box display capabilities. It also provides features for flow line visualization, lighting effects including dynamic wall and other luminous materials rendering. Additionally it supports Post effects, visibility analysis tools for perspective analysis and slope analysis. Furthermore it offers Inundation analysis as well as volume analysis capabilities and terrain excavation functionality.

Features

material analysis plot
material analysis plot
dynamicRiver extrude effect
dynamicRiver extrude effect
radar roaming drag
radar roaming drag
rayCast fireworksEffect aniSoldier
rayCast fireworksEffect aniSoldier
pathPlan
pathPlan

More>>

Install

npm install cesium_dev_kit

Use

1、Import all

The initialization of 'initCesium' allows for the acquisition of all extension modules.

 import { initCesium } from 'cesium_dev_kit'
 // custom viewer
var myViewer = new Cesium.Viewer('cesiumContainer', {
  animation: false, //Whether to display animation controls
  homeButton: false, //Whether to display the home button
  geocoder: false, //Whether to display the place name lookup control If set to true, it cannot be queried
  baseLayerPicker: false, //Whether to display layer selection controls
  timeline: false, //Whether to display the timeline control
  fullscreenButton: true, //Whether to display the button in full screen
  scene3DOnly: false, //If set to true, all geometry is drawn in 3D mode to save GPU resources
  infoBox: false, //Whether to display the information displayed after clicking the element
  sceneModePicker: false, //Whether to display projection mode controls 3D / 2D
  navigationInstructionsInitiallyVisible: false,
  navigationHelpButton: false, //Whether to display the help control
  selectionIndicator: false //Whether to display indicator components
});

 //Allowing an existing Viewer to be passed in, cesium_dev_kit will use the passed Viewer directly without re-instantiating it with "new Cesium.Viewer()".
 const {  viewer,  material, ... } = new initCesium({
  cesiumGlobal: Cesium,
  containerId: 'cesiumContainer',
  viewer: myViewer,
  ...})

2、Import on demand

The import of a single extension class can be tailored to meet specific functional requirements, thereby minimizing code redundancy.

import {Graphics} from 'cesium_dev_kit'
 // custom viewer
var myViewer = new Cesium.Viewer('cesiumContainer', {
  animation: false, //Whether to display animation controls
  homeButton: false, //Whether to display the home button
  geocoder: false, //Whether to display the place name lookup control If set to true, it cannot be queried
  baseLayerPicker: false, //Whether to display layer selection controls
  timeline: false, //Whether to display the timeline control
  fullscreenButton: true, //Whether to display the button in full screen
  scene3DOnly: false, //If set to true, all geometry is drawn in 3D mode to save GPU resources
  infoBox: false, //Whether to display the information displayed after clicking the element
  sceneModePicker: false, //Whether to display projection mode controls 3D / 2D
  navigationInstructionsInitiallyVisible: false,
  navigationHelpButton: false, //Whether to display the help control
  selectionIndicator: false //Whether to display indicator components
});

 //Allowing an existing Viewer to be passed in, cesium_dev_kit will use the passed Viewer directly without re-instantiating it with "new Cesium.Viewer()".
const {viewer,graphics} = new Graphics({
      cesiumGlobal: Cesium,
    //containerId: 'cesiumContainer',
      viewer: myViewer
  })
  graphics.getPointGraphics({
      color:Cesium.Color.GREEN,
      pixelSize:5,
      outlineColor:Cesium.Color.WHITE,
      outlineWidth:1
  })

Used in h5

  • Import index.umd.js directly into html
<script type="text/javascript" src="index.umd.js"></script>
  • Initialize object
new cesium_dev_kit.initCesium({...})

See API documentation 📑 (Cheap server, please be patient) for more details...


Use example

Donate

Do you use and like cesium_dev_kit but you don’t find a way to show some love? If yes, please consider donating to support this project. Otherwise, no worries, regardless of whether there is support or not, I will keep maintaining this project. Still, if you buy me a cup of coffee I would be more than happy though😄

  • Support via PayPal

  • WeChat / AliPay

    wechat alipay

Browser support

The 'Chrome 80+' browser is recommended for local development

Modern browsers (chrome, Firefox, Microsoft edge, etc.) are supported. Internet Explorer is not supported

Thanks

cesium-d3kit
drawarrowforcesium
vue3-ts-cesium-map-show

This project includes but is not limited to the reference and reference of the above materials, thank you very much for sharing

Project deficiency and optimization

  • 1、Extended classes not using type detection (TS)
  • 2、No exception catching and handling

How to contribute

This project exists thanks to all the people who contribute.

  • If you want to contribute, you can Raise an issue Or submit a Pull Request.

See CONTRIBUTING for more details on donations...


Star

I am grateful to the generous individuals who awarded me these little stars, thank you for your support ❤️

Stargazers repo roster for @dengxiaoning/cesium_dev_kit

Fork

@sincely、@ooil929、 @InPanda、 luyufanzhi、AllenChiangCN、Liquid-Zhangliquan... thank you for your attention ❤️

Forkers repo roster for @dengxiaoning/cesium_dev_kit