# cesium-contourLineAlgorithm **Repository Path**: xi-weidong/cesium-contour-line-algorithm ## Basic Information - **Project Name**: cesium-contourLineAlgorithm - **Description**: 基于Cesium.js+GIS算法实现的等高线生成工具库 - **Primary Language**: JavaScript - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2024-08-31 - **Last Updated**: 2025-07-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cesium-contourLineAlgorithm ## 介绍 基于Cesium.js+GIS算法实现的等高线生成工具库 ## 软件架构 - vite - rollup - terser - Cesium.js # 算法流程图 ![输入图片说明](images/flowcharts.jpg) # 项目打包 1. 打包脚本库:`yarn package` 2. 压缩脚本库:`yarn minify` 3. 产物libs目录下:*.min.js和assets下文件 # 项目使用 ## 示例代码 ``` import ContourLineAlgorithm from "@/**/ContourLineAlgorithm.min.js"; //等高线分析范围 const lnglats = [ { longitude: 103.6579800436033, latitude: 33.79665491134846, height: 2552.231031077119, }, { longitude: 103.75973884018468, latitude: 33.808506629959844, height: 2405.915399665163, }, { longitude: 103.77093904871165, latitude: 33.72008203627272, height: 3527.005135728514, }, { longitude: 103.69359331142391, latitude: 33.70296790308893, height: 4095.863733524433, }, { longitude: 103.64790329366203, latitude: 33.736805226798005, height: 3837.649787589244, }, ]; const positions = lnglats.map((lnglat) => Cesium.Cartesian3.fromDegrees( lnglat.longitude, lnglat.latitude, lnglat.height ) ); //Cesium.Viewer const viewer = new Cesium.Viewer("viewerContainer"); //图元集合-[用于管理渲染结果] //collection const collection = new Cesium.PrimitiveCollection({ show: true, destroyPrimitives: true, }); viewer.scene.primitives.add(collection); //创建算法实例 const algorithm = new ContourLineAlgorithm(viewer, { spacing: 50, color: Cesium.Color.fromRandom(), granularity: Math.PI / Math.pow(2, 11) / 64.0, }); //修改参数:color-颜色;spacing-等高距;width-线宽度 algorithm.color = Cesium.Color.fromRandom(); algorithm.spacing = 100; console.log("doAlgorithm1::", algorithm); //执行算法 algorithm.doAlgorithm(positions) .then((analysisResult) => { console.log("analysisResult::", analysisResult); const contourLineTable = analysisResult.contourLineTable, contourLines = analysisResult.contourLines; //渲染等高线-[这里也可以自定义渲染流程] algorithm.renderContourLines(contourLines, contourLineTable, { collection: collection, }); }) .catch((err) => { console.log(err); }); //清除分析结果 collection.removeAll(); ``` ## 分析结果 ![分析结果示例](images/output.jpg) ## 注意事项 Tips:如果提示ContourLineAlgorithm.min.js中找不到Cesium,则可以在打包产物首行手动添加: ``` import * as Cesium from 'cesium' ```