UNPKG

@mapgis/webclient-leaflet-plugin

Version:

1,460 lines 96.4 kB

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

<head>
  
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title> common/view/BaseView.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/view/BaseView.js</span>
                </header>
                



    
    <section>
        <article>
            <pre class="prettyprint source linenums"><code>import { LayerEvent, Event, Evented, Collection, Projection } from '../base'
import { Log, defaultValue } from '../util'
import { LayerEventType, LayerType, MapEventType } from '../base/enum'
import { Layer, TileInfoUtil } from '../document/layer'
import LayerView from './LayerView'
import { Extent, Point, SpatialReference } from '../base/geometry'
import Map from '../document/mapCollection/Map'

/**
 * 视图类
 * @class BaseView
 * @extends Event
 * @moduleEX ViewModule
 * @param {Object} options 构造参数
 * @param {Map}  [options.map = '']  图层管理器
 * @param {String} [options.viewId = ''] 图层容器ID
 */

/**
 * @event BaseView#地图视图加载完毕事件
 * @property {Object} event 事件对象
 * @example &lt;caption>&lt;h7>地图视图加载完毕事件&lt;/h7>&lt;/caption>
 * view.on('loaded', (event) => {
 *   console.log("点击事件:", event)
 * })
 */

/**
 * @event BaseView#鼠标点击事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'click'] 事件类型
 * @property {Object} [event.mapPoint] 鼠标在地图上的经纬度位置
 * @property {Object} [event.x] 鼠标的像素x坐标,单位px
 * @property {Object} [event.y] 鼠标的像素y坐标,单位px
 * @property {Number} [event.button]
 * @property {Number} [event.buttons]
 * @property {Function} [event.stopPropagation] 阻止事件捕获或冒泡
 * @property {Object} [event.timeStamp] 时间戳,单位ms
 * @property {Object} [event.native] 事件对象
 * @property {BaseView} [event.sourceTarget] 事件发起对象
 * @property {Map} [event.target] 事件接收对象
 * @example &lt;caption>&lt;h7>鼠标点击事件&lt;/h7>&lt;/caption>
 * view.on('click', (event) => {
 *   console.log("点击事件:", event)
 * })
 */

/**
 * @event BaseView#鼠标点击事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'immediate-click'] 事件类型
 * @property {Object} [event.mapPoint] 鼠标在地图上的经纬度位置
 * @property {Object} [event.x] 鼠标的像素x坐标,单位px
 * @property {Object} [event.y] 鼠标的像素y坐标,单位px
 * @property {Number} [event.button]
 * @property {Number} [event.buttons]
 * @property {Function} [event.stopPropagation] 阻止事件捕获或冒泡
 * @property {Object} [event.timeStamp] 时间戳,单位ms
 * @property {Object} [event.native] 事件对象
 * @property {BaseView} [event.sourceTarget] 事件发起对象
 * @property {Map} [event.target] 事件接收对象
 * @example &lt;caption>&lt;h7>鼠标立即点击事件&lt;/h7>&lt;/caption>
 * view.on('immediate-click', (event) => {
 *   console.log("点击事件:", event)
 * })
 */

/**
 * @event BaseView#鼠标双击事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'double-click'] 事件类型
 * @property {Object} [event.mapPoint] 鼠标在地图上的经纬度位置
 * @property {Object} [event.longitude] 鼠标的经度坐标,单位度
 * @property {Object} [event.latitude] 鼠标的纬度坐标,单位度
 * @property {Object} [event.x] 鼠标的像素x坐标,单位px
 * @property {Object} [event.y] 鼠标的像素y坐标,单位px
 * @property {Object} [event.timeStamp] 时间戳,单位ms
 * @property {BaseView} [event.sourceTarget] 事件发起对象
 * @property {Map} [event.target] 事件接收对象
 * @property {Object} [event.event] 事件对象
 * @example &lt;caption>&lt;h7>鼠标双击事件&lt;/h7>&lt;/caption>
 * view.on('double-click', (event) => {
 *   console.log("双击事件:", event)
 * })
 */

