UNPKG

@mapgis/webclient-leaflet-plugin

Version:

1,553 lines 104 kB

<!DOCTYPE html>
<html lang="en">

<head>
  
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title> common/document/layer/igserver/IGSVectorTileLayer.js</title>
  <!--[if lt IE 9]>
    <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  <![endif]-->
  <link type="text/css" rel="stylesheet" href="styles/app.min.css">
  <link type="text/css" rel="stylesheet" href="styles/iframe.css">
  <link type="text/css" rel="stylesheet" href="">

  
</head>



<body class="layout small-header">
    <div id="stickyNavbarOverlay"></div>
    

<div class="top-nav">
    <div class="inner">
        <a id="hamburger" role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
            <span aria-hidden="true"></span>
            <span aria-hidden="true"></span>
            <span aria-hidden="true"></span>
        </a>
        <div class="logo">
            
                <h1> MapGIS Client for JavaScript API</h1>
            
            
        </div>
        <div class="menu">
            
            <div class="navigation">
                
                    
                        <a
                            class="link user-link "
                            href="/docs/cesium/index.html"
                        >
                            Cesium
                        </a>
                    
                        <a
                            class="link user-link "
                            href="/docs/mapboxgl/index.html"
                        >
                            MapboxGL
                        </a>
                    
                        <a
                            class="link user-link "
                            href="/docs/leaflet/index.html"
                        >
                            Leaflet
                        </a>
                    
                        <a
                            class="link user-link "
                            href="/docs/openlayers/index.html"
                        >
                            OpenLayers
                        </a>
                    
                

            </div>
        </div>
    </div>
</div>

    <div id="main">
        <div
            class="sidebar "
            id="sidebarNav"
        >
            <div>
                <span class="mapgis-api-document-span"><a href="index.html">API文档</a></span>
            </div>
            
                <div class="search-wrapper">
                    <input id="search" type="text" placeholder="搜索文档..." class="input">
                </div>
            
            <nav>
                
                    <div class="category"><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">服务模块</div><ul class="mapgis-sidebar-menus"><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="AddressServer.html">AddressServer</a><span style="display: none;"><p>地址服务,基地址:/igs/rest/services/{folder}/{serviceName}/AddressServer</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ArcGISFeatureServer.html">ArcGISFeatureServer</a><span style="display: none;"><p>ArcGIS的FeatureServer服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ArcGISGeometryServer.html">ArcGISGeometryServer</a><span style="display: none;"><p>ArcGIS的GeometryServer服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ArcGISMapServer.html">ArcGISMapServer</a><span style="display: none;"><p>ArcGIS的MapServer服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ArcGISVectorTileServer.html">ArcGISVectorTileServer</a><span style="display: none;"><p>ArcGIS的VectorTileServer服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="BaseServer.html">BaseServer</a><span style="display: none;"><p>服务查询基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Cesium3DTilesServer.html">Cesium3DTilesServer</a><span style="display: none;"><p>3DTiles服务,基地址:/igs/rest/services/{folder}/{serviceName}/3DTilesServer</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Config.html">Config</a><span style="display: none;"><p>全局配置信息<br/>
