当前位置: 首页 > wzjs >正文

衡水做淘宝网站建设礼品类网站建设策划方案

衡水做淘宝网站建设,礼品类网站建设策划方案,音乐网站禁止做浅度链接,成品网站模板下载在三维地理信息可视化中,白模效果(也称为建筑轮廓效果)是一种常见的技术,用于展示建筑物的基本轮廓和高度信息。通过这种效果,用户可以快速了解城市或区域的建筑分布和高度差异。本文将详细介绍如何使用ArcGIS JS API中…

在三维地理信息可视化中,白模效果(也称为建筑轮廓效果)是一种常见的技术,用于展示建筑物的基本轮廓和高度信息。通过这种效果,用户可以快速了解城市或区域的建筑分布和高度差异。本文将详细介绍如何使用ArcGIS JS API中的ExtrudeSymbol3DLayer来实现白模效果。

白模分类渲染效果

1 概述

ArcGIS JS API是一个强大的JavaScript库,用于构建基于Web的地理信息系统应用。它提供了丰富的API来创建、管理和展示地图、图层、符号等。在三维场景中,ExtrudeSymbol3DLayer是一个常用的符号图层,用于将二维多边形拉伸为三维体块,从而实现建筑物的白模效果。
白模效果

2 实现步骤

2.1 引入ArcGIS JS API

首先,我们需要在HTML文件中引入ArcGIS JS API的CSS和JavaScript文件。这些文件可以通过CDN加载,如下所示:

<link rel="stylesheet" href="https://js.arcgis.com/4.31/esri/themes/light/main.css" />
<script src="https://js.arcgis.com/4.31/"></script>

2.2 准备数据

在实现白模效果之前,我们需要准备建筑物的数据。这些数据通常包括建筑物的几何信息(如多边形)和属性信息(如类型、高度等)。在本例中,我们假设数据已经存储在buildingData.js文件中,并通过<script>标签引入。

<script src="./buildingData.js"></script>

大致数据结构如下所示:

const buildingData = [{// 要素几何信息geometry: {spatialReference: { latestWkid: 4326, wkid: 4326 },rings: [[[-75.08778761499997, 38.32938676900005],[-75.08793513999996, 38.32910149700001],[-75.08813620000001, 38.32916815500005],[-75.088124521, 38.329191802000025],[-75.08818068099998, 38.32921165000005],[-75.088168, 38.32923679400005],[-75.08823773699999, 38.32926013400004],[-75.08811461799996, 38.32948719500001],[-75.08778761499997, 38.32938676900005],[-75.08778761499997, 38.32938676900005],],],},// 要素关联的属性信息attributes: {OBJECTID: 1, // 唯一值IDTYPE: '住宅公寓', // 类型HEIGHT: 11, // 高度},},// 其它要素数据
];

2.3 创建FeatureLayer

有了相关数据,我们可以通过客户端要素数据创建FeatureLayer,具体方法可以参考这篇文章《ArcGIS JS API之通过客户端要素创建FeatureLayer》。

2.4 创建符号

为了实现白模效果,我们需要为不同类型的建筑物创建不同的符号。ExtrudeSymbol3DLayer用于定义建筑物的拉伸效果,而PolygonSymbol3D则用于将符号应用到多边形几何上。

function createSymbol(color) {return new PolygonSymbol3D({symbolLayers: [new ExtrudeSymbol3DLayer({material: {color: color, // 材质颜色,根据类型不同生成不同颜色的符号},// 轮廓边缘效果edges: {type: 'solid',color: '#999',size: 0.5,},// 这里暂时不需要// size: 10, // 拉伸的高度(以米为单位)。负值将使多边形表面向下拉伸至地面或低于地面。}),],});
}

在这个函数中,我们为每个建筑物类型定义了一个颜色,并通过ExtrudeSymbol3DLayer设置了建筑物的材质和边缘效果。
ExtrudeSymbol3DLayer中还有一个设置拉伸高度的属性size,在上面代码中我们注释掉了,原因是在当前这个例子中,我们不能将所有的符号高度都设置为一个值,而是需要跟随每个要素属性中的高度值来设置,这就是后续将要讲到的通过视觉变量来设置拉伸高度,才有建筑物高低起伏的效果。

2.5 创建渲染器

为了将不同的符号应用到不同类型的建筑物上,我们需要创建一个唯一值渲染器UniqueValueRenderer。这个渲染器根据建筑物的类型字段(如TYPE)来分配不同的符号。

function createRenderer() {const rendererOptions = {type: 'unique-value',defaultSymbol: createSymbol('#FFFFFF'),defaultLabel: 'Other',field: 'TYPE', // 设置根据哪个字段进行分类uniqueValueInfos: [// 设置每个类型的符号{value: '住宅',symbol: createSymbol('#A7C636'),label: '住宅',},{value: '公共/政府',symbol: createSymbol('#3f51b5'),label: '公共/政府',},// ...其它类型],// 视觉变量设置visualVariables: [{type: 'size', // 类型为大小视觉变量field: 'HEIGHT', // 根据属性中的哪个字段来设置拉伸的高度值},],};return new UniqueValueRenderer(rendererOptions);
}

在这个渲染器中,我们为每种建筑物类型分配了一个颜色,并通过visualVariables设置了建筑物的高度。visualVariables为一个数组,是因为除了设置size大小视觉变量,还可以设置颜色视觉变量color、透明度视觉变量opacity和旋转视觉变量rotation

2.6 初始化场景

最后,我们需要初始化一个SceneView来展示三维场景。SceneView是ArcGIS JS API中用于显示三维地图的视图。再将创建的要素图层添加到地图上即可。

const view = new SceneView({container: 'viewDiv',map: new Map({basemap: 'satellite', // 影像底图}),
});view.map.add(layer); // 将图层添加到地图中

3 总结

通过以上步骤,我们成功地使用ArcGIS JS API实现了白模效果。这种效果不仅能够清晰地展示建筑物的轮廓和高度,还能够通过颜色区分不同类型的建筑物。ArcGIS JS API提供了强大的三维可视化功能,使得开发者能够轻松构建复杂的地理信息应用。

4 完整代码

通过关注微信公众号《Web与GIS》,回复关键字:ES3DSXBMXG下载源码。

微信公众号


如果该文章对您有所帮助,请您一定不要吝啬您的鼓励。点赞、评论、分享、收藏、打赏都是您对我的鼓励和支持。
如果您有GitHub账号,还可以关注我~
最后,感谢大家的阅读,如有错误,还请各位批评指正。


文章转载自:

http://37nVTTEg.thbgq.cn
http://72cGar3O.thbgq.cn
http://BfLqL0bY.thbgq.cn
http://rylYhDNL.thbgq.cn
http://VD4G39yG.thbgq.cn
http://fSPNYuO7.thbgq.cn
http://4YD2QOKs.thbgq.cn
http://Fd8p1SPl.thbgq.cn
http://o3EQaaER.thbgq.cn
http://dBqh9uqm.thbgq.cn
http://aeysJQJp.thbgq.cn
http://luZWVhd3.thbgq.cn
http://NQdR6m4N.thbgq.cn
http://n8sp17l3.thbgq.cn
http://ysGx2hH8.thbgq.cn
http://3SUYCM8P.thbgq.cn
http://sdeePv6G.thbgq.cn
http://Npx114ml.thbgq.cn
http://Ixl5pNkH.thbgq.cn
http://FZybaMzy.thbgq.cn
http://2OfqqiMA.thbgq.cn
http://EvM1QZL5.thbgq.cn
http://XtYHyGqh.thbgq.cn
http://nVV2b8fd.thbgq.cn
http://MwQo6Hk7.thbgq.cn
http://XiIGzlQY.thbgq.cn
http://Qeh65wjg.thbgq.cn
http://W7f5RbDk.thbgq.cn
http://l1Lh3Rzl.thbgq.cn
http://dc1aRHfz.thbgq.cn
http://www.dtcms.com/wzjs/639419.html

相关文章:

  • 作业网站建设方案国际公司办公室装修
  • 可以建网站的平台如何查询网站的注册信息查询
  • 设计制作个人网站中关村手机官网首页
  • 北京网站seo收费标准广州网站设计公司兴田德润在哪儿
  • 计量检测网站平台建设方案上海培训机构整顿
  • 建设网站的英语怎么说西部数码网站工具
  • 企业网站推广名词解释艺术作品欣赏网站
  • 58网站建设网站开发范围
  • 哪有做网站wordpress底端小工具
  • 厦门网站设计品牌企业做嫒嫒网站
  • 简单网站制作代码优质手机网站建设
  • 58网站为啥做不好遵义县住房和城乡建设局网站
  • 网站建设亼仐团做爰全过程网站免费的视频
  • 网站建设哪家好灵活苏州久远网络软件企业网站建设栏目结构图
  • 上海行业网站建设南京制作网站建站模板公司
  • 培训网站开发怎么样长春火车站地址
  • 大鹏网站建设建站好不好p2p网站开发多少钱
  • 网站系统管理员模块国际网站浏览器
  • 专业做网站较好的公司建程网手机版建设建筑工程网
  • 网站制作规划设计内容广东网站建设哪家
  • 网站一体化建设成都哪家做网站好
  • 网站建设基础摘要开发工具app
  • 西安汽车网站制作网站建设是什么行业
  • 学校网站建设意义有哪些东莞音乐制作公司
  • 欧阳网站建设网站创建公司
  • 网站建设规划方案模板002822中装建设股吧
  • 内部门户网站建设方案温州注册网络公司哪家强
  • 网站图片代码怎么做的网站点击率原因
  • 做微网站哪家好wordpress实时预览
  • 工业设计网站排名网页站点的用途