/**
 * @event BaseView#鼠标按下事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'pointer-down'] 事件类型
 * @property {Object} [event.mapPoint] 鼠标在地图上的经纬度位置
 * @property {Object} [event.longitude] 鼠标的经度坐标,单位度
 * @property {Object} [event.latitude] 鼠标的纬度坐标,单位度
 * @property {Object} [event.x] 鼠标的像素x坐标,单位px
 * @property {Object} [event.y] 鼠标的像素y坐标,单位px
 * @property {Object} [event.timeStamp] 时间戳,单位ms
 * @property {BaseView} [event.sourceTarget] 事件发起对象
 * @property {Map} [event.target] 事件接收对象
 * @property {Object} [event.event] 事件对象
 * @example &lt;caption>&lt;h7>鼠标按下事件&lt;/h7>&lt;/caption>
 * view.on('pointer-down', (event) => {
 *   console.log("鼠标按下事件:", event)
 * })
 */

/**
 * @event BaseView#鼠标抬起事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'pointer-up'] 事件类型
 * @property {Object} [event.mapPoint] 鼠标在地图上的经纬度位置
 * @property {Object} [event.longitude] 鼠标的经度坐标,单位度
 * @property {Object} [event.latitude] 鼠标的纬度坐标,单位度
 * @property {Object} [event.x] 鼠标的像素x坐标,单位px
 * @property {Object} [event.y] 鼠标的像素y坐标,单位px
 * @property {Object} [event.timeStamp] 时间戳,单位ms
 * @property {BaseView} [event.sourceTarget] 事件发起对象
 * @property {Map} [event.target] 事件接收对象
 * @property {Object} [event.event] 事件对象
 * @example &lt;caption>&lt;h7>鼠标抬起事件&lt;/h7>&lt;/caption>
 * view.on('pointer-up', (event) => {
 *   console.log("鼠标抬起事件:", event)
 * })
 */

/**
 * @event BaseView#鼠标移动事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'pointer-move'] 事件类型
 * @property {Object} [event.mapPoint] 鼠标在地图上的经纬度位置
 * @property {Object} [event.longitude] 鼠标的经度坐标,单位度
 * @property {Object} [event.latitude] 鼠标的纬度坐标,单位度
 * @property {Object} [event.x] 鼠标的像素x坐标,单位px
 * @property {Object} [event.y] 鼠标的像素y坐标,单位px
 * @property {Object} [event.timeStamp] 时间戳,单位ms
 * @property {BaseView} [event.sourceTarget] 事件发起对象
 * @property {Map} [event.target] 事件接收对象
 * @property {Object} [event.event] 事件对象
 * @example &lt;caption>&lt;h7>鼠标移动事件&lt;/h7>&lt;/caption>
 * view.on('pointer-move', (event) => {
 *   console.log("鼠标移动事件:", event)
 * })
 */

/**
 * @event BaseView#鼠标拖拽事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'drag'] 事件类型
 * @property {Object} [event.x] 鼠标的像素x坐标,单位px
 * @property {Object} [event.y] 鼠标的像素y坐标,单位px
 * @property {Number} [event.button]
 * @property {Number} [event.buttons]
 * @property {Boolean} [event.cancelable]
 * @property {Object} [event.origin] 拖拽起点
 * @property {Function} [event.stopPropagation] 阻止事件捕获或冒泡
 * @property {Object} [event.timeStamp] 时间戳,单位ms
 * @property {Object} [event.native] 事件对象
 * @property {String} [event.action] 拖拽状态
 * @property {String} [event.type] 事件类型
 * @example &lt;caption>&lt;h7>鼠标拖拽事件&lt;/h7>&lt;/caption>
 * view.on('drag', (event) => {
 *   console.log("鼠标拖拽事件:", event)
 * })
 */