示例如下:<br/>
<a href='#config1'>[1、设置全局token]</a><br/>
<a href='#config2'>[2、设置全局headers]</a><br/>
<a href='#config3'>[3、设置拦截器 - 在所有链接上设置拦截器]</a><br/>
<a href='#config4'>[4、设置拦截器 - 指定拦截器应用的url]</a><br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="FeatureServer.html">FeatureServer</a><span style="display: none;"><p>要素服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="GeometryServer.html">GeometryServer</a><span style="display: none;"><p>地理几何服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ImageServer.html">ImageServer</a><span style="display: none;"><p>影像服务,服务地址:/igs/rest/services/{folder}/{serviceName}/ImageServer</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Interceptor.html">Interceptor</a><span style="display: none;"><p>请求拦截和相应拦截器参数</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="M3DServer.html">M3DServer</a><span style="display: none;"><p>M3d服务,服务地址:/igs/rest/services/{folder}/{serviceName}/M3dServer</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="MapServer.html">MapServer</a><span style="display: none;"><p>地图服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="PlotServer.html">PlotServer</a><span style="display: none;"><p>标绘服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="PoiServer.html">PoiServer</a><span style="display: none;"><p>兴趣点服务,服务地址:/igs/rest/services/{folder}/{serviceName}/PoiServer</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="RequestConfig.html">RequestConfig</a><span style="display: none;"><p>请求配置参数</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="RequestInterceptor.html">RequestInterceptor</a><span style="display: none;"><p>请求拦截器对象</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ResourceServer.html">ResourceServer</a><span style="display: none;"><p>资源服务,基地址为http://{ip}:{port}/igs/rest/services/system/ResourceServer</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ResponseInterceptor.html">ResponseInterceptor</a><span style="display: none;"><p>响应拦截器对象</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="RootServer.html">RootServer</a><span style="display: none;"><p>根目录服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SceneServer.html">SceneServer</a><span style="display: none;"><p>场景服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SecurityServer.html">SecurityServer</a><span style="display: none;"><p>安全服务,服务地址:/igs/rest/services/SecurityServer</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="TerrainServer.html">TerrainServer</a><span style="display: none;"><p>地形缓存服务,基地址:/igs/rest/services/{folder}/{serviceName}/TerrainServer</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ThemeServer.html">ThemeServer</a><span style="display: none;"><p>专题图服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="TileServer.html">TileServer</a><span style="display: none;"><p>瓦片服务,基地址:/igs/rest/services/{folder}/{serviceName}/TileServer</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="VectorTileServer.html">VectorTileServer</a><span style="display: none;"><p>矢量瓦片服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="WFSServer.html">WFSServer</a><span style="display: none;"><p>IGS的WFS服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="WMSServer.html">WMSServer</a><span style="display: none;"><p>IGS的WMS服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="WMTSServer.html">WMTSServer</a><span style="display: none;"><p>IGS的WMTS服务</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="WorkFlowServer.html">WorkFlowServer</a><span style="display: none;"><p>工作流服务,基地址http://{ip}:{port}/igs/rest/services/workflow/{serviceName}/WorkflowServer</p></span></li></ul><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">图层模块</div><ul class="mapgis-sidebar-menus"><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ArcGISMapImageLayer.html">ArcGISMapImageLayer</a><span style="display: none;"><p>ArcGIS地图图片图层,<br/>
目前二维上支持4326(包括4490,4214以及4610),3857以及EPSG支持的自定义坐标系,三维上仅支持4326(包括4490,4214以及4610)以及3857坐标系,会自动读取元信息上的坐标系,不需要用户指定
<br><br>[ES5引入方式]:<br/>
Zondy.Layer.ArcGISMapImageLayer() <br/>
[ES6引入方式]:<br/>
import { ArcGISMapImageLayer } from &quot;@mapgis/webclient-common&quot; <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log(&quot;加载完毕:&quot;, result.layer)<br/>
});<br/>
如果不想在该事件中放入业务代码,则请确认图层资源已加载完毕后再进行操作<br/>
if(layer.loadStatus === 'loaded') {<br/>
// 你的业务逻辑<br/>
}</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ArcGISMapImageSubLayer.html">ArcGISMapImageSubLayer</a><span style="display: none;"><p>ArcGIS地图图片子图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ArcGISTileLayer.html">ArcGISTileLayer</a><span style="display: none;"><p>ArcGIS瓦片图层,<br>
目前二维上支持4326(包括4490,4214以及4610),3857以及EPSG支持的自定义坐标系,三维上仅支持4326(包括4490,4214以及4610)以及3857坐标系,会自动读取元信息上的坐标系,不需要用户指定,
<br><br>[ES5引入方式]:<br/>
Zondy.Layer.ArcGISTileLayer() <br/>
[ES6引入方式]:<br/>
import { ArcGISTileLayer } from &quot;@mapgis/webclient-common&quot; <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log(&quot;加载完毕:&quot;, result.layer)<br/>
});<br/>
如果不想在该事件中放入业务代码,则请确认图层资源已加载完毕后再进行操作<br/>
if(layer.loadStatus === 'loaded') {<br/>
// 你的业务逻辑<br/>
}</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ArcGISVectorTileLayer.html">ArcGISVectorTileLayer</a><span style="display: none;"><p>ArcGIS矢量瓦片图层
支持通过加载矢量瓦片服务、加载矢量瓦片样式文件和设置矢量瓦片样式的方式创建矢量瓦片图层
<br><br>[ES5引入方式]:<br/>
Zondy.Layer.ArcGISVectorTileLayer() <br/>
[ES6引入方式]:<br/>
import { ArcGISVectorTileLayer } from &quot;@mapgis/webclient-common&quot; <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log(&quot;加载完毕:&quot;, result.layer)<br/>
});<br/>
如果不想在该事件中放入业务代码,则请确认图层资源以加载完毕后再进行操作<br/>
if(layer.loadStatus === 'loaded') {<br/>
// 你的业务逻辑<br/>
}
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ArcGISVectorTileSubLayer.html">ArcGISVectorTileSubLayer</a><span style="display: none;"><p>ArcGIS矢量瓦片子图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Cesium3DTilesCacheLayer.html">Cesium3DTilesCacheLayer</a><span style="display: none;"><p>Cesium3DTiles图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="EchartsLayer.html">EchartsLayer</a><span style="display: none;"><p>Echarts图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="FeatureLayer.html">FeatureLayer</a><span style="display: none;"><p>要素图层基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="GeoJSONLayer.html">GeoJSONLayer</a><span style="display: none;"><p>geojson图层,仅支持文件服务<br/>
目前二维和三维上支持4326(包括4490,4214以及4610),3857以及EPSG支持的自定义坐标系,若是想要绘制源数据为非4326坐标系几何数据,需要在初始化时指定具体坐标系<br/>
参考示例:<br/>
<a href='#add-GeoJSONLayer'>[加载GeoJSON图层]</a>
<br><br>[ES5引入方式]:<br/>
Zondy.Layer.GraphicsLayer() <br/>
[ES6引入方式]:<br/>
import { GraphicsLayer } from &quot;@mapgis/webclient-common&quot;</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="GraphicsLayer.html">GraphicsLayer</a><span style="display: none;"><p>几何图形图层,不支持在线数据,仅支持传入多个几何对象并绘制<br/>
目前二维和三维上支持4326(包括4490,4214以及4610),3857以及EPSG支持的自定义坐标系,若是想要绘制非4326坐标系几何,需要在初始化要素对象的几何时,指定具体坐标系
<br><br>[ES5引入方式]:<br/>
Zondy.Layer.GraphicsLayer() <br/>
[ES6引入方式]:<br/>
import { GraphicsLayer } from &quot;@mapgis/webclient-common&quot; <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log(&quot;加载完毕:&quot;, result.layer)<br/>
});<br/>
如果不想在该事件中放入业务代码,则请确认图层资源已加载完毕后再进行操作<br/>
if(layer.loadStatus === 'loaded') {<br/>
// 你的业务逻辑<br/>
}</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="GroupLayer.html">GroupLayer</a><span style="display: none;"><p>组图层,支持的图层类型有:WMS图层、WMTS图层、地图图层、瓦片图层、cesium3DTiles图层、echarts图层、
M3D图层、场景图层、矢量瓦片图层、mapv图层、地形图层
<br><br>[ES5引入方式]:<br/>
Zondy.Layer.GroupLayer() <br/>
[ES6引入方式]:<br/>
import { GroupLayer } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="IGSFeatureLayer.html">IGSFeatureLayer</a><span style="display: none;"><p>IGS要素图层,<br>
目前二维和三维上支持4326(包括4490,4214以及4610),3857以及EPSG支持的自定义坐标系,要素服务会自动读取元信息上的坐标系,不需要用户指定
<br><br>[ES5引入方式]:<br/>
Zondy.Layer.IGSFeatureLayer() <br/>
[ES6引入方式]:<br/>
import { IGSFeatureLayer } from &quot;@mapgis/webclient-common&quot; <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log(&quot;加载完毕:&quot;, result.layer)<br/>
});<br/>
如果不想在该事件中放入业务代码,则请确认图层资源已加载完毕后再进行操作<br/>
if(layer.loadStatus === 'loaded') {<br/>
// 你的业务逻辑<br/>
}</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="IGSImageLayer.html">IGSImageLayer</a><span style="display: none;"><p>IGS影像图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="IGSMapImageLayer.html">IGSMapImageLayer</a><span style="display: none;"><p>IGS地图图片图层,<br/>
支持IGS1.0和2.0两个服务版本,支持自定义坐标系,当IGS版本是1.0时,需要手动设置图层坐标系,当IGS版本是2.0时,会自动读取元信息上的坐标系,不需要用户指定<br/>
<br><br>[ES5引入方式]:<br/>
Zondy.Layer.IGSMapImageLayer() <br/>
[ES6引入方式]:<br/>
import { IGSMapImageLayer } from &quot;@mapgis/webclient-common&quot; <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log(&quot;加载完毕:&quot;, result.layer)<br/>
});<br/>
如果不想在该事件中放入业务代码,则请确认图层资源已加载完毕后再进行操作<br/>
if(layer.loadStatus === 'loaded') {<br/>
// 你的业务逻辑<br/>
}</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="IGSMapImageSubLayer.html">IGSMapImageSubLayer</a><span style="display: none;"><p>IGS地图图片图层的子图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="IGSSceneLayer.html">IGSSceneLayer</a><span style="display: none;"><p>IGS的SceneLayer图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="IGSSceneSubLayer.html">IGSSceneSubLayer</a><span style="display: none;"><p>IGS的SceneLayer子图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="IGSTileLayer.html">IGSTileLayer</a><span style="display: none;"><p>IGS瓦片图层,<br>
支持IGS1.0和2.0两个服务版本,支持自定义坐标系,当IGS版本是1.0时,需要手动设置图层坐标系,当IGS版本是2.0时,会自动读取元信息上的坐标系,不需要用户指定,
<br><br>[ES5引入方式]:<br/>
Zondy.Layer.IGSTileLayer() <br/>
[ES6引入方式]:<br/>
import { IGSTileLayer } from &quot;@mapgis/webclient-common&quot; <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log(&quot;加载完毕:&quot;, result.layer)<br/>
});<br/>
如果不想在该事件中放入业务代码,则请确认图层资源已加载完毕后再进行操作<br/>
if(layer.loadStatus === 'loaded') {<br/>
// 你的业务逻辑<br/>
}</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="IGSVectorTileLayer.html">IGSVectorTileLayer</a><span style="display: none;"><p>IGS矢量瓦片图层
支持IGS1.0和2.0两个服务版本,目前二维和三维上支持4326(包括4490,4214以及4610),3857,会自动读取元信息上的坐标系,不需要用户指定,
<br><br>[ES5引入方式]:<br/>
Zondy.Layer.IGSVectorTileLayer() <br/>
[ES6引入方式]:<br/>
import { IGSVectorTileLayer } from &quot;@mapgis/webclient-common&quot; <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log(&quot;加载完毕:&quot;, result.layer)<br/>
});<br/>
如果不想在该事件中放入业务代码,则请确认图层资源以加载完毕后再进行操作<br/>
if(layer.loadStatus === 'loaded') {<br/>
// 你的业务逻辑<br/>
}
<br/>
<br/>
注意:三维上,不支持简单Marker样式设定;二维上,简单Marker的颜色,外边线样式,旋转角度无法在图层初始化和初始化后修改,须在制作数据时进行指定</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="IGSVectorTileSubLayer.html">IGSVectorTileSubLayer</a><span style="display: none;"><p>IGS矢量瓦片子图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Layer.html">Layer</a><span style="display: none;"><p>图层基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="M3DModelCacheLayer.html">M3DModelCacheLayer</a><span style="display: none;"><p>M3D缓存图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="MapImageLayer.html">MapImageLayer</a><span style="display: none;"><p>影像图层基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="MapVLayer.html">MapVLayer</a><span style="display: none;"><p>MapV图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="OGCLayer.html">OGCLayer</a><span style="display: none;"><p>OGS图层基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="OverlayLayer.html">OverlayLayer</a><span style="display: none;"><p>覆盖物图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Scene.html">Scene</a><span style="display: none;"><p>场景对象</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SceneLayer.html">SceneLayer</a><span style="display: none;"><p>场景图层基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SubLayer.html">SubLayer</a><span style="display: none;"><p>子图层基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="TerrainCacheLayer.html">TerrainCacheLayer</a><span style="display: none;"><p>地形图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="TileLayer.html">TileLayer</a><span style="display: none;"><p>瓦片图层基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="UnknownLayer.html">UnknownLayer</a><span style="display: none;"><p>未定义图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="VectorTileLayer.html">VectorTileLayer</a><span style="display: none;"><p>图层基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="WFSLayer.html">WFSLayer</a><span style="display: none;"><p>WFS图层,<br>
目前二维和三维上支持4326(包括4490,4214以及4610),3857以及EPSG支持的自定义坐标系,WFS服务会自动读取元信息上的坐标系,不需要用户指定
<br><br>[ES5引入方式]:<br/>
Zondy.Layer.WMTSLayer() <br/>
[ES6引入方式]:<br/>
import { WMTSLayer } from &quot;@mapgis/webclient-common&quot; <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log(&quot;加载完毕:&quot;, result.layer)<br/>
});<br/>
如果不想在该事件中放入业务代码,则请确认图层资源已加载完毕后再进行操作<br/>
if(layer.loadStatus === 'loaded') {<br/>
// 你的业务逻辑<br/>
}</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="WMSLayer.html">WMSLayer</a><span style="display: none;"><p>WMS图层,<br/>
目前二维上支持4326(包括4490,4214以及4610),3857以及EPSG支持的自定义坐标系,三维上仅支持4326(包括4490,4214以及4610)以及3857坐标系,会自动读取元信息上的坐标系,不需要用户指定,同时所有的WMS服务都支持动态投影,用户也可指定任意该服务支持的坐标系<br/>
<br>[ES5引入方式]:<br/>
Zondy.Layer.WMSLayer() <br/>
[ES6引入方式]:<br/>
import { WMSLayer } from &quot;@mapgis/webclient-common&quot; <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log(&quot;加载完毕:&quot;, result.layer)<br/>
});<br/>
如果不想在该事件中放入业务代码,则请确认图层资源已加载完毕后再进行操作<br/>
if(layer.loadStatus === 'loaded') {<br/>
// 你的业务逻辑<br/>
}</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="WMSSubLayer.html">WMSSubLayer</a><span style="display: none;"><p>WMS子图层</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="WMTSLayer.html">WMTSLayer</a><span style="display: none;"><p>WMTS图层,<br>
目前二维上支持4326(包括4490,4214以及4610),3857以及EPSG支持的自定义坐标系,三维上仅支持4326(包括4490,4214以及4610)以及3857坐标系,WMTS服务会自动读取元信息上的坐标系,不需要用户指定
<br><br>[ES5引入方式]:<br/>
Zondy.Layer.WMTSLayer() <br/>
[ES6引入方式]:<br/>
import { WMTSLayer } from &quot;@mapgis/webclient-common&quot; <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log(&quot;加载完毕:&quot;, result.layer)<br/>
});<br/>
如果不想在该事件中放入业务代码,则请确认图层资源已加载完毕后再进行操作<br/>
if(layer.loadStatus === 'loaded') {<br/>
// 你的业务逻辑<br/>
}</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="WMTSSubLayer.html">WMTSSubLayer</a><span style="display: none;"><p>IGS地图服务图层</p></span></li></ul><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">地图模块</div><ul class="mapgis-sidebar-menus"><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Basemap.html">Basemap</a><span style="display: none;"><p>基础地图对象
<br>[ES5引入方式]:<br/>
Zondy.Basemap() <br/>
[ES6引入方式]:<br/>
import { Map } from &quot;@mapgis/webclient-common&quot; <br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Map.html">Map</a><span style="display: none;"><p>图层管理容器,和地图引擎无关,通过此对象而不是地图引擎来对图层进行管理
<br>[ES5引入方式]:<br/>
Zondy.Map() <br/>
[ES6引入方式]:<br/>
import { Map } from &quot;@mapgis/webclient-common&quot; <br/></p></span></li></ul><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">渲染器模块</div><ul class="mapgis-sidebar-menus"><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="BaseRenderer.html">BaseRenderer</a><span style="display: none;"><p>专题图渲染基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ClassBreakInfo.html">ClassBreakInfo</a><span style="display: none;"><p>三维专题图-分段信息</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ClassBreakRenderer.html">ClassBreakRenderer</a><span style="display: none;"><p>分段专题图渲染样式,支持的图层如下:<br/>
[IGS地图图片图层]{@link IGSMapImageLayer}、[几何图形图层]{@link GraphicsLayer}、[IGS要素图层]{@link IGSFeatureLayer}、
[geojson图层]{@link GeoJSONLayer}、[OGC-WFS图层]{@link WFSLayer}</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ClusterInfo.html">ClusterInfo</a><span style="display: none;"><p>聚合点数量区间内的符号信息</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ClusterRenderer.html">ClusterRenderer</a><span style="display: none;"><p>聚类渲染器,多个点聚集在一起,会形成一个点符号</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ColorStop.html">ColorStop</a><span style="display: none;"><p>颜色分段</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ColorVariable.html">ColorVariable</a><span style="display: none;"><p>color视觉变量</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="HeatmapColorStop.html">HeatmapColorStop</a><span style="display: none;"><p>热力图分段颜色和比率</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="HeatmapRenderer.html">HeatmapRenderer</a><span style="display: none;"><p>热力图渲染器</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="OpacityStop.html">OpacityStop</a><span style="display: none;"><p>透明度分段</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="OpacityVariable.html">OpacityVariable</a><span style="display: none;"><p>opacity视觉变量</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="RandomRenderer.html">RandomRenderer</a><span style="display: none;"><p>随机渲染器,将随机颜色赋予要素,根据zoom等级颜色也将发生变化</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="RankRenderer.html">RankRenderer</a><span style="display: none;"><p>等级符号专题图,符号尺寸随指定字段的值的变化而变化</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SimpleRenderer.html">SimpleRenderer</a><span style="display: none;"><p>统一专题图渲染样式,支持的图层如下:<br/>
[几何图形图层]{@link GraphicsLayer}、[IGS要素图层]{@link IGSFeatureLayer}、
[geojson图层]{@link GeoJSONLayer}、[OGC-WFS图层]{@link WFSLayer}</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SizeStop.html">SizeStop</a><span style="display: none;"><p>size视觉变量</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SizeVariable.html">SizeVariable</a><span style="display: none;"><p>size视觉变量</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="UniqueValueInfo.html">UniqueValueInfo</a><span style="display: none;"><p>三维专题图-单值信息</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="UniqueValueRenderer.html">UniqueValueRenderer</a><span style="display: none;"><p>单值专题图渲染样式,支持的图层如下:<br/>
[IGS地图图片图层]{@link IGSMapImageLayer}、[几何图形图层]{@link GraphicsLayer}、[IGS要素图层]{@link IGSFeatureLayer}、
[geojson图层]{@link GeoJSONLayer}、[OGC-WFS图层]{@link WFSLayer}</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="VisualVariable.html">VisualVariable</a><span style="display: none;"><p>视觉变量基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Zondy.ThemeLayer.GraphThemeLayer.html">GraphThemeLayer</a><span style="display: none;"><p>统计专题图通过为每个要素绘制统计图表来反映其对应的专题值的大小。它可同时表示多个字段属性信息,在区域本身与各区域之间形成横向和纵向的对比。<br>统计专题图多用于具有相关数量特征的地图上,比如表示不同地区多年的粮食产量、GDP、人口等,不同时段客运量、地铁流量等。目前提供的统计图类型有:柱状图(Bar),折线图(Line),饼图(Pie),三维柱状图(Bar3D),点状图(Point),环状图(Ring)。</p></span></li></ul><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">视图模块</div><ul class="mapgis-sidebar-menus"><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="BaseView.html">BaseView</a><span style="display: none;"><p>视图类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="MapView.html">MapView</a><span style="display: none;"><p>二维场景视图(leaflet引擎),对地图引擎进行管理,如果要对地图图层进行管理请参考[Map]{@link Map},<br/>
参考示例:
<a href='#MapView'>[初始化二维场景视图]</a>
<br>[ES5引入方式]:<br/>
Zondy.MapView() <br/>
[ES6引入方式]:<br/>
import { MapView } from '@mapgis/webclient-leaflet-plugin' <br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="VideoMapView.html">VideoMapView</a><span style="display: none;">undefined</span></li></ul><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">符号模块</div><ul class="mapgis-sidebar-menus"><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Callout3D.html">Callout3D</a><span style="display: none;"><p>三维索引样式基类,当一个符号相对于原始位置有偏移时,该符号能显示其真实位置</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ColorMaterial.html">ColorMaterial</a><span style="display: none;"><p>颜色材质,适用于所有三维符号</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Edges3D.html">Edges3D</a><span style="display: none;"><p>轮廓线样式</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ExtrudeSymbol3DLayer.html">ExtrudeSymbol3DLayer</a><span style="display: none;"><p>三维拉伸区符号图层,用来在三维场景中绘制拉伸的区几何,不支持二维地图视图<br/>
示例如下:<br/>
<a href='#ExtrudeSymbol3DLayer'>[1、创建三维拉伸区符号图层]</a><br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="FillSymbol.html">FillSymbol</a><span style="display: none;"><p>填充符号基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="FillSymbol3DLayer.html">FillSymbol3DLayer</a><span style="display: none;"><p>三维区符号图层,用于在三维场景中绘制平面区对象,不支持二维视图<br/>
示例如下:<br/>
<a href='#FillSymbol3DLayer'>[1、创建三维区符号图层]</a><br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="FillSymbol3DOutline.html">FillSymbol3DOutline</a><span style="display: none;"><p>三维区符号图层的外边线样式</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="IconResource.html">IconResource</a><span style="display: none;"><p>图标资源,如果没有设置href,则使用系统自带的图标</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="IconSymbol3DLayer.html">IconSymbol3DLayer</a><span style="display: none;"><p>三维图标符号图层,用来在三维场景中绘制图标,不支持二维地图视图<br/>
支持使用网络图片资源或者使用系统自带的图标资源<br/>
是一个始终朝向屏幕,并且立起来的图标<br/>
示例如下:<br/>
<a href='#IconSymbol3DLayer-href'>[1、使用网络资源创建一个三维图标图层对象]</a><br/>
<a href='#IconSymbol3DLayer-primitive'>[2、使用系统自带资源创建一个三维图标图层对象]</a><br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="LabelSymbol3D.html">LabelSymbol3D</a><span style="display: none;"><p>三维注记符号,用于在三维场景中渲染线几何要素,不支持在二维视图中使用;<br/>
三维注记符号必须包含如下符号图层中的一个或多个,才能在三维场景中显示要素:<br/>
[三维文字符号图层]{@link TextSymbol3DLayer}<br/>
示例如下:<br/>
<a href='#LabelSymbol3D'>[1、创建一个三维注记符号对象]</a><br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="LineCallout3D.html">LineCallout3D</a><span style="display: none;"><p>注记索引线样式,该线会链接注记和所属要素,当一个符号相对于原始位置有偏移时,该符号能显示其真实位置</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="LineStyleMarker3D.html">LineStyleMarker3D</a><span style="display: none;"><p>设置线的端点的Marker的样式</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="LineStylePattern3D.html">LineStylePattern3D</a><span style="display: none;"><p>三维虚线样式设置</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="LineSymbol.html">LineSymbol</a><span style="display: none;"><p>线符号基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="LineSymbol3D.html">LineSymbol3D</a><span style="display: none;"><p>三维线符号,用于在三维场景中渲染线几何要素,不支持在二维视图中使用;<br/>
三维线符号必须包含如下符号图层中的一个或多个,才能在三维场景中显示要素:<br/>
[三维线符号图层]{@link LineSymbol3DLayer}、[三维管道符号图层]{@link PathSymbol3DLayer}<br/>
示例如下:<br/>
<a href='#LineSymbol3D'>[1、创建线三维符号]</a><br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="LineSymbol3DLayer.html">LineSymbol3DLayer</a><span style="display: none;"><p>三维线符号图层,用来在三维场景中绘制二维线,不支持二维地图视图<br/>
示例如下:<br/>
<a href='#LineSymbol3DLayer'>[1、创建三维线符号图层]</a><br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="LineSymbolMarker.html">LineSymbolMarker</a><span style="display: none;"><p>标记符号</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="MapGISTextSymbol.html">MapGISTextSymbol</a><span style="display: none;"><p>文本符号,支持点几何对象,参考示例:<a href='#new-MapGISTextSymbol'>[创建文本样式]</a>
<br><br>[ES5引入方式]:<br/>
Zondy.Symbol.MapGISTextSymbol() <br/>
[ES6引入方式]:<br/>
import { MapGISTextSymbol } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="MarkerSymbol.html">MarkerSymbol</a><span style="display: none;"><p>Marker符号基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="ObjectSymbol3DLayer.html">ObjectSymbol3DLayer</a><span style="display: none;"><p>三维体对象符号图层,使用三维体符号来绘制一个点几何要素<br/>
通过设置resource的primitive属性来设置符号形状,支持如下形状:<br/>
sphere、cylinder、cube、cone、inverted-cone、diamond、tetrahedron<br/>
也可通过设置resource中的href属性,来加载gltf数据<br/>
同时通过设置material属性来设置符号的外观<br/>
示例如下:<br/>
<a href='#ObjectSymbol3DLayer-href'>[1、使用网络资源创建一个三维体对象符号图层对象]</a><br/>
<a href='#ObjectSymbol3DLayer-primitive'>[2、使用系统自带资源创建一个三维体对象符号图层对象]</a><br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="PathSymbol3DLayer.html">PathSymbol3DLayer</a><span style="display: none;"><p>三维管道符号图层,定义如何在三维场景视图中绘制一个管道线<br/>
示例如下:<br/>
<a href='#PathSymbol3DLayer'>[1、创建三维管道符号图层]</a><br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="PictureFillSymbol.html">PictureFillSymbol</a><span style="display: none;"><p>图片填充符号</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="PictureMarkerSymbol.html">PictureMarkerSymbol</a><span style="display: none;"><p>图片Marker符号,支持点几何对象,参考示例:<a href='#new-PictureMarkerSymbol'>[图片Marker样式]</a>
<br><br>[ES5引入方式]:<br/>
Zondy.Symbol.PictureMarkerSymbol() <br/>
[ES6引入方式]:<br/>
import { PictureMarkerSymbol } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="PointSymbol3D.html">PointSymbol3D</a><span style="display: none;"><p>三维点符号,在三维场景中渲染点几何要素,不支持二维视图;<br/>
三维点符号必须包含如下符号图层中的一个或多个,才能在三维场景中显示要素:<br/>
[三维图标符号图层]{@link IconSymbol3DLayer}、[三维对象符号图层]{@link ObjectSymbol3DLayer}、[三维文字符号图层]{@link TextSymbol3DLayer}<br/>
示例如下:<br/>
<a href='#PointSymbol3D'>[1、创建一个三维点符号对象]</a><br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="PointSymbol3DOutline.html">PointSymbol3DOutline</a><span style="display: none;"><p>三维点符号图层的外边线样式</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="PolygonSymbol3D.html">PolygonSymbol3D</a><span style="display: none;"><p>三维体符号,用于在三维场景视图中渲染几何要素,不支持二维视图<br/>
三维体符号必须包含如下符号图层中的一个或多个,才能在三维场景中显示要素:<br/>
[三维区符号图层]{@link FillSymbol3DLayer}、[三维拉伸区符号图层]{@link ExtrudeSymbol3DLayer}、[三维线符号图层]{@link LineSymbol3DLayer}、[三维图标符号图层]{@link IconSymbol3DLayer}、[三维体对象符号图层]{@link ObjectSymbol3DLayer}、[三维注记符号图层]{@link TextSymbol3DLayer}<br/>
示例如下:<br/>
<a href='#PolygonSymbol3D'>[1、创建一个三维体符号对象]</a><br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SimpleFillSymbol.html">SimpleFillSymbol</a><span style="display: none;"><p>简单填充符号,参考示例:<a href='#new-SimpleFillSymbol'>[填充符号样式]</a>
<br><br>[ES5引入方式]:<br/>
Zondy.Symbol.SimpleFillSymbol() <br/>
[ES6引入方式]:<br/>
import { SimpleFillSymbol } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SimpleLineSymbol.html">SimpleLineSymbol</a><span style="display: none;"><p>简单线符号,支持线几何对象,参考示例:<a href='#new-SimpleLineSymbol'>[线符号样式]</a>
<br><br>[ES5引入方式]:<br/>
Zondy.Symbol.SimpleLineSymbol() <br/>
[ES6引入方式]:<br/>
import { SimpleLineSymbol } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SimpleMarkerSymbol.html">SimpleMarkerSymbol</a><span style="display: none;"><p>简单Marker符号,支持点几何对象,参考示例:<a href='#new-SimpleMarkerSymbol'>[简单Marker样式]</a>
<br><br>[ES5引入方式]:<br/>
Zondy.Symbol.SimpleMarkerSymbol() <br/>
[ES6引入方式]:<br/>
import { SimpleMarkerSymbol } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="StylePattern3D.html">StylePattern3D</a><span style="display: none;"><p>三维区间隔填充样式设置</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Symbol.html">Symbol</a><span style="display: none;"><p>符号基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Symbol3DLayer.html">Symbol3DLayer</a><span style="display: none;"><p>三维符号图层基类,用来定义在三维中展示的点、线、区几何以及gltf的样式<br/>
所有的三维符号都有一个symbolLayers属性,是一个Symbol3DLayer的集合对象,所有的符号必须至少拥有一个或多个三维符号图层,才能进行正常显示<br/>
现有如下类型的三维符号图层:<br/>
IconSymbol3DLayer、ObjectSymbol3DLayer、LineSymbol3DLayer、PathSymbol3DLayer、FillSymbol3DLayer、WaterSymbol3DLayer、ExtrudeSymbol3DLayer、TextSymbol3DLayer<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Symbol3DVerticalOffset.html">Symbol3DVerticalOffset</a><span style="display: none;"><p>符号垂直偏移量,将一个符号在竖直世界轴的方向上进行平移</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="TextHalo.html">TextHalo</a><span style="display: none;"><p>文字光晕样式</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="TextSymbol.html">TextSymbol</a><span style="display: none;"><p>文本符号,支持点几何对象,参考示例:<a href='#new-TextSymbol'>[创建文本样式]</a>
<br><br>[ES5引入方式]:<br/>
Zondy.Symbol.TextSymbol() <br/>
[ES6引入方式]:<br/>
import { TextSymbol } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="TextSymbol3DLayer.html">TextSymbol3DLayer</a><span style="display: none;"><p>三维注记符号图层,定义如何在三维场景中显示文字,不支持二维视图<br/>
示例如下:<br/>
<a href='#TextSymbol3DLayer'>[1、创建一个三维注记符号图层对象]</a><br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="WaterSymbol3DLayer.html">WaterSymbol3DLayer</a><span style="display: none;"><p>水面符号图层,定义如何在三维场景中沟构造水面几何,不支持二维视图</p></span></li></ul><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">几何模块</div><ul class="mapgis-sidebar-menus"><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Circle.html">Circle</a><span style="display: none;"><p>几何圆,参考示例:<a href='#Circle'>[几何圆对象]</a>
<br><br>[ES5引入方式]:<br/>
Zondy.Geometry.Circle() <br/>
[ES6引入方式]:<br/>
import { Circle } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Extent.html">Extent</a><span style="display: none;"><p>几何范围对象,即左下角和右上角组成的矩形范围几何对象,参考示例:<a href='#Extent'>[几何范围对象]</a>
<br><br>[ES5引入方式]:<br/>
Zondy.Geometry.Extent() <br/>
[ES6引入方式]:<br/>
import { Extent } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Geometry.html">Geometry</a><span style="display: none;"><p>几何图形对象基类
<br><br>[ES5引入方式]:<br/>
Zondy.Geometry.Geometry() <br/>
[ES6引入方式]:<br/>
import { Geometry } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="GeometryEngine.html">GeometryEngine</a><span style="display: none;"><p>几何分析工具</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="LineString.html">LineString</a><span style="display: none;"><p>线几何对象
<br><br>[ES5引入方式]:<br/>
Zondy.Geometry.LineString() <br/>
[ES6引入方式]:<br/>
import { LineString } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="MultiLineString.html">MultiLineString</a><span style="display: none;"><p>多线段几何
<br><br>[ES5引入方式]:<br/>
Zondy.Geometry.MultiLineString() <br/>
[ES6引入方式]:<br/>
import { MultiLineString } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="MultiPoint.html">MultiPoint</a><span style="display: none;"><p>多点几何对象
<br><br>[ES5引入方式]:<br/>
Zondy.Geometry.MultiPoint() <br/>
[ES6引入方式]:<br/>
import { MultiPoint } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="MultiPolygon.html">MultiPolygon</a><span style="display: none;"><p>多区几何
<br><br>[ES5引入方式]:<br/>
Zondy.Geometry.MultiPolygon() <br/>
[ES6引入方式]:<br/>
import { MultiPolygon } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Point.html">Point</a><span style="display: none;"><p>点几何对象
<br><br>[ES5引入方式]:<br/>
Zondy.Geometry.Point() <br/>
[ES6引入方式]:<br/>
import { Point } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Polygon.html">Polygon</a><span style="display: none;"><p>区几何,由多个环(ring)构成的几何对象,仅支持带洞区和非带洞区,不支持带岛区,即三个圈重叠<br/>
多边形的第一个环(ring)即外圈,从第二个环开始为内圈,内圈可以重合、相交、自相交,但是不能超过外圈
<br><br>[ES5引入方式]:<br/>
Zondy.Geometry.Polygon() <br/>
[ES6引入方式]:<br/>
import { Polygon } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Projection.html">Projection</a><span style="display: none;"><p>投影转换工具</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SpatialReference.html">SpatialReference</a><span style="display: none;"><p>空间参考系
<br><br>[ES5引入方式]:<br/>
Zondy.SpatialReference() <br/>
[ES6引入方式]:<br/>
import { SpatialReference } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li></ul><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">undefined</div><ul class="mapgis-sidebar-menus"><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="DrawControl.html">DrawControl</a><span style="display: none;"><p>绘制工具</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Screenshot.html">Screenshot</a><span style="display: none;"><p>打印工具</p></span></li></ul><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">基础对象模块</div><ul class="mapgis-sidebar-menus"><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Evented.html">Evented</a><span style="display: none;"><p>事件基类,所有可接收或者发送的对象继承于此</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="UpdateContent.html">UpdateContent</a><span style="display: none;"><p>更新内容对象</p></span></li></ul><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">要素模块</div><ul class="mapgis-sidebar-menus"><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Feature.html">Feature</a><span style="display: none;"><p>要素对象,示例如下:<a id='add-Feature'>[初始化要素对象]</a>
<br><br>[ES5引入方式]:<br/>
Zondy.Feature() <br/>
[ES6引入方式]:<br/>
import { Feature } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="FeatureSet.html">FeatureSet</a><span style="display: none;"><p>要素集合类,示例如下:<a id='add-FeatureSet'>[初始化要素集合对象]</a>
<br><br>[ES5引入方式]:<br/>
Zondy.FeatureSet() <br/>
[ES6引入方式]:<br/>
import { FeatureSet } from &quot;@mapgis/webclient-common&quot; <br/>
<br/></p></span></li></ul><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">undefined</div><ul class="mapgis-sidebar-menus"><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Popup.html">Popup</a><span style="display: none;"><p>二维场景信息弹窗(leaflet引擎)
参考示例:
<a href='#MapView'>[初始化二维场景视图]</a>
[ES6引入方式]:<br/>
import { Popup } from '@mapgis/webclient-leaflet-plugin' <br/>
自定义样式说明:<br/>
zondy-popup__content 弹窗容器样式<br/>
zondy-popup__tip 弹窗对话框箭头样式<br/>
zondy-popup__header 弹窗头部样式<br/>
zondy-popup__content 弹窗主体样式<br/>
zondy-popup__footer 弹窗底部样式<br/></p></span></li></ul><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">草图编辑模块</div><ul class="mapgis-sidebar-menus"><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SketchBaseDrawTool.html">SketchBaseDrawTool</a><span style="display: none;"><p>草图基础绘图工具类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SketchCircleDrawTool.html">SketchCircleDrawTool</a><span style="display: none;"><p>面绘图工具类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SketchEditor.html">SketchEditor</a><span style="display: none;"><p>草图编辑基类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SketchEditorLeaflet.html">SketchEditorLeaflet</a><span style="display: none;"><p>二维场景草图编辑类<br/>
<br>[ES5引入方式]:<br/>
const { SketchEditorLeaflet } = Zondy <br/>
[ES6引入方式]:<br/>
import { SketchEditorLeaflet } from &quot;@mapgis/webclient-leaflet-plugin&quot; <br/></p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SketchEditorVideo.html">SketchEditorVideo</a><span style="display: none;">undefined</span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SketchEditorVideoBase.html">SketchEditorVideoBase</a><span style="display: none;">undefined</span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SketchExtentDrawTool.html">SketchExtentDrawTool</a><span style="display: none;"><p>面绘图工具类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SketchPointDrawTool.html">SketchPointDrawTool</a><span style="display: none;"><p>点绘图工具类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SketchPolygonDrawTool.html">SketchPolygonDrawTool</a><span style="display: none;"><p>面绘图工具类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SketchPolylineDrawTool.html">SketchPolylineDrawTool</a><span style="display: none;"><p>面绘图工具类</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SketchStage.html">SketchStage</a><span style="display: none;"><p>草图图形集合</p></span></li><li><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SketchStyle.html">SketchStyle</a><span style="display: none;"><p>草图样式管理类</p></span></li></ul></div>
                
            </nav>
        </div>
        <div class="core" id="main-content-wrapper">
            <div class="content">
                <header id="page-title" class="page-title">
                    <span class="page-title-main">类名</span>
                    <span class="page-title-sub">common/document/layer/igserver/IGSVectorTileLayer.js</span>
                </header>
                



    
    <section>
        <article>
            <pre class="prettyprint source linenums"><code>import { VectorTileLayer } from '../baseLayer'
