重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
切片的意思就是将每个级别的矢量地图切成很小的栅格地图,然后以静态方式通过web显示出来
成都创新互联是一家专业提供昌黎企业网站建设,专注与成都网站设计、网站制作、H5技术、小程序制作等业务。10年已为昌黎众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
这样做的目的就是用户访问的时候不用调用som中的arcgis动态地图,直接访问jpg或者bmp即可,减轻服务器压力,提高效率和执行速度。
切片地图是预先将地图渲染生成为图片
这样在用户访问的时候,可以直接调用这些结果图片,而不需要实时的进行渲染
大大减少了服务器的压力
提高了用户体验,缩短了访问时间
GIS可以切片栅格导出,可以使用GIS软件中的“切片”工具将栅格数据切片,并将切片数据导出为指定的格式文件,例如TIFF、JPEG等。
你必须能够连接到一个ArcGIS Server才能发布。如果你能够连接上一个ArcGIS Server,那么步骤如下:
菜单File-Share As-Service...-Publish a service-Choose A Connection(这个位置填ArcGIS Server的IP地址)-Next-Service Editor-Caching-Using Tiles from a cache。
Service Editor如下图:
当选择Using Tiles from a cache时即使用切片。
这个位置可以对切片的级别、比例尺、压缩格式进行设置。
设置完毕后点击右上角publish发布即可。
deck.gl YYDS!
很多ArcGIS API for JavaScript的用户想要ArcGIS的矢量切片技术体系实现Mapbox gl将城市建筑物footprint矢量切片三维化成建筑白模的效果。效果如图:截图来自 mapbox studio 。但目前仅靠ArcGIS VectorTileServer 和 ArcGIS API for JavaScript本身无法达到这样的效果。
ArcGIS API for JavaScript先前与deck.gl已经可以通过多种方式很好的结合。参考:《 ArcGIS API 场景添加 3D Tiles 》、《 ArcGIS与deckgl结合的不同模式 》。那么我们可以去看一下deck.gl能不能利用mapbox gl矢量切片三维化的这个优势。
deck.gl与Mapbox标准的矢量切片有两种结合模式。一个是采用Mapbox底图作为程序全局底图。如: 示例程序 1
优点:可以使用托管在Mapbox gl官网的样式,直接调用Mapbox studio中创作的三维化底图。方便、美观。
缺点:1.web程序底图全局变为了mapbox底图,deck.gl被夺舍了,无法作为单一图层与ArcGIS的场景视图进行结合。
2.mapbox服务器在外网,并且商用要收费。已经采购了ArcGIS作为内网服务器的用户没有必要额外采购和修改地图制作技术路线。
另一个技术路线是添加MVTLayer作为一个业务图层。如: 示例程序2
优点:1.作为单图层,可以借助ArcGIS + deck.gl的官方结合方式在ArcGIS地图视图和场景视图去直接使用。
2.既支持开源生态常用的.mvt格式的矢量切片,也支持ArcGIS为代表的.pbf格式的矢量切片。直接支持ArcGIS发布的VectorTileServer。
缺点:1.在渲染层面,MVTLayer不能加载完整矢量切片style.json样式文件。只能通过deck.gl继承的GeoJSONLayer和TileLayer以及Layer的一些属性进行很有限的前端渲染。不能支持完整的 mapbox矢量切片样式标准 。
2.在数据层面,只能一次性加载全部矢量切片服务下的子图层。在全部图层加载完毕之前,无法进行子图层的过滤。如果后端采用Mapbox世界地图{z}/{x}/{y}.mvt?access_token=token,那么会造成大量数据冗余(Mapbox过滤图层的机制是style.json样式)。如果使用ArcGIS发布的矢量切片服务,我们只需把建筑物footprint单独发布为一个服务即可。
另外:关于type:fill-extrusion的mapbox标准样式,deck.gl其实是不支持的。但他支持 GeoJSONLayer 使用extruded:true + getElevation:number的方式设置根据属性拉伸高度。
服务发布前设置建筑footprint要素类的高度字段高亮。该属性才能被写入矢量切片中。
采用默认的ArcGIS Online切片方案,将建筑物footprint图层发布矢量切片服务。
在REST点击start tile获得切片地址为:
改写为通用的{z}/{y}/{x}.pbf
以ArcGIS VectorTileServer为数据源。以 实例程序2 为蓝本,改写地址,添加一些属性。
设置名为footprint的子图层颜色为[218,218,218]。还可以设置成RGBA透明效果,如[218,128,218,128]
设置拉伸生效extruded:true,设置拉伸高度值为矢量切片的属性字段Z_Max的值。
设置最小可见比例13级。用来减少产生无切片的404请求。根据实际数据设置。
设置最大可见比例15级。用来避免出现放大和平移时建筑物消失的现象。根据实际数据情况设置。
设置继承自TileLayer的属性extent : [minX, minY, maxX, maxY]。
效果如下:
在DeckRenderer创建时设置参数getTooltip:info={ }
在layer中加入pickable:true
传统的ArcGIS API 场景视图表达三维需要使用建模转mutipatch发布SceneServer的方式 或 二维矢量面FeatureServer拉伸样式的方式。
ArcGIS+deck.gl矢量切片三维化表示建筑白模的技术路线为ArcGIS API场景视图表达三维白模增加了借助VectorTileServer的新的方式。
给ArcGIS 矢量切片增加了前端获得属性和几何的功能。