/**
 * @event BaseView#地图大小变化事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'resize'] 事件类型
 * @property {Number} [event.oldWidth] 变化前的视图宽度,单位px
 * @property {Number} [event.oldHeight] 变化前的视图高度,单位px
 * @property {Number} [event.width] 变化后的视图高度,单位px
 * @property {Number} [event.height] 变化后的视图高度,单位px
 * @property {BaseView} [event.sourceTarget] 事件发起对象
 * @property {Map} [event.target] 事件接收对象
 * @property {Object} [event.event] 事件对象
 * @example &lt;caption>&lt;h7>地图大小变化事件&lt;/h7>&lt;/caption>
 * view.on('resize', (event) => {
 *   console.log("地图大小变化事件:", event)
 * })
 */

/**
 * @event BaseView#键盘按下事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'key-down'] 事件类型
 * @property {String} [event.key] 变化后的视图高度,单位px
 * @property {Number} [event.timeStamp] 时间戳,单位ms
 * @property {BaseView} [event.sourceTarget] 事件发起对象
 * @property {Map} [event.target] 事件接收对象
 * @property {Object} [event.event] 事件对象
 * @example &lt;caption>&lt;h7>键盘按下事件&lt;/h7>&lt;/caption>
 * view.on('key-down', (event) => {
 *   console.log("键盘按下事件:", event)
 * })
 */

/**
 * @event BaseView#键盘抬起事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'key-up'] 事件类型
 * @property {String} [event.key] 变化后的视图高度,单位px
 * @property {Number} [event.timeStamp] 时间戳,单位ms
 * @property {BaseView} [event.sourceTarget] 事件发起对象
 * @property {Map} [event.target] 事件接收对象
 * @property {Object} [event.event] 事件对象
 * @example &lt;caption>&lt;h7>键盘抬起事件&lt;/h7>&lt;/caption>
 * view.on('key-up', (event) => {
 *   console.log("键盘抬起事件:", event)
 * })
 */

/**
 * @event BaseView#地图视图改变事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'view-change'] 事件类型
 * @property {BaseView} [event.target] 事件接收对象
 * @property {BaseView} [event.mapView] 事件地图视图对象
 * @property {Number} [event.scale] 事件地图比例尺
 * @property {Number} [event.zoom] 事件地图层级
 * @property {Point} [event.center] 事件地图视图中心
 * @example &lt;caption>&lt;h7>地图视野改变事件&lt;/h7>&lt;/caption>
 * view.on('view-change', (event) => {
 *   console.log("地图视图改变事件:", event)
 * })
 */

/**
 * @event BaseView#视图图层创建事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'layerview-created'] 事件类型
 * @property {Layer} [event.layer] 事件接收对象
 * @property {LayerView} [event.layerView] 事件地图视图中心
 * @property {BaseView} [event.view] 事件地图视图对象
 * @example &lt;caption>&lt;h7>视图图层创建事件&lt;/h7>&lt;/caption>
 * view.on('layerview-created', (event) => {
 *   console.log("添加地图图层事件:", event)
 * })
 */

/**
 * @event BaseView#视图图层移除事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'layerview-remove'] 事件类型
 * @property {Layer} [event.layer] 事件接收对象
 * @property {LayerView} [event.layerView] 事件地图视图中心
 * @property {BaseView} [event.view] 事件地图视图对象
 * @example &lt;caption>&lt;h7>视图图层移除事件&lt;/h7>&lt;/caption>
 * view.on('layerview-remove', (event) => {
 *   console.log("销毁地图图层事件:", event)
 * })
 */

/**
 * @event BaseView#视图图层创建错误事件
 * @property {Object} event 事件对象
 * @property {LayerEventType} [event.type = 'layerview-created-error'] 事件类型
 * @property {Layer} [event.layer] 事件接收对象
 * @property {BaseView} [event.view] 事件地图视图对象
 * @property {String} [event.error] 错误消息
 * @example &lt;caption>&lt;h7>视图图层创建错误事件&lt;/h7>&lt;/caption>
 * view.on('layerview-created-error', (event) => {
 *   console.log("添加地图图层事件:", event)
 * })
 */