import { LayerEventType, LayerType, LoadStatus } from '../../../base/enum'
import { Zondy } from '../../../base'
import { defaultValue, isNull, isNumber, Log, toJSON } from '../../../util'
import { VectorTileServer } from '../../../service'
import { Extent, Point, SpatialReference } from '../../../base/geometry'
import IGSVectorTileSubLayer from './IGSVectorTileSubLayer'
import { LayerViewUpdateEvent } from '../../../base/event'
import TileInfoUtil from '../support/TileInfoUtil'
import TileInfo from '../support/TileInfo'
import { jsonClone } from '../../../util/Utils'

/**
 * IGS矢量瓦片图层
 * 支持IGS1.0和2.0两个服务版本,目前二维和三维上支持4326(包括4490,4214以及4610),3857,会自动读取元信息上的坐标系,不需要用户指定,
 * &lt;br>&lt;br>[ES5引入方式]:&lt;br/>
 * Zondy.Layer.IGSVectorTileLayer() &lt;br/>
 * [ES6引入方式]:&lt;br/>
 * import { IGSVectorTileLayer } from "@mapgis/webclient-common" &lt;br/>
 * &lt;br/>
 * 针对图层的操作请在图层加载完毕事件中进行&lt;br/>
 * Layer.on('layerview-created', function (result) {&lt;br/>
 *   console.log("加载完毕:", result.layer)&lt;br/>
 * });&lt;br/>
 * 如果不想在该事件中放入业务代码,则请确认图层资源以加载完毕后再进行操作&lt;br/>
 * if(layer.loadStatus === 'loaded') {&lt;br/>
 *   // 你的业务逻辑&lt;br/>
 * }
 * &lt;br/>
 * &lt;br/>
 * 注意:三维上,不支持简单Marker样式设定;二维上,简单Marker的颜色,外边线样式,旋转角度无法在图层初始化和初始化后修改,须在制作数据时进行指定
 * @class IGSVectorTileLayer
 * @moduleEX LayerModule
 * @classdesc IGS矢量瓦片图层
 * @extends VectorTileLayer
 * @fires Layer#图层加载完毕事件
 * @fires Layer#图层销毁完毕事件
 * @fires Layer#图层更新完毕事件
 * @fires Layer#图层显隐更新完毕事件
 * @fires Layer#图层透明度更新完毕事件
 * @param {Object} options 构造参数
 * @param {String} [options.url] 服务基地址,&lt;br>
 * IGS1.0的服务为:http://{ip}:6163/igs/rest/mrms/tiles/{serviceName},需要注意由于igs1.0版本不再新增功能,无法解析矢量瓦片Lod信息以及坐标系信息,目前需要在矢量瓦片图层接口上显式设置坐标系信息,默认坐标系3857,可选4326或3857,参考示例:&lt;a href='#igs-1'>[IGS1.0的矢量瓦片示例]&lt;/a>&lt;br/>
 * IGS2.0的服务为:http://{ip}:{port}/igs/rest/services/VectorTile/{serviceName}/VectorTileServer,参考示例:&lt;a href='#igs-2'>[IGS2.0的矢量瓦片示例]&lt;/a>&lt;br/>
 * 删除图层方法:&lt;a href='#remove-layer'>[删除图层]&lt;/a>
 * @param {Number} [options.minScale = null] 最小比例尺,只有当地图视图的比例尺大于最小比例尺时显示矢量瓦片图层
 * @param {Number} [options.maxScale = null] 最大比例尺,只有当地图视图的比例尺小于最大比例尺时显示矢量瓦片图层
 * @param {Number} [options.opacity = 1] 图层透明度,0到1之间的值,0为完全透明,1为不透明,参考示例:&lt;a href='#opacity'>[设置图层透明度]&lt;/a>
 * @param {String} [options.tokenKey = 'token'] token名
 * @param {String} [options.tokenValue] token值,只有当tokenValue存在时,才会绑定token
 * @param {Boolean} [options.visible = true] 图层显示或隐藏,true则显示,false则隐藏,参考示例:&lt;a href='#visible'>[设置图层显隐]&lt;/a>
 * @param {Array&lt;IGSVectorTileSubLayer>} [options.sublayers=[]] 子图层信息。指定的和服务器端获取图层的交集, 默认不设置,加载全部图层。可设置子图层的可见性,以及专题图参数。&lt;br/>
 * @param {String} [option.labelsRenderMode = 'off-screen'] 指定矢量瓦片注记的渲染模式,仅在三维上有效。on-screen表示使用三维接口实时渲染注记;off-screen表示通过先将注记渲染到图片上,再通过三维接口渲染到屏幕。
 * @param {Polygon|Extent|Circle|null} [options.clippingArea = null] 图层空间裁剪范围,仅支持多边形裁剪、矩形裁剪、圆形裁剪
 * 专题图参数仅支持IGS2.0服务,目前子图层支持的专题图如下:&lt;br/>
 * [1、单值专题图]{@link UniqueValueRenderer}&lt;br/>
 * [2、分段专题图]{@link ClassBreakRenderer}&lt;br/>
 * [3、统一专题图]{@link SimpleRenderer}&lt;br/>
 * 参考示例:&lt;br/>
 * &lt;a href='#showAllSubLayers'>[1、显示所有子图层]&lt;/a>&lt;br/>
 * &lt;a href='#showSubLayersById'>[2、根据id显示子图层]&lt;/a>&lt;br/>
 * &lt;a href='#showSubLayers-property'>[3、通过修改子图参数,设置子图层显隐]&lt;/a>&lt;br/>
 * &lt;a href='#setLayerRenderer-unique'>[4、设置子图层专题图-单值专题图]&lt;/a>&lt;br/>
 * &lt;a href='#setLayerRenderer-break'>[5、设置子图层专题图-分段专题图]&lt;/a>&lt;br/>
 * &lt;a href='#setLayerRenderer-simple'>[6、设置子图层专题图-统一专题图]&lt;/a>&lt;br/>
 * &lt;a href='#setLayerRenderer-property'>[7、通过修改子图参数,设置子图层专题图]&lt;/a>&lt;br/>
 *
 *@summary &lt;h5>支持如下方法:&lt;/h5>
 * &lt;a href='#findSublayerById'>[1、根据子图层id查询图层]&lt;/a>&lt;br/>
 * &lt;a href='#loadStyle'>[2、获取矢量瓦片样式]&lt;/a>&lt;br/>
 * &lt;a href='#fromJSON'>[3、通过传入的json构造并返回一个新的几何对象]&lt;/a>&lt;br/>
 * [4、导出为json对象]{@link OGCLayer#toJSON}&lt;br/>
 * [5、克隆几何对象]{@link OGCLayer#clone}
 * &lt;a href='#getLayoutProperties'>[6、获取图层布局属性]&lt;/a>&lt;br/>
 * &lt;a href='#setLayoutProperties'>[7、设置图层布局属性]&lt;/a>&lt;br/>
 * &lt;a href='#getPaintProperties'>[8、获取图层绘制属性]&lt;/a>&lt;br/>
 * &lt;a href='#setPaintProperties'>[9、设置图层绘制属性]&lt;/a>&lt;br/>
 * &lt;a href='#getStyleLayer'>[10、获取图层]&lt;/a>&lt;br/>
 * &lt;a href='#setStyleLayer'>[11、设置图层属性对象]&lt;/a>&lt;br/>
 * &lt;a href='#deleteStyleLayer'>[12、删除图层]&lt;/a>&lt;br/>
 * &lt;a href='#setStyleLayerVisible'>[13、设置图层可见性]&lt;/a>&lt;br/>
 * &lt;a href='#getStyleLayerVisible'>[14、获取图层可见性]&lt;/a>&lt;br/>
 * &lt;a href='#getStyleLayerFilter'>[15、获取属性过滤条件]&lt;/a>&lt;br/>
 * &lt;a href='#setStyleLayerFilter'>[16、属性过滤]&lt;/a>&lt;br/>
 * &lt;a href='#getStyleLayerZoomRange'>[17、获取图层最小、最大层级]&lt;/a>&lt;br/>
 * &lt;a href='#setStyleLayerZoomRange'>[18、设置图层最小、最大层级]&lt;/a>&lt;br/>
 *
 * @example &lt;caption>&lt;h7 id='igs-1'>IGS1.0的矢量瓦片示例&lt;/h7>&lt;/caption>
 * //初始化地图管理容器
 * // ES5引入方式
 * const { IGSVectorTileLayer } = Zondy.Layer
 * const { Map,MapView,SpatialReference } = Zondy
 * // ES6引入方式
 * import { IGSVectorTileLayer,Map,MapView } from "@mapgis/webclient-common"
 * const map = new Map();
 * //初始化地图引擎
 * const mapView = new MapView({
 *   //指定视图id
 *   viewId: "viewer-id",
 *   //绑定地图管理容器
 *   map: map
 * });
 * //添加矢量瓦片图层
 * const igsVectorTileLayer = new IGSVectorTileLayer({
 *   url: 'http://{ip}:6163/igs/rest/mrms/tiles/{serviceName}',
 *   spatialReference:new SpatialReference('EPSG:4326')
 * });
 * map.add(igsVectorTileLayer);
 *
 * @example &lt;caption>&lt;h7 id='igs-2'>IGS2.0的矢量瓦片示例&lt;/h7>&lt;/caption>
 *  // ES5引入方式
 * const { IGSVectorTileLayer } = Zondy.Layer
 * const { Map,MapView } = Zondy
 * // ES6引入方式
 * import { IGSVectorTileLayer } from "@mapgis/webclient-common"
 * //初始化地图管理容器
 * const map = new Map();
 * //初始化地图引擎
 * const mapView = new MapView({
 *   //指定视图id
 *   viewId: "viewer-id",
 *   //绑定地图管理容器
 *   map: map
 * });
 * //添加矢量瓦片图层
 * const igsVectorTileLayer = new IGSVectorTileLayer({
 *   url: 'http://{ip}:{port}/igs/rest/services/VectorTile/{serviceName}/VectorTileServer'
 * });
 * map.add(igsVectorTileLayer);
 *
 * @example &lt;caption>&lt;h7 id='opacity'>设置图层透明度&lt;/h7>&lt;/caption>
 * igsVectorTileLayer.opacity = 0.5
 *
 * @example &lt;caption>&lt;h7 id='visible'>显示或隐藏图层&lt;/h7>&lt;/caption>
 * igsVectorTileLayer.visible = !igsVectorTileLayer.visible
 *
 * @example &lt;caption>&lt;h7 id='remove-layer'>删除图层&lt;/h7>&lt;/caption>
 * map.remove(igsVectorTileLayer)
 *
 * @example &lt;caption>&lt;h7 id='showAllSubLayers'>显示所有子图层&lt;/h7>&lt;/caption>
 *  // ES5引入方式
 * const { IGSVectorTileLayer } = Zondy.Layer
 * // ES6引入方式
 * import { IGSVectorTileLayer } from "@mapgis/webclient-common"
 * // 添加图层
 * const igsVectorTileLayer = new IGSVectorTileLayer({
 *   // 服务基地址
 *   url: 'http://{ip}:{port}/igs/rest/services/VectorTile/{serviceName}/VectorTileServer',
 *   //默认不设置sublayers,加载全部图层
 * });
 * map.add(igsVectorTileLayer);
 *
 * @example &lt;caption>&lt;h7 id='showSubLayersById'>根据id显示子图层&lt;/h7>&lt;/caption>
 * // ES5引入方式
 * const { IGSVectorTileLayer } = Zondy.Layer
 * // ES6引入方式
 * import { IGSVectorTileLayer } from "@mapgis/webclient-common"
 * // 添加图层
 * const igsVectorTileLayer = new IGSVectorTileLayer({
 *   // 服务基地址
 *   url: 'http://{ip}:{port}/igs/rest/services/VectorTile/{serviceName}/VectorTileServer',
 *   // 根据id显示子图层
 *   sublayers: [
 *      {
 *        // 子图层id
 *        id: '子图层id',
 *        // 显示子图层
 *        visible: true
 *      }
 *    ]
 * });
 * map.add(igsVectorTileLayer);
 *
 * @example &lt;caption>&lt;h7 id='showSubLayers-property'>通过修改子图参数,设置子图层显隐&lt;/h7>&lt;/caption>
 * // ES5引入方式
 * const { IGSVectorTileLayer } = Zondy.Layer
 * // ES6引入方式
 * import { IGSVectorTileLayer } from "@mapgis/webclient-common"
 * // 添加图层
 * const igsVectorTileLayer = new IGSVectorTileLayer({
 *   // 服务基地址
 *   url: 'http://{ip}:{port}/igs/rest/services/VectorTile/{serviceName}/VectorTileServer'
 * });
 * map.add(igsVectorTileLayer);
 * igsVectorTileLayer.on('layerview-created', function (result) {
 *   console.log("加载完毕:", result.layer)
 *   // 根据id获取子图层
 *   const subLayer = igsVectorTileLayer.findSublayerById('图层id')
 *   // 设置子图层显隐
 *   subLayer.visible = false
 *   // 视点跳转
 *   sceneView.flyTo({
 *     extent: result.layer.extent
 *   })
 * })
 *
 * @example &lt;caption>&lt;h7 id='setLayerRenderer-unique'>设置子图层专题图-单值专题图&lt;/h7>&lt;/caption>
 * // ES5引入方式
 * const { IGSVectorTileLayer } = Zondy.Layer
 * const { UniqueValueRenderer } = Zondy.Renderer
 * const { SimpleFillSymbol,SimpleLineSymbol } = Zondy.Symbol
 * const { Color } = Zondy
 * // ES6引入方式
 * import { IGSVectorTileLayer,UniqueValueRenderer ,SimpleFillSymbol,SimpleLineSymbol,Color} from "@mapgis/webclient-common"
 * const igsVectorTileLayer = new IGSVectorTileLayer({
 *   // 服务基地址,当不指定图层名称时,默认查询第一个子图层
 *   url: 'http://{ip}:{port}/igs/rest/services/VectorTile/{serviceName}/VectorTileServer',
 *   // 设置子图层专题图
 *   sublayers: [
 *      {
 *        // 子图层id
 *        id: '子图层id',
 *        // 设置渲染样式-单值专题图
 *        renderer: new UniqueValueRenderer({
 *          //专题图过滤字段名
 *          field: '你的字段名',
 *          // 默认样式,当没有匹配到指定值时,会使用默认样式
 *          //因为该数据的几何类型为区,因此设置区样式
 *          defaultSymbol: new SimpleFillSymbol({
 *            // 填充颜色
 *            color: 'rgba(1,1,252,0)',
 *            // 外边线样式
 *            outline: new SimpleLineSymbol({
 *              //线颜色
 *              color: new Color(255, 1, 0, 1),
 *              //线宽
 *              width: 1
 *            })
 *          }),
 *          //单值专题图过滤调条件数组
 *          uniqueValueInfos: [{
 *            //指定字段值
 *            value: "指定的值",
 *            //匹配到该值后的样式
 *            //因为该数据的几何类型为区,因此设置区样式
 *            symbol: new SimpleFillSymbol({
 *              // 填充颜色
 *              color: 'rgba(1,1,252,1)',
 *              // 外边线样式
 *              outline: new SimpleLineSymbol({
 *                //线符号颜色
 *                color: new Color(255, 1, 0, 11),
 *                //线宽
 *                width: 1
 *                })
 *              })
 *            },{
 *              //指定字段值
 *              value: "指定的值",
 *              //匹配到该值后的样式
 *              //因为该数据的几何类型为区,因此设置区样式
 *              symbol: new SimpleFillSymbol({
 *                // 填充颜色
 *                color: new Color(211, 111, 11, 1)
 *              })
 *            }]
 *        })
 *      }
 *   ]
 * });
 * map.add(igsVectorTileLayer);
 *
 * @example &lt;caption>&lt;h7 id='setLayerRenderer-break'>设置子图层专题图-分段专题图&lt;/h7>&lt;/caption>
 * // ES5引入方式
 * const { IGSVectorTileLayer } = Zondy.Layer
 * const { ClassBreakRenderer } = Zondy.Renderer
 * const { SimpleFillSymbol,SimpleLineSymbol } = Zondy.Symbol
 * const { Color } = Zondy
 * // ES6引入方式
 * import { IGSVectorTileLayer,ClassBreakRenderer ,SimpleFillSymbol,SimpleLineSymbol,Color} from "@mapgis/webclient-commo
 * const igsVectorTileLayer = new IGSVectorTileLayer({
 *   // 服务基地址,当不指定图层名称时,默认查询第一个子图层
 *   url: 'http://{ip}:{port}/igs/rest/services/VectorTile/{serviceName}/VectorTileServer',
 *   // 设置子图层专题图
 *   sublayers: [
 *     {
 *      // 子图层id
 *      id: '子图层id',
 *      // 设置渲染样式-分段专题图
 *      renderer: new ClassBreakRenderer({
 *        //专题图过滤字段名
 *        field: '你的字段名',
 *        // 默认样式,当没有匹配到指定值时,会使用默认样式
 *        // 因为该数据的几何类型为区,因此设置区样式
 *        defaultSymbol:  new SimpleFillSymbol({
 *          // 填充颜色
 *          color: 'rgba(222,1,252,1)',
 *          // 线符号样式
 *          outline: new SimpleLineSymbol({
 *            //线符号颜色
 *            color: new Color(255, 1, 0, 1),
 *            //线宽
 *            width: 1
 *          })
 *        }),
 *        //分段专题图过滤条件数组
 *        classBreakInfos: [{
 *          // 最大过滤范围,field对应的值小于maxValue
 *          maxValue: "最大范围",
 *          // 最小过滤范围,field对应的值大于等于minValue
 *          minValue: "最小范围",
 *          // 匹配到该值后的样式
 *          // 因为该数据的几何类型为区,因此设置区样式
 *          symbol:  new SimpleFillSymbol({
 *            // 填充颜色
 *            color: 'rgba(1,1,252,1)',
 *            // 线符号样式
 *            outline: new SimpleLineSymbol({
 *              //线符号颜色
 *              color: new Color(255, 1, 0, 1),
 *              //线宽
 *              width: 1
 *            })
 *          })
 *        }]
 *      })
 *    }
 *  ]
 * });
 * map.add(igsVectorTileLayer);
 *
 * @example &lt;caption>&lt;h7 id='setLayerRenderer-property'>通过修改子图参数,设置子图层专题图&lt;/h7>&lt;/caption>
 * // ES5引入方式
 * const { IGSVectorTileLayer } = Zondy.Layer
 * const { ClassBreakRenderer } = Zondy.Renderer
 * const { SimpleFillSymbol,SimpleLineSymbol } = Zondy.Symbol
 * const { Color } = Zondy
 * // ES6引入方式
 * import { IGSVectorTileLayer,ClassBreakRenderer ,SimpleFillSymbol,SimpleLineSymbol,Color} from "@mapgis/webclient-commo
 * const igsVectorTileLayer = new IGSVectorTileLayer({
 *   // 服务基地址
 *   url: 'http://{ip}:{port}/igs/rest/services/VectorTile/{serviceName}/VectorTileServer'
 * });
 * map.add(igsVectorTileLayer);
 * // 根据id获取子图层
 * const subLayer = igsVectorTileLayer.findSublayerById('子图层id')
 * // 设置渲染样式-分段专题图
 * subLayer.renderer = new ClassBreakRenderer({
 *     // 专题图过滤字段名
 *     field: '你的字段名',
 *     // 默认样式,当没有匹配到指定值时,会使用默认样式
 *     // 因为该数据的几何类型为区,因此设置区样式
 *     defaultSymbol:  new SimpleFillSymbol({
 *       // 填充颜色
 *       color: 'rgba(222,1,252,1)',
 *       // 线符号样式
 *       outline: new SimpleLineSymbol({
 *         //线符号颜色
 *         color: new Color(255, 1, 0, 1),
 *         //线宽
 *         width: 1
 *       })
 *     }),
 *     //分段专题图过滤条件数组
 *     classBreakInfos: [{
 *       // 最大过滤范围,field对应的值小于maxValue
 *       maxValue: "最大范围",
 *       // 最小过滤范围,field对应的值大于等于minValue
 *       minValue: "最小范围",
 *       // 匹配到该值后的样式
 *       // 因为该数据的几何类型为区,因此设置区样式
 *       symbol:  new SimpleFillSymbol({
 *         // 填充颜色
 *         color: 'rgba(1,1,252,1)',
 *         // 线符号样式
 *         outline: new SimpleLineSymbol({
 *           //线符号颜色
 *           color: new Color(255, 1, 0, 1),
 *           //线宽
 *           width: 1
 *         })
 *       })
 *     }]
 *   })
 * @example &lt;caption>&lt;h7 id='setLayerRenderer-simple'>统一专题图&lt;/h7>&lt;/caption>
 * // ES5引入方式
 * const { IGSVectorTileLayer } = Zondy.Layer
 * const { SimpleRenderer } = Zondy.Renderer
 * const { SimpleFillSymbol,SimpleLineSymbol } = Zondy.Symbol
 * const { Color } = Zondy
 * // ES6引入方式
 * import { IGSVectorTileLayer,SimpleRenderer ,SimpleFillSymbol,SimpleLineSymbol,Color} from "@mapgis/webclient-commo
 * const igsVectorTileLayer = new IGSVectorTileLayer({
 *   // 服务基地址,当不指定图层名称时,默认查询第一个子图层
 *   url: 'http://{ip}:{port}/igs/rest/services/VectorTile/{serviceName}/VectorTileServer',
 *   // 设置渲染样式-统一专题图
 *   renderer: new SimpleRenderer({
 *     // 因为该数据的几何类型为区,因此设置区样式
 *     symbol: new SimpleFillSymbol({
 *       // 填充颜色
 *       color: new Zondy.Color(255, 0, 0),
 *       // 外边线样式
 *       outline: new SimpleLineSymbol({
 *         // 线颜色
 *         color: new Color(0, 0, 0),
 *         // 线宽度
 *         width: 1
 *       })
 *     })
 *   })
 * })
 */

