ArcGIS API for JavaScript 4.10 重大更新,强势来袭!
ArcGIS API for JavaScript 4.10 版引入了大量新功能,并对原有功能进行了增强:
-
引入了一种新的建筑图层类型BuildingSceneLayer,用于可视化BIM数据;
-
新增众多微件,如3D剖切、草图绘制、二维面积和距离测量、改善编辑工作流的FeatureTemplates微件等;
-
地图中的所有图层均可使用WebGL进行绘制,从而提升渲染性能;
-
通过更高性能的 WebStyleSymbols增强了3D体验;
还有诸多精彩变化,下文将为您一一呈现。
一
新增建筑场景图层
———— BuildingSceneLayer
BuildingSceneLayer可仔细查看建筑物中的精细细节。该图层可以显示和仔细查看建筑的外部和内部结构,如外墙、墙壁、门和机电系统。该图层是将 BuildingComponentSublayers 组合在一起,这与SceneLayer 的结构非常相似,所以我们可以使用渲染器,使用 popupTemplates 自定义弹窗,使用definitionExpression 按属性过滤。
您可以使用 ArcGISPro 2.3 从 Revit 数据发布 BuildingSceneLayers。
二
新微件
(1)剖切微件
剖切微件是一种 3D 交互分析工具,可用于显示 SceneView 中被遮挡的部分。该微件可以在任何图层类型中应用,使得建筑物内部和地表可见。
(2)草图微件
Sketch 微件提供了一个简单的UI,用于在 2D MapView 中创建和更新图形。向应用中添加草图微件,可以无需编写其他代码实现创建新图形或更新现有图形。
(3)面积和距离量算微件
在该版本中添加了两个用于在 2DMapView 中进行量算的新微件。AreaMeasurement2D 微件可计算并显示多边形的面积和周长,DistanceMeasurement2D 微件可计算并显示两个或多个点之间的距离。
(4)要素模板微件(Beta版)
FeatureTemplates 微件是整体编辑工作流中的一部分,其主要目的是显示来自一个或多个要素图层的模板。除显示模板外,还可以对模板进行过滤和分组,以便更轻松地进行编辑。
三
增强2D绘图性能
WebGL 现在用于在 MapView 中绘制所有图层。我们可以使用单个 WebGL上下文对象context绘制地图中所有图层。这可以提高绘图性能,尤其是在移动设备上或当使用很多FeatureLayers或VectorTileLayes 时。在 WebGL 中渲染图形可以更快地显示小型和大型数据集。
四
增强3D Web标注样式
3D WebStyleSymbols中新增了自动细节级别,现在可以展示成千上万的树木、汽车和其他真实模型,同时可以保持强大的性能。
五
更好的标注支持
在此版本中,我们添加了对2D MapView 中线和面标注的支持。目前2D 线的labelPlacement属性只支持center-along属性值。这些标签是根据您的数据动态生成的,并在用户与地图交互时动态更改。在处理可视化变量时,我们还改进了标注行为,并增强了2D MapView 中的标注优先级,以更好地匹配图层排序。最后,如果TextSymbol3DLayer.size未设置属性,则font.size属性将在 3D SceneViews 中予以替代。未来版本将包括2D MapViews和3D SceneViews中的线、折线和面的额外的labelPlacement 值。
六
矢量切片图层更新
在 2D MapView中,你可以更新VictorTileLayer 的样式而无需重新加载它。这可以通过使用此版本中包含的新方法来获取和设置 paint 和 layout 属性来实现。
七
MapView 截图
除SceneView能截图外,现在使用 MapView.takeScreenshot() 方法,可以创建2D视图的截图并导出为图片。可以指定不同的选项,如图像格式,质量,宽高比或图像大小。
八
WebScene中大型线和面数据集
在 4.8 版本中我们添加了 WebScene 对加载大型点要素图层的支持,在此版本中,我们还可以添加成千上万的线和面,从而显示和可视化包含街道、河流、宗地和国家边界等要素的大型数据集。
九
点云图层过滤器
现在可以根据属性过滤PointCloudLayers 。PointCloudValueFilter 显示属于某个类的点,PointCloudReturnFilter 使用每个点的返回值过滤点。如下图,仅显示过滤出的属于植被的点。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
20位程序员关于求职的疑问,以及我给出的参考答案
阅读本文大概需要 6 分钟。 前几天发了一条朋友圈对于求职小伙伴们提出的问题,我进行了收集整理,统一反馈。也许这20个问题也是你们遇到的问题,所以趁着年前赶紧把它发出来。 以下20个问题基本上都是读者的原话,当然我稍微修改了一些不通顺的地方。 0.我觉得最大的疑惑就是自己目前的水平和合各大公司的要求之间的符合度。以前没有实习过,所以还是有点虚的,再个就是总是听说每次面试都会有记录,可能会影响后面的面试。所以要准备到什么程度才可以投春招提前批或者春招面试呢?是海投还是投几个比较有意向的呢?很多帮内推的都会说面试不好也不会影响后面的面试,不知真假? 建议先去小公司试水,如果问题不大,可以尝试投大公司。另外记得刷一下大厂的面经,如果觉得差距比较大,慎投,至少等你把面经商遇到的问题都解决了再继续下一步吧。 面试可能会有记录,但是这个不用太过关注,最重要的是要确定自己复习到位。 1.不知道达到什么水平能面试通过 这个问题其实不太明确,但是也很好回答。首先确定好你的意向岗位,再按照公司岗位要求里的技能要求进行复习,同时你也要去看看该公司这个岗位的面经。 举个例子,这是阿里的招聘要求。 看起来有很多...
- 下一篇
go并发编程之美(一)
一、前言 在Java中多线程之间是通过共享内存进行通信的,在go中多线程之间通信是基于消息的,go中的通道是go中多线程通信的基石。 在java中创建的线程是与OS线程一一对应的,而在go中多个协程(goroutine)对应一个逻辑处理器,每个逻辑处理器与OS线程一一对应。 每个线程要运行必须要在就绪状态情况下获取cpu,而操作系统是基于时间片轮转算法来调度线程占用cpu来执行任务的,每个OS线程被分配一个时间片来占用cpu进行任务的执行。 在java中由于创建的线程与os线程一一对应,所以java中的每个线程占用一个时间片来运行。而go中多个协程对应一个os 线程,也就是多个协程对应了一个时间片,go则使用自己的调度策略(非os的调度策略)来让多个协程使用一个时间片来并发的运行。也就是go中存在两级策略,一个是go语言层面的调度多个协程
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS关闭SELinux安全模块