class BaseView extends Evented {
  constructor(options) {
    super()
    options = defaultValue(options, {})
    // 地图对象
    this._map = null
    /**
     * 鼠标样式,参考css的cursor样式
     * @member {String} BaseView.prototype.cursor
     */
    this.cursor = defaultValue(options.cursor, undefined)
    /**
     * 地图视图的比例尺,改变该值后会立刻改变视图范围
     * @member {Number} BaseView.prototype.scale
     */
    this.scale = defaultValue(options.scale, undefined)
    /**
     * 最小缩放比例尺
     * @member {Number} BaseView.prototype.minScale
     */
    this.minScale = undefined
    /**
     * 最大缩放比例尺
     * @member {Number} BaseView.prototype.maxScale
     */
    this.maxScale = undefined
    /**
     * 视图旋转角度
     * @member {Number} BaseView.prototype.rotation
     */
    this.rotation = 0
    /**
     * 视图中心点
     * @member {Array} BaseView.prototype.center
     */
    this.center = defaultValue(options.center, [0, 0])
    /**
     * 最小缩放级数
     * @member {Number} BaseView.prototype.minZoom
     */
    this.minZoom = defaultValue(options.minZoom, 0)
    /**
     * 最大缩放级数
     * @member {Number} BaseView.prototype.maxZoom
     */
    this.maxZoom = defaultValue(options.maxZoom, 19)
    /**
     * 初始化级数
     * @member {Number} BaseView.prototype.zoom
     */
    this.zoom = defaultValue(options.zoom, 1)
    /**
     * 弹窗设置
     * @member {Object} BaseView.prototype.popup
     */
    this.popup = undefined
    /**
     * 视图是否静止
     * @readonly
     * @member {Boolean} BaseView.prototype.stationary
     */
    this.stationary = true
    /**
     * 视图空间参考系
     * @readonly
     * @member {SpatialReference} BaseView.prototype._spatialReference
     */
    this._spatialReference = new SpatialReference('EPSG:4326')
    // 图层管理器传递事件处理
    this._initMapEventHandlers()
    // 添加图层管理模块
    this.setMap(options.map)
    // 图层容器ID
    this._viewId = defaultValue(options.viewId, '')
    // 视图容器
    this._mapCollection = []
    // 引擎视图
    this._innerView = null
    this.graphics = new Collection()
    // 设置鼠标样式
    this._initCursor()
  }

  /**
   * 添加图层管理容器
   * @param {Map} map 图层管理容器
   * */
  setMap(map) {
    if (!this._map) {
      // 设置图层管理器
      this._map = map instanceof Map ? map : Map.fromJSON(map)
      // 初始化 图层管理器-> 视图 事件
      this._linkMapEvent()
      // 初始化 图层 -> 图层管理器 -> 视图 事件
      this._linkLayerEvent()
      if (this._innerView) {
        this._map._haveInnerView = true
      } else {
        this._map._haveInnerView = false
      }
      // 加载图层
      this._map._loadLayers()
      // 加载basemap图层
      this._map._loadBasemap()
    }
  }

  /**
   * @description 链接图层Layer事件
   */
  _linkLayerEvent() {
    if (this._map) {
      for (const eventStr in LayerEventType) {
        const self = this
        this._map.on(
          LayerEventType[eventStr],
          function (event) {
            const data = event
            // 扩展事件属性
            if (data instanceof Event) {
              data.addProperty('view', self)
            } else if (data) {
              data.view = self
            }
            self.fire(LayerEventType[eventStr], data)
          },
          this._map
        )
      }
    }
  }

  /**
   * @description 链接图层管理器Map事件
   */
  _linkMapEvent() {
    if (this._map) {
      for (const eventStr in MapEventType) {
        const self = this
        this._map.on(MapEventType[eventStr], function (event) {
          const data = event
          // 扩展事件属性
          if (data instanceof Event) {
            data.addProperty('view', self)
          } else if (data) {
            data.view = self
          }
          self.fire(MapEventType[eventStr], data)
        })
      }
    }
  }