class IGSVectorTileLayer extends VectorTileLayer {
  constructor(options) {
    super(options)
    options = defaultValue(options, {})
    this.type = LayerType.igsVectorTile
    this.description = 'IGS矢量瓦片图层'
    this.vectorTileType = 'igs'
    /**
     * 矢量瓦片服务地址
     * @member {String} IGSVectorTileLayer.prototype.url
     */
    this.url = defaultValue(options.url, '')
    /**
     * 矢量瓦片子图层
     * @member {Array&lt;IGSVectorTileSubLayer>} IGSVectorTileLayer.prototype.sublayers
     */
    this.sublayers = defaultValue(options.sublayers, [])
    /**
     * 服务支持的能力
     * @member {Array&lt;String>} IGSVectorTileLayer.prototype.capabilities
     */
    this.capabilities = []
    // 空间裁剪范围
    this._clippingArea = defaultValue(options.clippingArea, null)
    /**
     * 图层加载状态
     * @readonly
     * @default not-loaded
     * @member {LoadStatus} IGSMapImageLayer.prototype.loadStatus
     */
    this.loadStatus = LoadStatus.notLoaded
    /**
     * 指定矢量瓦片注记的渲染模式(目前仅支持三维上矢量瓦片注记的渲染)
     * @member {String} IGSVectorTileLayer.prototype.labelsRenderMode
     */
    this.labelsRenderMode = defaultValue(options.labelsRenderMode, 'off-screen')
    // 当前mvt矢量瓦片样式
    this._style = defaultValue(options._style, {})
    // 测试接口
    this.labelingInfo = defaultValue(options.labelingInfo, [])
    // 矢量瓦片服务
    this._vectorTileServer = new VectorTileServer({
      url: this.url
    })
    // 所有图层
    this._allSublayers = []
  }