  /**
   * @description 获取引擎视图对象,在leaflet引擎上返回leafelt map,在cesium引擎上返回cesium viewer
   * @return {Object}
   */
  getInnerView() {
    return this._innerView
  }

  /**
   * @description 初始化图层管理器事件handler
   */
  _initMapEventHandlers() {
    this._processEvent = this._processEvent.bind(this)
    this.on(MapEventType.layerAdd, this._processEvent)
    this.on(MapEventType.layerRemove, this._processEvent)
    // this.on(LayerEventType.featureAdd, this._processEvent)
    this.on(LayerEventType.layerUpdate, this._processEvent)
    this.on(MapEventType.layerRemoveMany, this._processEvent)
    this.on(MapEventType.layerRemoveAll, this._processEvent)
    // this.on(MapEventType.baseLayerAdd, this._processEvent)
  }

  /**
   * @description 事件处理器
   */
  _processEvent(event) {
    // 地图文档Map事件处理
    // 1.图层的增删操作等/地图状态变化操作等
    if (event.type === MapEventType.layerAdd) {
      if (event.layer instanceof Layer) {
        this._addLayerView(event.layer, event)
      }
    }

    if (event.type === MapEventType.layerRemove) {
      if (event.layer instanceof Layer) {
        this._removeLayerView(event.layer, event)
      }
    }
    // 图层事件处理
    // 2.图层的更新
    if (event.type === LayerEventType.layerUpdate) {
      if (event.layer instanceof Layer) {
        this._updateLayerView(event.layer, event)
      }
    }
    // if (event.type === MapEventType.baseLayerAdd) {
    //   if (event.layer instanceof Layer) {
    //     this._addLayerView(event.layer, event)
    //   }
    // }
  }

  /**
   * @description 添加图层视图
   * @private
   */
  _addLayerView(layer, event) {
    const self = this
    layer.load().then(
      (result) => {
        // 图层信息获取完毕,根据图层的参考系,设置view空间参考系
        // 如果view空间参考系和该图层参考系不同,则初始化引擎view。相同则不做改变
        // 如果加载图层是basemap的图层,则在basemap上获取坐标系
        if (layer._isBasemapLayer) {
          self._map.basemap.setSpatialReference()
        }
        this._loadedLayer = layer
        if (self._setSpatialReference) {
          self._setSpatialReference(layer)
        }
        this._loadedLayer = undefined
        // 没有参考系或者 || result._isSRLayer
        if (!self._spatialReference) return
        const loadedEvent = new LayerEvent({
          type: LayerEventType.layerLoaded,
          target: result,
          message: '图层资源加载完毕',
          layer: result
        })

        // 发送图层创建失败事件
        function fireCreatedError(err) {
          const data = new LayerEvent({
            type: LayerEventType.layerViewCreatedError,
            target: result,
            error: err || '图层在视图中创建失败',
            layer: result
          })
          data.addProperty('view', self)
          data.addProperty('layerView', null)
          self.dispatchEvent(LayerEventType.layerViewCreatedError, data)
          Log.error(err)
        }

        // 发送load事件
        self.dispatchEvent(LayerEventType.layerLoaded, loadedEvent)
        // 添加图层
        if (!result) {
          Log.error('图层加载失败,请检查数据服务是否正常')
        }
        // 添加图层到所有图层中
        self._map.allLayers.add(layer)
        // 有子图层获取子图层
        if (
          layer.type === LayerType.igsMapImage ||
          layer.type === LayerType.wms ||
          layer.type === LayerType.arcgisMapImage ||
          layer.type === LayerType.igsVectorTile
        ) {
          layer.allSublayers.forEach(function (sublayer) {
            self._map.allLayers.add(sublayer)
          })
        } else if (layer.type === LayerType.scene) {
          for (let i = 0; i &lt; layer.scenes.length; i++) {
            for (let j = 0; j &lt; layer.scenes[i].sublayers.length; j++) {
              self._map.allLayers.add(layer.scenes[i].sublayers[j])
            }
          }
        }
        self._waitLayerLoaded(layer, result, fireCreatedError)
      },
      (message) => {
        // 请求失败信息
        this.dispatchEvent(
          LayerEventType.layerLoadError,
          new LayerEvent({
            type: LayerEventType.layerLoadError,
            target: layer,
            message: message || '图层资源加载失败,请检查网络状态或服务器状态'
          })
        )
      }
    )
  }

  _getFlyToCenter(options) {
    // 获取center
    let center = undefined
    if (options.center) {
      if (Array.isArray(options.center) &amp;&amp; options.center.length > 1) {
        const coordinates =
          options.center.length > 2
            ? [options.center[0], options.center[1], options.center[2]]
            : [options.center[0], options.center[1]]
        const code =
          this._innerView.options &amp;&amp; this._innerView.options.crs
            ? this._innerView.options.crs.code
            : 'EPSG:4326'
        center = new Point({
          coordinates,
          spatialReference: new SpatialReference(code)
        })
      } else if (options.center instanceof Point) {
        center = Point.fromJSON(options.center)
      } else if (!(options.center instanceof Point)) {
        Log.error('center类型为不支持的类型!')
      }
      if (!center.spatialReference.isGeographic) {
        center = Projection.project(
          center,
          new SpatialReference({
            wkid: 4326
          })
        )
      }
    }

    return center
  }

  _getFlyToExtent(options) {
    // 获取extent
    let extent = undefined
    if (options.extent) {
      if (options.extent instanceof Extent) {
        extent = Extent.fromJSON(options.extent)
        if (!extent.spatialReference.isGeographic) {
          extent = Projection.project(
            extent,
            new SpatialReference({
              wkid: 4326
            })
          )
        }
      } else {
        Log.error('extent类型为不支持的类型!')
      }
    }
    return extent
  }

  /**
   * 等待图层加载完毕,可有BaseView的子类重写
   * @param {Layer} layer 基础图层对象
   * @param {Object} result 图层加载完毕后的对象
   * @param {Function} fireCreatedError 创建失败回调
   * */
  _waitLayerLoaded(layer, result, fireCreatedError) {
    const self = this
    const promise = self._addLayer(result, event)
    self._layerLoaded(promise, layer, result, fireCreatedError)
  }

  /**
   * 图层加载完毕后做的事情
   * @private
   * @param {Promise} promise Promise对象
   * @param {Layer} layer 基础图层对象
   * @param {Object} result 图层加载完毕后的对象
   * @param {Function} fireCreatedError 创建失败回调
   * */
  _layerLoaded(promise, layer, result, fireCreatedError) {
    const self = this
    // 视频调绘的视频图层在_addLayer后不会返回一个Promise
    if (!promise) {
      return
    }
    promise
      .then((layerView) => {
        Log.info('创建图层', layer)
        // // 如果加载图层是basemap的图层,则在basemap上获取坐标系
        // if (layer._isBasemapLayer) {
        //   self._map.basemap.setSpatialReference()
        //   self._setSpatialReference()
        // }
        const data = new LayerEvent({
          type: LayerEventType.layerViewCreated,
          message: '图层在视图中创建完毕',
          layer: result
        })
        data.addProperty('view', self)
        data.addProperty('layerView', layerView)
        self.dispatchEvent(LayerEventType.layerViewCreated, data)
        // if (self._map.basemap &amp;&amp; layer._isBasemapLayer) {
        //   self._map.basemap.fire(LayerEventType.layerViewCreated, data)
        //   // self._map.basemap.dispatchEvent(LayerEventType.layerViewCreated, data)
        // }
      })
      .catch((err) => {
        fireCreatedError(err)
      })
  }

  /**
   * @description 添加图层(在视图中创建成功后返回promise,创建失败返回null)
   * @private
   * @param {Layer} layer
   * @return {Promise&lt;LayerView>|null}
   */
  _addLayer(layer, event) {
    const layerView = this._createLayerView(layer, event)
    if (layerView instanceof LayerView) {
      // layerView添加
      return layerView.onAdd(event).then(() => {
        // 在图层视图加载到引擎内后,加入视图队列
        this._mapCollection.push(layerView)
        // 保证返回的是图层视图
        return layerView
      })
    }
    Log.info('图层视图创建失败,未定义该类型的图层视图!')
    // 添加失败
    return null
  }