  load() {
    // 发起请求
    const self = this
    const promise = this._vectorTileServer.queryServerInfo()

    return promise
      .then((result) => {
        Log.info('矢量瓦片信息查询成功:', result)
        const data = result.data
        // 初始化参考系
        const initSpatialReference = self._spatialReference
          ? self._spatialReference.clone()
          : null
        // 外部未设置空间参考系信息时,优先读取空间参考系相关信息
        if (data &amp;&amp; data.tileInfo &amp;&amp; data.tileInfo.spatialReference) {
          const spatialReference =
            data.spatialReference || data.tileInfo.spatialReference
          // 设置数据空间参考系
          if (spatialReference) {
            if (data.spatialReference.wkid) {
              self._spatialReference = new SpatialReference({
                wkid: parseInt(data.spatialReference.wkid)
              })
            } else if (data.spatialReference.wkt) {
              self._spatialReference = new SpatialReference({
                wkt: data.spatialReference.wkt
              })
            } else {
              Log.error(
                '矢量瓦片服务坐标系信息不存在,请检查igs返回的矢量瓦片服务元信息!'
              )
            }
          }
          // 获取瓦片信息
          self.tileInfo = TileInfoUtil.parseTileInfo2(data.tileInfo)
          // 重置extent
          if (isNull(self.extent) &amp;&amp; data.extent) {
            self.extent = new Extent({
              xmin: data.extent.xmin,
              ymin: data.extent.ymin,
              xmax: data.extent.xmax,
              ymax: data.extent.ymax,
              spatialReference: self._spatialReference
            })
          }
        }

        // 初始化坐标系 目前仅支持标准3857或4326
        if (initSpatialReference) {
          // 外部设置有参考系
          // 判断是否为地理坐标系
          self._spatialReference = initSpatialReference
          const geoCoodsArr = [4326, 4490, 4610, 4214]
          if (geoCoodsArr.indexOf(initSpatialReference.wkid) > -1) {
            self.tileInfo = new TileInfo({
              origin: new Point({
                coordinates: [-180, 90]
              }),
              lods: TileInfoUtil.getLods(1.40625, 'degree', 21),
              size: [256, 256],
              spatialReference: new SpatialReference('EPSG:4326')
            })
            self._spatialReference.extent = new Extent({
              xmin: -180,
              ymin: -90,
              xmax: 180,
              ymax: 90,
              spatialReference: new SpatialReference('EPSG:4326')
            })
            self._extent = self._spatialReference.extent.clone()
          }
        }
        // 没有设置坐标系时,默认为3857
        if (!self._spatialReference) {
          self._spatialReference = new SpatialReference('EPSG:3857')
          // web墨卡托
          self.tileInfo = new TileInfo({
            origin: new Point({
              coordinates: [-20037508.342787, 20037508.342787]
            }),
            lods: TileInfoUtil.getLods(156543.033925625, 'm', 21),
            size: [256, 256],
            spatialReference: new SpatialReference('EPSG:3857')
          })
          self._spatialReference.extent = new Extent({
            xmin: -20037508.342787,
            ymin: -20037508.342787,
            xmax: 20037508.342787,
            ymax: 20037508.342787,
            spatialReference: new SpatialReference('EPSG:3857')
          })
          self._extent = self._spatialReference.extent.clone()
        }

        // 支持mapbox加载矢量瓦片
        if (self._spatialReference &amp;&amp; self.tileInfo) {
          const tileInfo = self.tileInfo
          let tileSize = 256
          if (Array.isArray(tileInfo.size)) {
            tileSize = Math.max(tileInfo.size[0], tileInfo.size[1])
          }
          const cols = self.tileInfo.cols || 256
          const rols = self.tileInfo.rols || 256
          self._spatialReference._mapboxTileSize = Math.max(
            tileSize,
            cols,
            rols
          )
        }

        // 解析服务器提供的能力
        if (data.capabilities) {
          self.capabilities = Array.isArray(data.capabilities)
            ? data.capabilities
            : [data.capabilities]
        }

        return self._vectorTileServer
          .getStyle()
          .then((result) => {
            Log.info('矢量瓦片样式查询成功:', result)
            // 获取矢量瓦片样式信息
            self._style = result.data
            // 获取所有子图层
            const layers = self._style.layers
            const sublayers = []
            // 初始化图层
            if (Array.isArray(self.sublayers) &amp;&amp; self.sublayers.length > 0) {
              self.sublayers.forEach((sublayer) => {
                for (let i = 0; i &lt; layers.length; i++) {
                  const layerInfo = layers[i]
                  if (layerInfo.id === sublayer.id) {
                    const subLayer = new IGSVectorTileSubLayer(
                      // eslint-disable-next-line prefer-object-spread
                      Object.assign(
                        {
                          type: layerInfo.type,
                          id: layerInfo.id,
                          title: layerInfo.description,
                          style: layerInfo,
                          visible: undefined,
                          minZoom: layerInfo.minZoom,
                          maxZoom: layerInfo.maxZoom,
                          sublayers: [],
                          layer: self
                        },
                        sublayer
                      )
                    )
                    sublayers.push(subLayer)
                  }
                }
              })
            } else {
              for (let i = 0; i &lt; layers.length; i++) {
                const layerInfo = layers[i]
                const subLayer = new IGSVectorTileSubLayer({
                  type: layerInfo.type,
                  id: layerInfo.id,
                  title: layerInfo.description,
                  style: layerInfo,
                  visible: undefined,
                  minZoom: layerInfo.minZoom,
                  maxZoom: layerInfo.maxZoom,
                  sublayers: [],
                  layer: self
                })
                sublayers.push(subLayer)
              }
            }

            self.sublayers = sublayers

            return new Promise((resolve) => {
              self.loadStatus = LoadStatus.loaded
              self.loaded = true
              resolve(self)
            })
          })
          .catch((result) => {
            Log.error('矢量瓦片样式查询失败:', result)
          })
      })
      .catch((result) => {
        Log.error('矢量瓦片信息查询失败:', result)
      })
  }