  /**
   * @description 移除图层视图
   * @private
   */
  _removeLayerView(layer, event) {
    const self = this
    const promise = this._removeLayer(layer, event)
    if (promise) {
      promise.then((layerView) => {
        Log.info('删除图层', layer)
        const data = new LayerEvent({
          type: LayerEventType.layerViewRemove,
          message: '删除图层',
          layer
        })
        data.addProperty('view', self)
        data.addProperty('layerView', layerView)
        self.dispatchEvent(LayerEventType.layerViewRemove, data)
      })
    }
  }

  /**
   * @description 删除图层(在视图中删除成功后返回promise,删除失败返回null)
   * @private
   * @param {Layer} layer 待删除图层
   * @return {Promise|null}
   */
  _removeLayer(layer, event) {
    const layerView = this._findLayerById(layer.id)
    if (layerView instanceof LayerView) {
      // layerView添加
      return layerView.onRemove(event).then(() => {
        // 引擎内在移除图层视图后,删除队列中图层视图
        this._removeLayerById(layer.id)
        // 保证返回的是图层视图
        return layerView
      })
    }
    Log.info('图层删除失败,未找到该类型的视图!')
    return null
  }

  /**
   * @description 更新图层视图
   */
  _updateLayerView(layer, event) {
    const promise = this._updateLayer(layer, event)
    if (promise) {
      promise.then((layerView) => {
        Log.info('更新图层', layer)
        if (event) {
          event.addProperty('view', self)
          event.addProperty('layerView', layerView)
        }
        this.dispatchEvent(LayerEventType.layerViewUpdate, event)
      })
    }
  }

  /**
   * @description 更新图层(在视图中更新成功后返回promise,更新失败返回null)
   * @private
   * @param {Layer} layer 带更新图层
   * @param {LayerViewUpdateEvent} event 图层视图更新事件
   * @return {Promise|null}
   */
  _updateLayer(layer, event) {
    const layerView = this._findLayerById(layer.id)
    if (layerView instanceof LayerView) {
      // layerView添加
      return layerView.onUpdate(event)
    }
    Log.info('图层更新失败,未找到该类型的视图!')
    return null
  }

  /**
   * @description 事件触发器
   */
  dispatchEvent(type, data, propagate) {
    // 传递给图层
    if (data instanceof LayerEvent &amp;&amp; data.layer) {
      data.layer.fire(type, data, propagate)
    }

    // 传递给图层管理器和图层容器
    if (this._map) {
      this._map.dispatchEvent(type, data, propagate)
    }

    if (
      this._map &amp;&amp;
      this._map.basemap &amp;&amp;
      data.layer &amp;&amp;
      data.layer._isBasemapLayer
    ) {
      this._map.basemap.fire(LayerEventType.layerViewCreated, data)
    }

    return this
  }

  _findLayerById(id) {
    let _layer
    for (let i = 0; i &lt; this._mapCollection.length; i++) {
      // 如果是组图层,则遍历子图层的layerview
      if (this._mapCollection[i].layer.type === LayerType.group) {
        const layerViews = this._mapCollection[i].layerViews
        for (let j = 0; j &lt; layerViews.length; j++) {
          if (layerViews[j].id === id) {
            _layer = layerViews[j]
            break
          }
        }
      }
      // 非组图层逻辑
      else if (this._mapCollection[i].id === id) {
        _layer = this._mapCollection[i]
        break
      }
    }

    return _layer
  }

  _removeLayerById(id) {
    for (let i = 0; i &lt; this._mapCollection.length; i++) {
      if (this._mapCollection[i].id === id) {
        this._mapCollection.splice(i, 1)
        break
      }
    }
  }

  _findLayerIndex(id) {
    let _index
    for (let i = 0; i &lt; this._mapCollection.length; i++) {
      if (this._mapCollection[i].id === id) {
        _index = i
        break
      }
    }
    return _index
  }