  get allSublayers() {
    if (this._allSublayers.length === 0) {
      this.sublayers.forEach((element) => {
        this._getSubLayers(element, this._allSublayers)
      })
    }
    return this._allSublayers
  }

  get style() {
    const style = JSON.parse(JSON.stringify(this._style))
    // 设置图层样式
    style.layers = this.sublayers.map((v) =>
      JSON.parse(JSON.stringify(v.style))
    )
    return style
  }

  /**
   * 获取矢量瓦片子图层
   * @private
   * @param {IGSVectorTileSubLayer} subLayer 子图层
   * @param {Array&lt;IGSVectorTileSubLayer>} 矢量瓦片子图层数组
   */
  _getSubLayers(subLayer, sublayers) {
    sublayers.push(subLayer)
    if (subLayer.sublayers &amp;&amp; subLayer.sublayers.length > 0) {
      subLayer.sublayers.forEach((element) => {
        this._getSubLayers(element, sublayers)
      })
    }
  }

  /**
   * @description 根据子图层id查询图层
   * @param {String} sublayerID 图层ID
   * @return {IGSVectorTileSubLayer} 子图层
   * @example &lt;caption>&lt;h7 id='findSublayerById'>根据子图层id查询图层&lt;/h7>&lt;/caption>
   * // ES5引入方式
   * const { IGSVectorTileLayer } = Zondy.Layer
   * // ES6引入方式
   * import { IGSVectorTileLayer} from "@mapgis/webclient-common"
   * const igsVectorTileLayer = new IGSVectorTileLayer({
   *   // 服务基地址
   *   url: 'http://{ip}:{port}/igs/rest/services/VectorTile/{serviceName}/VectorTileServer'
   * });
   * map.add(igsVectorTileLayer);
   * // 根据id获取子图层
   * const subLayer = igsVectorTileLayer.findSublayerById('子图层id')
   */
  findSublayerById(sublayerID) {
    for (let i = 0; i &lt; this.allSublayers.length; i++) {
      if (this.allSublayers[i].id === sublayerID) {
        return this.allSublayers[i]
      }
    }
    return null
  }

  /**
   * 发送图层更新事件
   * @private
   * @param {Array&lt;LayerViewUpdateContent>} 更新内容
   * @fires IGSVectorTileLayer#图层样式更新事件
   */
  _fireLayerUpdateEvent(updateContent) {
    if (!this._map) return
    this._map.fire(
      LayerEventType.layerUpdate,
      new LayerViewUpdateEvent({
        type: LayerEventType.layerUpdate,
        target: this._map,
        layer: this,
        message: '',
        updateContent
      })
    )
  }

  /**
   * &lt;a id='getLayoutProperties'/>
   * 获取图层布局属性
   * @param {String} layerId 图层id
   * @return {Object|null} 返回图层布局属性
   */
  getLayoutProperties(layerId) {
    const sublayer = this.findSublayerById(layerId)
    if (sublayer) {
      const style = sublayer.style
      return style.layout || {}
    }
    return null
  }

  /**
   * &lt;a id='setLayoutProperties'/>
   * 设置图层布局属性
   * @param {String} layerId 图层id
   * @param {Object} layout 布局属性
   */
  setLayoutProperties(layerId, layout) {
    const sublayer = this.findSublayerById(layerId)
    if (sublayer &amp;&amp; sublayer.style) {
      sublayer.style.layout = Object.assign(
        sublayer.style.layout || {},
        layout || {}
      )
    }
    this._fireLayerUpdateEvent([
      {
        params: arguments,
        dataChanged: true,
        name: 'setLayoutProperties',
        operationType: 'method'
      }
    ])
  }