  /* *********************************     基类需要实现的方法      ************************************* */
  /**
   * @description 创建图层视图
   * @private
   * @param {Layer} layer 图层
   * @param {LayerEvent} event 添加事件
   * @return {LayerView| null}
   */
  _createLayerView(layer) {
    return null
  }

  /**
   * @description 初始化鼠标样式
   * @private
   */
  _initCursor() {
    this._setCursor(this.cursor)
    Object.defineProperty(this, 'cursor', {
      set(newVal) {
        this._setCursor(newVal)
      }
    })
  }

  /**
   * @description 设置鼠标样式
   * @param {String}  type 鼠标样式名
   * @private
   */
  _setCursor(type) {
    if (type) {
      this._innerView._container.style.cursor = type
    }
  }

  /**
   * 根据基础图层对象或者图层id查询并返回实际图层,如果是场景图层,则会返回一个数组对象
   * @param {Object | String} layer 基础图层对象或者图层id
   * @return {Object} 实际图层对象
   * @example &lt;caption>&lt;h7>根据基础图层对象或者图层id查询并返回实际图层&lt;/h7>&lt;/caption>
   * // ES5引入方式
   * const { Map, SceneView } = Zondy
   * const { IGSSceneLayer } = Zondy.Layer
   * // ES6引入方式
   * import { Map, SceneView, IGSSceneLayer } from "@@mapgis/webclient-cesium-plugin"
   * // 初始化图层管理容器
   * const map = new Map();
   * // 初始化地图视图对象
   * const sceneView = new SceneView({
   *   // 视图id
   *   viewId: "mapgis-3d-viewer",
   *   // 图层管理容器
   *   map: map
   * });
   * // 添加一个场景图层
   * const igsSceneLayer = new IGSSceneLayer({
   *   url: 'http://192.168.82.89:8089/igs/rest/g3d/Scene:DaYanTa-M3D'
   * });
   * map.add(igsSceneLayer);
   * // 添加完毕后,过去实际图层对象
   * igsSceneLayer.on("layerview-created", function (result) {
   *   console.log("加载完毕:", result.layer)
   *   const innerLayer = sceneView.getInnerLayer(igsSceneLayer)
   *   console.log("innerLayer:", innerLayer)
   * })
   * */
  getInnerLayer(layer) {
    let innerLayer = undefined
    for (let i = 0; i &lt; this._mapCollection.length; i++) {
      if (typeof layer === 'string') {
        if (this._mapCollection[i].layer.id === layer) {
          innerLayer = this._mapCollection[i].innerLayer
          break
        }
      } else if (layer instanceof Object) {
        if (this._mapCollection[i].layer.id === layer.id) {
          innerLayer = this._mapCollection[i].innerLayer
          break
        }
      }
    }
    return innerLayer
  }

  _getLayerView(layer) {
    let layerView = undefined
    for (let i = 0; i &lt; this._mapCollection.length; i++) {
      if (typeof layer === 'string') {
        if (this._mapCollection[i].layer.id === layer) {
          layerView = this._mapCollection[i]
          break
        }
      } else if (layer instanceof Object) {
        if (this._mapCollection[i].layer.id === layer.id) {
          layerView = this._mapCollection[i]
          break
        }
      }
    }
    return layerView
  }

  /**
   * 根据基础图层id查询并返回基础图层对象
   * @param {String} layerId 基础图层ID
   * @return {Layer} 基础图层对象
   * */
  getLayer(layerId) {
    let layer = undefined
    for (let i = 0; i &lt; this._mapCollection.length; i++) {
      if (this._mapCollection[i].layer.id === layerId) {
        layer = this._mapCollection[i].layer
        break
      }
    }
    return layer
  }
}

Object.defineProperties(BaseView.prototype, {
  /**
   * 地图管理容器对象
   * @member {Map} BaseView.prototype.map
   * */
  map: {
    get() {
      return this._map
    },
    set(value) {
      this._map = value
    }
  }
})

export default BaseView
</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>