  /**
   * &lt;a id='getPaintProperties'/>
   * 获取图层绘制属性
   * @param {String} layerId 图层id
   * @return {Object|null} 返回图层绘制属性
   */
  getPaintProperties(layerId) {
    const sublayer = this.findSublayerById(layerId)
    if (sublayer) {
      const style = sublayer.style
      return style.paint || {}
    }
    return null
  }

  /**
   * &lt;a id='setPaintProperties'/>
   * 设置图层绘制属性
   * @param {String} layerId 图层id
   * @param {Object} paint 绘制属性
   */
  setPaintProperties(layerId, paint) {
    const sublayer = this.findSublayerById(layerId)
    if (sublayer &amp;&amp; sublayer.style) {
      sublayer.style.paint = Object.assign(
        sublayer.style.paint || {},
        paint || {}
      )
    }
    this._fireLayerUpdateEvent([
      {
        params: arguments,
        dataChanged: true,
        name: 'setPaintProperties',
        operationType: 'method'
      }
    ])
  }

  /**
   * &lt;a id='getStyleLayer'/>
   * 获取图层
   * @param {String} layerId 图层id
   * @return {Object|null} 图层对象。可以查看矢量瓦片json中layers属性对图层的定义或者查看mvt style文件标准。
   */
  getStyleLayer(layerId) {
    const sublayer = this.findSublayerById(layerId)
    if (sublayer) {
      return sublayer.style
    }
    return null
  }

  /**
   * &lt;a id='setStyleLayer'/>
   * 设置图层属性对象,可以对图层进行修改、重新排序等。布局属性和绘制属性推荐用setLayoutProperties和setPaintProperties实现。
   * @param {Object} layer 图层对象
   * @param {String} index 图层顺序
   */
  setStyleLayer(layer, index) {
    const layerObject = layer || {}
    const sublayer = this.findSublayerById(layerObject.id)
    if (sublayer) {
      const sublayers = this.sublayers
      const sortIndex = sublayers.findIndex((v) => v.id === sublayer.id)
      // 先移除
      sublayers.splice(sortIndex, 1)
      // 插入点
      const insertIndex = parseInt(defaultValue(index, sublayers.length))
      // 计算插入点index
      const i = Math.min(Math.max(0, insertIndex), sublayers.length)
      // 插入sublayers
      sublayers.splice(i, 0, sublayer)
      this._fireLayerUpdateEvent([
        {
          params: arguments,
          dataChanged: true,
          name: 'setStyleLayer',
          operationType: 'method'
        }
      ])
    }
  }

  /**
   * &lt;a id='deleteStyleLayer'/>
   * 删除图层
   * @param {String} layerId 图层id
   */
  deleteStyleLayer(layerId) {
    const sublayer = this.findSublayerById(layerId)
    if (sublayer) {
      // 移除sublayer
      const sublayers = this.sublayers
      const sortIndex = sublayers.findIndex((v) => v === sublayer)
      sublayers.splice(sortIndex, 1)
      // 发送事件
      this._fireLayerUpdateEvent([
        {
          params: arguments,
          dataChanged: true,
          name: 'deleteStyleLayer',
          operationType: 'method'
        }
      ])
    }
  }

  /**
   * &lt;a id='setStyleLayerVisible'/>
   * 设置图层可见性,visible为true,显示图层,为false,隐藏图层
   * @param {String} layerId 图层id
   * @param {Boolean} visible 可见性
   */
  setStyleLayerVisible(layerId, visible) {
    const visibleDesc = visible ? 'visible' : 'none'
    this.setLayoutProperties(layerId, {
      visibility: visibleDesc
    })
  }

  /**
   * 获取图层可见性
   * &lt;a id='getStyleLayerVisible'/>
   * @param {String} layerId 图层id
   * @return {Boolean} 图层可见性状态
   */
  getStyleLayerVisible(layerId) {
    const layout = this.getLayoutProperties(layerId)
    if (layout) {
      return layout.visibility === 'visible'
    }
    return false
  }

  /**
   * &lt;a id='getStyleLayerFilter'/>
   * 获取属性过滤条件
   * @param {String} layerId 图层ID
   * @return {Array&lt;String>} filter 属性过滤条件数组
   */
  getStyleLayerFilter(layerId) {
    const sublayer = this.findSublayerById(layerId)
    if (sublayer) {
      return sublayer.style.filter || undefined
    }
    return undefined
  }

  /**
   * &lt;a id='setStyleLayerFilter'/>
   * 属性过滤
   * @param {String} layerId 图层ID
   * @param {Array&lt;String>} filter 过滤条件数组
   */
  setStyleLayerFilter(layerId, filter) {
    const sublayer = this.findSublayerById(layerId)
    if (sublayer) {
      const style = sublayer.style
      style.filter = filter
      this._fireLayerUpdateEvent([
        {
          params: arguments,
          dataChanged: true,
          name: 'setStyleLayerFilter',
          operationType: 'method'
        }
      ])
    }
  }

  /**
   * &lt;a id='getStyleLayerZoomRange'/>
   * 获取图层最小、最大层级
   * @param {String} layerId 图层id
   * @return {Array&lt;Number>}
   */
  getStyleLayerZoomRange(layerId) {
    const sublayer = this.findSublayerById(layerId)
    if (sublayer) {
      const style = sublayer.style
      const { minzoom, maxzoom } = style
      return [minzoom, maxzoom]
    }
  }

  /**
   * &lt;a id='setStyleLayerZoomRange'/>
   * 设置图层最小、最大层级
   * @param {String} layerId 图层id
   * @param {Number} minZoom 最小层级
   * @param {Number} maxZoom 最大层级
   */
  setStyleLayerZoomRange(layerId, minZoom, maxZoom) {
    if (!isNumber(minZoom) || !isNumber(maxZoom) || minZoom > maxZoom) {
      Log.error('setStyleLayerZoomRange zoom参数输入有误')
      return
    }
    const sublayer = this.findSublayerById(layerId)
    if (sublayer) {
      const style = sublayer.style
      style.minzoom = minZoom
      style.maxzoom = maxZoom
      this._fireLayerUpdateEvent([
        {
          params: arguments,
          dataChanged: true,
          name: 'setStyleLayerZoomRange',
          operationType: 'method'
        }
      ])
    }
  }

  destroy() {}

  /**
   * &lt;a id='loadStyle'/>
   * 获取矢量瓦片样式
   * @return {Promise&lt;Object>} 返回mvtStyle
   * @example &lt;caption>&lt;h7 id='loadStyle'>获取矢量瓦片样式&lt;/h7>&lt;/caption>
   * // ES5引入方式
   * const { IGSVectorTileLayer } = Zondy.Layer
   * // ES6引入方式
   * import { IGSVectorTileLayer} from "@mapgis/webclient-common"
   * const igsVectorTileLayer = new IGSVectorTileLayer.({
   *   // 服务基地址
   *   url: 'http://{ip}:{port}/igs/rest/services/VectorTile/{serviceName}/VectorTileServer'
   * });
   * const style=igsVectorTileLayer.loadStyle()
   */
  loadStyle() {
    return this._vectorTileServer.getStyle().then((res) => res.data)
  }

  /**
   * 通过传入的json构造并返回一个新的几何对象&lt;a id='fromJSON'>&lt;/a>
   * @param {Object} [json] JSON对象
   * @example &lt;caption>&lt;h7>通过传入的json构造并返回一个新的几何对象&lt;/h7>&lt;/caption>
   * // ES5引入方式
   * const { IGSVectorTileLayer } = Zondy.Layer
   * // ES6引入方式
   * import { IGSVectorTileLayer } from "@mapgis/webclient-common"
   * const json = {
   *   // 服务基地址
   *   url: 'http://{ip}:{port}/igs/rest/services/Tile/{serviceName}/TileServer'
   * }
   * const igsVectorTileLayer = new IGSVectorTileLayer.fromJSON(json)
   */
  static fromJSON(json) {
    json = jsonClone(json)
    const _layer = new IGSVectorTileLayer(json)
    _layer._isFromJSON = true

    return _layer
  }

  /**
   * @description 转换为json对象
   * @return {Object} json对象
   */
  toJSON() {
    const json = super.toJSON()
    json.type = this.type
    json.description = this.description
    json.capabilities = this.capabilities
    json.url = this.url
    json.sublayers = this.sublayers.map((sublayer) =>
      toJSON(sublayer, IGSVectorTileSubLayer)
    )
    json.labelsRenderMode = this.labelsRenderMode
    return json
  }
}

Object.defineProperties(IGSVectorTileLayer.prototype, {
  /**
   * 空间裁剪范围
   * @member IGSVectorTileLayer.prototype.clippingArea
   * @type {Polygon|Extent|Circle|null}
   */
  clippingArea: {
    get() {
      return this._clippingArea
    },
    set(value) {
      this._clippingArea = value
      this._fireUpdateEvent('空间裁剪区域', [
        {
          name: 'clippingArea',
          params: [this._clippingArea],
          dataChanged: true,
          operationType: 'property'
        }
      ])
    }
  }
})

Zondy.Layer.IGSVectorTileLayer = IGSVectorTileLayer
export default IGSVectorTileLayer
</code></pre>
        </article>
    </section>




            </div>
            
            <footer class="footer">
                <div class="content has-text-centered">
                    <p>文档生成<a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a></p>
                    <p class="sidebar-created-by">
                        <a href="http://www.smaryun.com" target="_blank">司马云</a> <span>© 2023 云生态圈</span>
                        <a href="http://192.168.82.89:8086/#/index" target="_blank">MapGIS Client for JavaScript</a>
                    </p>
                </div>
            </footer>
            
        </div>
        <div id="side-nav" class="side-nav">
            <div style="margin-bottom: 10px;">
                <img style="vertical-align: middle;margin-right: 10px;width: 30px;" src="./styles/anchor.png"/><a href="#page-title">构造函数</a>
            </div>
            <div style="margin-bottom: 10px;">
                <img style="vertical-align: middle;margin-right: 10px;width: 30px;" src="./styles/anchor.png"/><a href="#member">成员变量</a>
            </div>
            <div style="margin-bottom: 10px;">
                <img style="vertical-align: middle;margin-right: 10px;width: 30px;" src="./styles/anchor.png"/><a href="#function">方法</a>
            </div>
            <div>
                <img style="vertical-align: middle;margin-right: 10px;width: 30px;" src="./styles/anchor.png"/><a href="#event">事件</a>
            </div>
        </div>
    </div>
<script src="scripts/linenumber.js"> </script>

<script src="scripts/search.js"> </script>

</body>
</html>