@mapgis/webclient-leaflet-plugin
Version:
1,947 lines • 115 kB
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title> common/service/igs/FeatureServer.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 "@mapgis/webclient-common" <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log("加载完毕:", 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 "@mapgis/webclient-common" <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log("加载完毕:", 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 "@mapgis/webclient-common" <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log("加载完毕:", 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 "@mapgis/webclient-common"</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 "@mapgis/webclient-common" <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log("加载完毕:", 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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log("加载完毕:", 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 "@mapgis/webclient-common" <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log("加载完毕:", 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 "@mapgis/webclient-common" <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log("加载完毕:", 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 "@mapgis/webclient-common" <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log("加载完毕:", 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 "@mapgis/webclient-common" <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log("加载完毕:", 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 "@mapgis/webclient-common" <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log("加载完毕:", 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 "@mapgis/webclient-common" <br/>
<br/>
针对图层的操作请在图层加载完毕事件中进行<br/>
Layer.on('layerview-created', function (result) {<br/>
console.log("加载完毕:", 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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@mapgis/webclient-common" <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 "@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="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/service/igs/FeatureServer.js</span>
</header>
<section>
<article>
<pre class="prettyprint source linenums"><code>import BaseServer from '../BaseServer'
import { Zondy } from '../../base'
import { FetchMethod } from '../../base/enum'
import { defined } from '../../util'
/**
* 要素服务
* @class FeatureServer
* @moduleEx ServiceModule
* @extends BaseServer
* @param {Object} options 构造参数
* @param {String} [options.url] 服务基地址,支持igs2.0的要素服务、矢量图层的要素查询以及矢量文档的要素查询
* @example
* //igs2.0的要素服务
* // ES5引入方式
* const { FeatureServer } = Zondy.Service
* // ES6引入方式
* import { FeatureServer } from "@mapgis/webclient-common"
* const featureServer = new FeatureServer({
* //服务地址,folder为IGS的服务管理中的文件夹夹名称,serviceName为发布的服务名
* url: 'http://192.168.88.12:8089/igs/rest/services/{folder}/{serviceName}/FeatureServer'
* })
* //基于矢量图层的要素查询
* const featureServer = new FeatureServer({
* //服务地址,IGS1.0地址
* url: 'http://localhost:6163/igs/rest/mrfs/layer'
* //服务地址,IGS2.0地址
* //url: 'http://localhost:8089/igs/rest/mrfs/layer'
* })
* //基于矢量文档的要素查询
* const featureServer = new FeatureServer({
* //服务地址,IGS1.0地址,serviceName为发布的服务名
* url: 'http://localhost:6163/igs/rest/mrfs/docs/{serviceName}'
* //服务地址,IGS2.0地址,serviceName为发布的服务名
* //url: 'http://localhost:8089/igs/rest/mrfs/docs/{serviceName}'
* })
*/
class FeatureServer extends BaseServer {
constructor(options) {
super(options)
// 默认为igs2.0服务
this.igsType = '2.0'
// 是igs1.0服务
if (this.url.indexOf('/igs/rest/mrfs') > -1) {
this.igsType = '1.0'
}
}
/**
* 获取要素服务图层信息,支持IGS1.0,IGS2.0
* @param options 查询参数
* @param {String} [options.layerId] 图层id,必传
* @param {Function} [options.success ] 查询成功回调函数,若使用Promise方式则不必填写
* @param {Function} [options.failure ] 查询失败回调函数,若使用Promise方式则不必填写
* @returns {Promise<Object>} 返回要素服务图层信息
* @example <caption><h5>获取要素服务图层信息</h5></caption>
* featureServer.queryLayerInfo({
* // 图层id
* layerId: '0'
* })
* .then((res)=>{
* console.log('查询图层信息成功:', res)
* })
* .catch((res)=>{
* console.log('查询图层信息失败:', res)
* })
*/
queryLayerInfo(options) {
// baseurl http://localhost:8089/igs/rest/mrcs/docs/{name}
// 拼接 {mapIndex}/{layerId}
if (this.igsType === '1.0') {
const baseUrl = this.url.replace('mrfs', 'mrcs')
// 调用基类的查询信息方法
return this._queryInfoByLayerId(options, function (url, options) {
// 拼装返回基地址
return `${baseUrl}/0/${options.layerId}?f=json`
})
}
// 调用基类的查询信息方法
return this._queryInfoByLayerId(options, function (url, options) {
// 拼装返回基地址
return `${url}/${options.layerId}?f=json`
})
}
/**
* @description 指定图层的要素查询,支持IGS2.0,IGS1.0服务
* @param options 要素查询参数,IGS2.0服务
* @param {String} [options.layerId ] 图层id, 必传
* @param {String} [options.method = FetchMethod.get ] 请求类型
* @param {queryLayerInfoSuccess} [options.success ] 查询成功回调函数,若使用Promise方式则不必填写
* @param {queryFailure} [options.failure ] 查询失败回调函数,若使用Promise方式则不必填写
* @param {Geometry} [options.geometry ] 要素查询几何条件
* @param {String} [options.geometryType ] 要素查询类型
* @param {String} [options.where ] 要素查询where条件
* @param {String} [options.outFields ] 输出属性字段,可为*表示所有,多个用英文逗号分隔
* @param {String} [options.objectIds ] 过滤id,多个用英文逗号分隔(参数优先级很高,可能导致其它筛选条件失效)
* @param {Number} [options.distance = 0] 仅igs2.0支持,几何缓冲的距离,geometry为point、line时有效(若数据源为大数据PG数据,且geometryType为line或者point时为必填数据)
* @param {Number} [options.geometryPrecision ] 返回要素几何信息中坐标xy的精度
* @param {Object} [options.rule] 仅1.0支持,rule={"CompareRectOnly":false,"MustInside":false,"Intersect":true},查询规则参数,JSON格式,CompareRectOnly为是否仅仅比较查询对象的外包络矩形框,MustInside为查询对象是否必须完全包含在输入的空间范围内,Intersect为是否与查询对象相交
* @param {Boolean} [options.isAsc] 仅1.0支持,是否升序排列,格式:true/false
* @param {SpatialRelation} [options.spatialRel ] 仅igs2.0支持,几何条件的空间判定规则,Intersects(相交)、EnvelopeIntersects(外包矩形相交)、Contains(包含)、Disjoint(相离)
* @param {String} [options.orderByFields ] 排序字段,格式: fieldName [ASC|DESC]
* @param {String|Array<Object>} [options.groupByFieldsForStatistics ] igs2.0 分组统计的字段信息,格式为field1,field2;igs1.0 进行分组的字段以计算统计信息,示例:[{"LayerIndex": 0,"GroupFieldName": "NAME"}]
* @param {Number} [options.resultRecordCount = 20] 分页参数:结果返回条数,默认20
* @param {Number} [options.resultOffset ] 分页参数:跳过条数
* @param {Array} [options.outStatistics ] 计算一个或多个基于字段的统计信息结构,统计类型包括:FUNCTION_MAX/FUNCTION_MIN/FUNCTION_SUM/FUNCTION_AVG/FUNCTION_COUNT/FUNCTION_MAX_OID,示例:"[{"statisticType": "FUNCTION_SUM","onStatisticField": "field1","outStatisticFieldName":"fieldName1"}]"
* @param {Boolean} [options.returnGeometry = true] 是否返回几何,默认为true
* @param {Boolean} [options.returnAttribute = true] 是否返回属性,默认为true
* @param {Boolean} [options.returnStyle = false] 是否返回图形参数信息,默认为false
* @param {Boolean} [options.returnIdsOnly = false] 仅igs2.0支持,是否只返回id,默认为false
* @param {Boolean} [options.returnCountOnly = false] 仅igs2.0支持,是否只返回条数,默认为false
* @param {Boolean} [options.returnExtentOnly = false] 仅igs2.0支持,是否只返回范围,默认为false
* @param {Boolean} [options.returnZ = false] 是否返回Z轴,默认为false
* @return {Promise<Object>} 返回指定图层要素查询结果
* @example <caption><h5>IGS2.0的where查询</h5></caption>
* featureServer.queryFeatures({
* // 图层id
* layerId: '1',
* // where语句
* where: "NAME='天门市'"
* })
* .then((res)=>{
* console.log('查询成功:', res)
* })
* .catch((res)=>{
* console.log('查询失败:', res)
* })
*/
queryFeatures(options) {
const self = this
let checkPathOpts
let checkQueryOpts
if (this.igsType === '1.0') {
// 设置PATH PARAMETERS校验
checkPathOpts = {
layerId: {
type: 'String'
}
}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
where: {
type: 'String'
},
geometry: {
type: 'Geometry'
},
geometryType: {
type: 'String'
},
geometryPrecision: {
type: 'Number',
alias: 'coordPrecision'
},
outFields: {
type: 'String',
alias: 'fields'
},
objectIds: {
type: 'String'
},
orderByFields: {
type: 'String',
alias: 'orderField'
},
groupByFieldsForStatistics: {
type: 'Array',
process(v) {
return `&groupByFieldsForStatistics=${encodeURIComponent(JSON.stringify(v))}`
}
},
resultRecordCount: {
type: 'Number',
alias: 'pageCount'
},
resultOffset: {
type: 'Number',
alias: 'page'
},
outStatistics: {
type: 'OutStatistics',
alias: 'statistics'
},
rule: {
type: 'Object',
process(v) {
return `&rule=${encodeURIComponent(JSON.stringify(v))}`
}
},
isAsc: {
type: 'Boolean'
},
returnZ: {
type: 'Boolean',
alias: 'is3d'
}
}
} else {
// 设置PATH PARAMETERS校验
checkPathOpts = {
layerId: {
type: 'String'
}
}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
where: {
type: 'String'
},
geometry: {
type: 'Geometry'
},
geometryType: {
type: 'String'
},
distance: {
type: 'Number'
},
geometryPrecision: {
type: 'Number'
},
spatialRel: {
type: 'String'
},
outFields: {
type: 'String'
},
objectIds: {
type: 'String'
},
orderByFields: {
type: 'String'
},
groupByFieldsForStatistics: {
type: 'String'
},
resultRecordCount: {
type: 'Number'
},
resultOffset: {
type: 'Number'
},
outStatistics: {
type: 'OutStatistics'
},
returnGeometry: {
type: 'Boolean'
},
returnAttribute: {
type: 'Boolean'
},
returnStyle: {
type: 'Boolean'
},
returnIdsOnly: {
type: 'Boolean'
},
returnCountOnly: {
type: 'Boolean'
},
returnExtentOnly: {
type: 'Boolean'
},
returnZ: {
type: 'Boolean'
},
supportArc3: {
type: 'Boolean'
}
}
}
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url, options) {
if (self.igsType === '1.0') {
const structs = {
IncludeAttribute: true,
IncludeGeometry: true,
IncludeWebGraphic: false
}
const opt = options || {}
if (opt) {
if (defined(opt.returnGeometry)) {
structs.IncludeGeometry = opt.returnGeometry
}
if (defined(opt.returnAttribute)) {
structs.IncludeAttribute = opt.returnAttribute
}
if (defined(opt.returnStyle)) {
structs.IncludeWebGraphic = opt.returnStyle
}
}
return `${url}/0/${
options.layerId
}/query?f=json&structs=${encodeURIComponent(JSON.stringify(structs))}`
}
return `${url}/${options.layerId}/query?f=json`
}
)
}
/**
* @description 全图层要素查询,支持igs2.0、igs1.0
* @param options 全图层要素查询参数
* @param {String} [options.method = FetchMethod.get ] 请求类型
* @param {queryLayerInfoSuccess} [options.success ] 查询成功回调函数,若使用Promise方式则不必填写
* @param {queryFailure} [options.failure ] 查询失败回调函数,若使用Promise方式则不必填写
* @param {Array} [options.layerDefs ] 多图层的属性条件,包括layerId、where、outFields;当值为空时,查询所有图层,并当为拉框查询时,自动过滤不需要不需要查询的图层,示例:"[{ "layerId":"0-0","where": "name='中国'", "outfields": "field1,field2"}]"
* @param {Geometry} [options.geometry ] 要素查询几何条件
* @param {Number} [options.distance = 0] 几何缓冲的距离,geometry为point、line时有效(若数据源为大数据PG数据,且geometryType为line或者point时为必填数据)
* @param {Number} [options.geometryPrecision ] 返回要素几何信息中坐标xy的精度
* @param {SpatialRelation} [options.spatialRel ] 几何条件的空间判定规则,Intersects(相交)、EnvelopeIntersects(外包矩形相交)、Contains(包含)、Disjoint(相离)
* @param {Number} [options.resultRecordCount = 20] 分页参数:结果返回条数,默认20
* @param {Boolean} [options.returnGeometry = true] 是否返回几何,默认为true
* @param {Boolean} [options.returnAttribute = true] 是否返回属性,默认为true
* @param {Boolean} [options.returnStyle = false] 是否返回图形参数信息,默认为false
* @param {Boolean} [options.returnIdsOnly = false] 是否只返回id,默认为false
* @param {Boolean} [options.returnCountOnly = false] 是否只返回条数,默认为false
* @param {Boolean} [options.returnZ = false] 是否返回Z轴,默认为false
* @param GDBPOptions 基于矢量图层的要素查询参数
* @param {String} [GDBPOptions.gdbp ] 图层的gdbp地址,允许多个图层,图层间用“,”号分隔,必传
* @param {Geometry} [GDBPOptions.geometry ] 几何查询条件
* @param {String} [GDBPOptions.where ] where查询条件,类似sql语句
* @param {String} [GDBPOptions.objectIds ] 需要查询的要素的OID值,OID为要素的唯一标识码,多个objectIds间以“,”分隔
* @param {Number} [GDBPOptions.page = 0] 返回的要素分页的页数,默认返回第0页
* @param {Number} [GDBPOptions.pageCount = 20] 要素结果集每页的记录数量,默认为20条/页
* @param {Object} [GDBPOptions.rule] 指定查询规则,参数不区分大小写,各参数的代表含义如下:
* CompareRectOnly表示是否仅比较要素的外包矩形,来判定是否与几何约束图形有交集;EnableDisplayCondition表示是否将隐藏图层计算在内;MustInside表示是否完全包含;Intersect表示是否相交
* @param {Object} [GDBPOptions.structs] 指定查询结果的结构,参数不区分大小写,可以省略,默认为IncludeAttribute:true,其他参数均为false;IncludeAttribute:是否包含属性信息;IncludeGeometry:是否包含空间信息;IncludeWebGraphic:是否包含图形信息(显示参数信息)
* @param {String} [GDBPOptions.orderField] 排序字段名称,用于对输出结果进行排序,当ObjectIds有值时,orderField失效
* @param {Boolean} [GDBPOptions.isAsc] 按照字段进行排序时,是否升序排列
* @param DocsOptions 基于矢量文档的要素查询
* @param {Number} [DocsOptions.mapIndex ] 地图在文档下的序号,从0开始编号,必传
* @param {String} [DocsOptions.layerIndexes ] 图层序号,多图层间以“,”号分隔,必传
* @param {Geometry} [DocsOptions.geometry ] 几何查询条件
* @param {String} [DocsOptions.where ] where查询条件,类似sql语句
* @param {String} [DocsOptions.objectIds ] 需要查询的要素的OID值,OID为要素的唯一标识码,多个objectIds间以“,”分隔
* @param {Number} [DocsOptions.page = 0] 返回的要素分页的页数,默认返回第0页
* @param {Number} [DocsOptions.pageCount = 20] 要素结果集每页的记录数量,默认为20条/页
* @param {Object} [DocsOptions.rule] 指定查询规则,参数不区分大小写,各参数的代表含义如下:
* CompareRectOnly表示是否仅比较要素的外包矩形,来判定是否与几何约束图形有交集;EnableDisplayCondition表示是否将隐藏图层计算在内;MustInside表示是否完全包含;Intersect表示是否相交
* @param {Object} [DocsOptions.structs] 指定查询结果的结构,参数不区分大小写,可以省略,默认为IncludeAttribute:true,其他参数均为false;IncludeAttribute:是否包含属性信息;IncludeGeometry:是否包含空间信息;IncludeWebGraphic:是否包含图形信息(显示参数信息)
* @param {String} [DocsOptions.orderField] 排序字段名称,用于对输出结果进行排序,当ObjectIds有值时,orderField失效
* @param {Boolean} [DocsOptions.isAsc] 按照字段进行排序时,是否升序排列
* @returns {Promise<Object>} 返回要素查询结果
* @example <caption><h5>IGS2.0的几何查询</h5></caption>
* featureServer.queryFeaturesInLayers({
* // ES5引入方式
* const { Polygon } = Zondy.Geometry
* // ES6引入方式
* import { Polygon } from "@mapgis/webclient-common"
* // 几何查询条件
* geometry: new Polygon({
* coordinates: [
* [
* [110.74, 32.41],
* [112.89, 31.06],
* [110.15, 30.16],
* [110.74, 32.41]
* ]
* ]
* })
* })
* .then((res)=>{
* console.log('查询成功:', res);
* })
* .catch((res)=>{
* console.log('查询失败:', res);
* })
*
* @example <caption><h5>基于矢量文档的where查询</h5></caption>
* featureServer.queryFeaturesInLayers({
* // 地图在文档下的序号,从0开始编号
* mapIndex: 0,
* // 图层序号,多图层间以“,”号分隔
* layerIndexes: '1',
* // where查询条件
* where: "NAME='黄石市'"
* })
* .then((res)=>{
* console.log('查询成功:', res);
* })
* .catch((res)=>{
* console.log('查询失败:', res);
* })
*
* @example <caption><h5>基于矢量图层的where查询</h5></caption>
* featureServer.queryFeaturesInLayers({
* // 图层的gdbp地址,允许多个图层,图层间用“,”号分隔
* gdbp: 'gdbp://MapGisLocalPlus/ClientTheme/ds/epsg4326/sfcls/湖北省市级区划2',
* // where查询条件
* where: "NAME='天门市'",
* })
* .then((res)=>{
* console.log('查询成功:', res);
* })
* .catch((res)=>{
* console.log('查询失败:', res);
* })
*/
queryFeaturesInLayers(options) {
let checkPathOpts
let checkQueryOpts
// 基于矢量图层的要素查询
if (this.url.indexOf('/igs/rest/mrfs/layer') > -1) {
// 设置PATH PARAMETERS校验
checkPathOpts = {}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
gdbp: {
type: 'String',
required: true
},
geometry: {
type: 'Geometry',
process: 'igsGeometryOld'
},
distance: {
type: 'Number',
process() {
return ''
},
default: 0
},
where: {
type: 'String'
},
objectIds: {
type: 'String'
},
page: {
type: 'Number'
},
pageCount: {
type: 'Number'
},
rule: {
type: 'Object',
process(rule) {
return `&rule=${encodeURIComponent(JSON.stringify(rule))}`
}
},
structs: {
type: 'Object',
process(structs, defaultValue) {
return `&structs=${encodeURIComponent(
JSON.stringify(structs || defaultValue)
)}`
},
default: {
IncludeAttribute: true,
IncludeGeometry: true,
IncludeWebGraphic: true
}
},
orderField: {
type: 'String'
},
isAsc: {
type: 'Boolean'
}
}
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url) {
return `${url}/query?f=json`
}
)
} else if (this.url.indexOf('/igs/rest/mrfs/docs/') > -1) {
// 基于矢量文档的要素查询
// 设置PATH PARAMETERS校验
checkPathOpts = {
mapIndex: {
type: 'Number'
},
layerIndexes: {
type: 'String'
}
}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
geometry: {
type: 'Geometry',
process: 'igsGeometryOld'
},
distance: {
type: 'Number',
process() {
return ''
},
default: 0
},
where: {
type: 'String'
},
objectIds: {
type: 'String'
},
page: {
type: 'Number'
},
pageCount: {
type: 'Number'
},
rule: {
type: 'Object',
process(rule) {
return `&rule=${encodeURIComponent(JSON.stringify(rule))}`
}
},
structs: {
type: 'Object',
process(structs, defaultValue) {
return `&structs=${encodeURIComponent(
JSON.stringify(structs || defaultValue)
)}`
},
default: {
IncludeAttribute: true,
IncludeGeometry: true,
IncludeWebGraphic: true
}
},
orderField: {
type: 'String'
},
isAsc: {
type: 'Boolean'
}
}
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url, options) {
return `${url}/${options.mapIndex}/${options.layerIndexes}/query?f=json`
}
)
} else {
// 设置PATH PARAMETERS校验
checkPathOpts = {}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
layerDefs: {
type: 'Array'
},
geometry: {
type: 'Geometry'
},
distance: {
type: 'Number'
},
geometryPrecision: {
type: 'Number'
},
spatialRel: {
type: 'String'
},
resultRecordCount: {
type: 'Number'
},
returnGeometry: {
type: 'Boolean'
},
returnAttribute: {
type: 'Boolean'
},
returnStyle: {
type: 'Boolean'
},
returnIdsOnly: {
type: 'Boolean'
},
returnCountOnly: {
type: 'Boolean'
},
returnZ: {
type: 'Boolean'
}
}
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url) {
return `${url}/query?f=json`
}
)
}
}
/**
* @description 指定图层的要素添加,支持IGS2.0的要素添加服务、基于矢量图层的要素添加服务以及基于矢量文档的要素添加
* @param options 指定图层的要素添加参数,IGS2.0参数
* @param {String} [options.layerId = 0] 图层id,必传
* @param {String} [options.method = FetchMethod.get ] 请求类型
* @param {Function} [options.success ] 查询成功回调函数,若使用Promise方式则不必填写
* @param {Function} [options.failure ] 查询失败回调函数,若使用Promise方式则不必填写
* @param {Array} [options.features = []] 要添加的要素集合
* @param GDBPOptions 基于矢量图层的新增要素参数
* @param {String} [GDBPOptions.gdbp] gdbp的url,仅支持单个数据库的要素新增,必传
* @param {Object} [GDBPOptions.featureSet] 要更新的要素集合,注意是igs1.0的格式,必传
* @param DocOptions 基于矢量文档的新增要素参数
* @param {String} [DocOptions.mapIndex] 地图在文档下的序号,必传
* @param {Object} [DocOptions.featureSet] 要更新的要素集合,注意是igs1.0的格式,必传
* @return {Promise<Object>} 添加要素结果
* @example <caption><h5>IGS2.0的要素新增示例</h5></caption>
* // 创建一个线要素
* // ES5引入方式
* const { Feature } = Zondy
* // ES6引入方式
* import { Feature } from "@mapgis/webclient-common"
* const lineString = new Feature({
* //可填空或者和数据库中的表结构一一对应
* attributes: {},
* //可填空或者和系统库中的样式一一对应
* symbol: {},
* //设置几何
* geometry: new Zondy.Geometry.LineString({
* coordinates: [
* [110.74, 32.41],
* [112.89, 31.06],
* [110.15, 30.16]
* ]
* })
* })
*
* // 添加要素
* featureServer.addFeature({
* // 指定图层id
* layerId: '0',
* // 要添加的要素,可以添加多个要素
* features: [lineString]
* })
* .then((res) => {
* //成功回调函数
* console.log('添加要素: ', res)
* })
* .catch((res) => {
* //失败回调函数
* console.log('添加要素失败: ', res)
* })
*
* @example <caption><h5>基于矢量图层的要素新增示例</h5></caption>
* // 初始化资源服务
* // ES5引入方式
* const { ResourceServer} = Zondy.Service
* const { Point} = Zondy.Geometry
* const { Feature } = Zondy
* // ES6引入方式
* import { ResourceServer,Point,Feature } from "@mapgis/webclient-common"
* const resourceServer = new ResourceServer({
* // 目录服务基地址,port可填6163(.net服务)或者8089(Java服务)
* url: 'http://localhost:6163/igs/rest/mrcs'
* })
* // 查询数据库表结构
* resourceServer.queryGDBPInfo({
* // 要查询的gdbp的url
* gdbpUrl: 'gdbp://MapGisLocal/ClientTheme/sfcls/湖北省市驻地'
* })
* .then((result) => {
* // 表结构为result.data.FieldAtt
* // 创建一个要素
* const feature = new Feature({
* // 设置要素id,若id已在数据库中存在,则自增id
* id: 0,
* // 设置几何,支持点、多点、线、多线、区、多区
* geometry: new Point({
* coordinates: [110.66482, 31.747766]
* }),
* // 这里的属性一定要和数据库的表结构一一对应,顺序也不能出错
* attributes: {
* "CODE": "1",
* "NAME": "神龙架林区",
* "mpLayer": "0"
* },
* //设置样式
* symbol: {
* SymID": 43,
* SymHeight": 3.200000047683716,
* SymWidth": 3.200000047683716,
* Angle": 0,
* Color": 1467,
* Color1": 4,
* Color2": 3,
* Space": 1,
* OutPenW": [
* 0.1,
* 0.05,
* 0.05
* ]
* }
* })
* // 创建新增要素的结构体
* const featureSet = {
* // 设置表结构,必填
* AttStruct: result.data.FieldAtt,
* // 设置要添加的要素,客串多个要素
* SFEleArray: [feature.toOldIGSFeature()]
* }
* // 添加要素
* featureServer.addFeature({
* // 新增要素的结构体
* featureSet: featureSet,
* // gdbo地址,仅支持单表添加
* gdbp: 'gdbp://MapGisLocal/ClientTheme/sfcls/湖北省市驻地'
* })
* .then((result) => {
* console.log('新增要素成功:', result);
* })
* .catch((result) => {
* console.log('新增要素失败:', result);
* })
* })
* .catch((result) => {
* console.log('查询GDBO失败:', result);
* })
*
* @example <caption><h5>基于矢量文档的要素新增示例</h5></caption>
* // 初始化资源服务
* // ES5引入方式
* const { MultiPoint} = Zondy.Geometry
* const { Feature } = Zondy
* // ES6引入方式
* import { MultiPoint,Feature } from "@mapgis/webclient-common"
* const resourceServer = new ResourceServer({
* // 目录服务基地址,port可填6163(.net服务)或者8089(Java服务)
* url: 'http://localhost:6163/igs/rest/mrcs'
* })
* // 查询数据库表结构
* resourceServer.queryGDBPInfo({
* // 要查询的gdbp的url
* gdbpUrl: 'gdbp://MapGisLocal/ClientTheme/sfcls/湖北省市驻地'
* })
* .then((result) => {
* // 创建一个要素
* const feature = new Feature({
* // 设置要素id,若id已在数据库中存在,则自增id
* id: 0,
* // 设置几何,支持点、多点、线、多线、区、多区
* geometry: new MultiPoint({
* coordinates: [
* [109.47509, 30.270342],
* [111.27724, 30.706085]
* ]
* }),
* // 这里的属性一定要和数据库的表结构一一对应
* attributes: {
* "CODE": "0",
* "Name": "测试点多点2",
* "mpLayer": "0"
* },
* // 设置样式
* symbol: {
* "SymID": 43,
* "SymHeight": 3.200000047683716,
* "SymWidth": 3.200000047683716,
* "Angle": 0,
* "Color": 1467,
* "Color1": 4,
* "Color2": 3,
* "Space": 1,
* "OutPenW": [
* 0.1,
* 0.05,
* 0.05
* ]
* }
* })
*
* // 创建新增要素的结构体
* const featureSet = {
* // 设置表结构,必填
* AttStruct: result.data.FieldAtt,
* // 设置要添加的要素,客串多个要素
* SFEleArray: [feature.toOldIGSFeature()]
* }
*
* // 添加要素
* featureServer.addFeature({
* // 新增要素的结构体
* featureSet: featureSet,
* // 地图在文档下的序号,从0开始编号
* mapIndex: 0,
* // 图层序号,从0开始编号
* layerIndex: 2
* })
* .then((result) => {
* console.log('新增要素成功:', result);
* })
* .catch((result) => {
* console.log('新增要素失败:', result);
* })
* })
* .catch((result) => {
* console.log('查询GDBO失败:', result);
* })
*/
addFeature(options) {
let checkPathOpts
let checkQueryOpts
// 基于矢量图层的要素新增
if (this.url.indexOf('/igs/rest/mrfs/layer') > -1) {
// 设置PATH PARAMETERS校验
checkPathOpts = {}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
gdbp: {
type: 'String',
required: true,
process() {
return ''
}
},
featureSet: {
type: 'Object',
required: true,
process(featureSet) {
return encodeURIComponent(JSON.stringify(featureSet))
}
}
}
// 设置请求头,一定要是text/plain;charset=UTF-8
options.headers = {
'Content-Type': 'text/plain;charset=UTF-8'
}
options.method = FetchMethod.post
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url, options) {
return `${url}/addFeatures?f=json&gdbp=${options.gdbp}`
}
)
} // 基于矢量文档的要素添加
else if (this.url.indexOf('/igs/rest/mrfs/docs') > -1) {
// 设置PATH PARAMETERS校验
checkPathOpts = {
mapIndex: {
type: 'Number'
},
layerIndex: {
type: 'Number'
}
}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
featureSet: {
type: 'Object',
required: true,
process(featureSet) {
return encodeURIComponent(JSON.stringify(featureSet))
}
}
}
// 设置请求头,一定要是text/plain;charset=UTF-8
options.headers = {
'Content-Type': 'text/plain;charset=UTF-8'
}
options.method = FetchMethod.post
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url, options) {
return `${url}/${options.mapIndex}/${options.layerIndex}/addFeatures?f=json`
}
)
} else {
// 设置PATH PARAMETERS校验
checkPathOpts = {
layerId: {
type: 'String'
}
}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
features: {
type: 'Array',
process(v) {
const features = v.map((feature) => feature.toIGSFeature())
return `&features=${encodeURIComponent(JSON.stringify(features))}`
}
}
}
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url) {
return `${url}/${options.layerId}/add?f=json`
}
)
}
}
/**
* @description 指定图层的要素删除,支持IGS2.0的要素删除服务、基于矢量图层的要素删除服务以及基于矢量文档的要素删除服务
* @param options 指定图层的要素删除参数,IGS2.0参数
* @param {String} [options.layerId ] 图层id,必传
* @param {String} [options.method = FetchMethod.get ] 请求类型
* @param {Function} [options.success ] 查询成功回调函数,若使用Promise方式则不必填写
* @param {Function} [options.failure ] 查询失败回调函数,若使用Promise方式则不必填写
* @param {String} [options.objectIds ] 过滤id,多个用英文逗号分隔(使用大数据作为数据源发布的要素服务,该参数是唯一有效参数)
* @param {String} [options.where ] 属性条件,类SQL语句
* @param {Geometry} [options.geometry ] 空间几何条件
* @param {Number} [options.distance ] 几何缓冲的距离,geometry为点、线时有效
* @param {Boolean} [options.returnDeleteResults = true] 是否返回每个要素删除的结果,默认为true,如果要高效的批量删除,应设置为false
* @param GDBPOptions 基于矢量图层的要素删除
* @param {String} [GDBPOptions.gdbp] 图层的gdbp地址,允许多个图层,图层间用“;”号分隔,必填,例如:
* gdbp=gdbp://MapGisLocal/示例数据/ds/世界地图/sfcls/海洋陆地;gdbp://sa@SqlServerGIS/MPDBMASTER/ds/兰伯特(全国)_400万/sfcls/中国地级县
* @param {String} [GDBPOptions.objectIds] 需要删除的要素的OID值,OID为要素的唯一标识码,一个图层可包含多个objectIds间以“,”分隔,可包含多个图层,各个图层的objectIds间以“;”分隔,必填,lieu:
* objectIds=1,2,3;2,3,4;8
* @param DocOptions 基于矢量文档的要素删除
* @param {String} [DocOptions.mapIndex] 地图在文档下的序号,从0开始编号,必填
* @param {String} [DocOptions.layerIndex] 图层序号,从0开始编号,必填
* @param {String} [DocOptions.objectIds] 要删除的要素id,多个id以','分割,必填
* @return {Promise<Object>} 返回要素删除结果
* @example <caption><h5>IGS2.0的要素删除示例</h5></caption>
* // 删除要素
* featureServer.deleteFeature({
* // 图层id
* layerId: '0',
* // 压迫删除的要素id,多个要素id以','分割
* objectIds: '0,1,2,3,5,6'
* })
* .then((res)=>{
* console.log('要素删除成功:', res);
* })
* .catch((res)=>{
* console.log('要素删除失败:', res);
* })
* @example <caption><h5>基于矢量地图的要素删除示例</h5></caption>
* // 删除要素
* featureServer.deleteFeature({
* // gdbp的url
* gdbp: 'gdbp://MapGisLocal/ClientTheme/sfcls/湖北省市驻地',
* // 要删除的要素id,多个id以','分割
* objectIds: '18053'
* })
* .then((res)=>{
* console.log('要素删除成功:', res);
* })
* .catch((res)=>{
* console.log('要素删除失败:', res);
* })
* @example <caption><h5>基于基于矢量文档的要素删除示例</h5></caption>
* // 删除要素
* featureServer.deleteFeature({
* // 地图在文档下的序号,从0开始编号
* mapIndex: 0,
* // 图层序号,从0开始编号
* layerIndex: 2,
* // 要删除的要素id,多个id以','分割
* objectIds: '18057'
* })
* .then((res)=>{
* console.log('要素删除成功:', res);
* })
* .catch((res)=>{
* console.log('要素删除失败:', res);
* })
*/
deleteFeature(options) {
let checkPathOpts
let checkQueryOpts
// 基于矢量图层的要素删除
if (this.url.indexOf('/igs/rest/mrfs/layer') > -1) {
// 设置PATH PARAMETERS校验
checkPathOpts = {}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
gdbp: {
type: 'String'
},
objectIds: {
type: 'String'
}
}
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url) {
return `${url}/deleteFeatures?f=json`
}
)
} // 基于矢量图层的要素删除
else if (this.url.indexOf('/igs/rest/mrfs/docs') > -1) {
// 设置PATH PARAMETERS校验
checkPathOpts = {
mapIndex: {
type: 'Number'
},
layerIndex: {
type: 'Number'
}
}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
objectIds: {
type: 'String',
required: true
}
}
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url, options) {
return `${url}/${options.mapIndex}/${options.layerIndex}/deleteFeatures?f=json`
}
)
} else {
// 设置PATH PARAMETERS校验
checkPathOpts = {
layerId: {
type: 'String'
}
}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
objectIds: {
type: 'String'
},
where: {
type: 'String'
},
geometry: {
type: 'Geometry'
},
distance: {
type: 'Number'
},
returnDeleteResults: {
type: 'Boolean'
}
}
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url) {
return `${url}/${options.layerId}/delete?f=json`
}
)
}
}
/**
* @description 指定图层的要素更新,支持IGS2.0的要素更新服务、基于矢量图层的要素更新服务以及基于矢量文档的要素更新服务
* @param options 指定图层的要素更新参数,IGS2.0服务参数
* @param {String} [options.layerId] 图层id,必传
* @param {String} [options.method = FetchMethod.get ] 请求类型
* @param {Function} [options.success ] 查询成功回调函数,若使用Promise方式则不必填写
* @param {Function} [options.failure ] 查询失败回调函数,若使用Promise方式则不必填写
* @param {Array} [options.features = []] 要更新的要素集合,需要注意要素属性必须携带FID字段才能更新
* @param GDBPOptions 基于矢量图层的要素更新参数
* @param {String} [GDBPOptions.gdbp] gdbp的url,仅支持单个数据库的要素更新,必传
* @param {Object} [GDBPOptions.featureSet] 要更新的要素集合,注意是igs1.0的格式,必传
* @return {Promise<Object>} 返回图层更新结果
* @example <caption><h5>IGS2.0的要素更新示例</h5></caption>
* // 创建线要素
* // ES5引入方式
* const { Feature } = Zondy
* const { LineString } = Zondy.Geometry
* // ES6引入方式
* import { Feature } from "@mapgis/webclient-common"
* const lineString = new Feature({
* // 更新要素时需要传一个FID来指定要素,其他的属性值可以根据需求来盖面
* attributes: { FID:'0' },
* // 更新样式
* symbol: {},
* // 更新几何,注意几何一定要是GDBP表对应的几何类型
* geometry: new LineString({
* coordinates: [
* [110.74, 32.41],
* [112.89, 31.06],
* [110.15, 30.16]
* ]
* })
* })
* // 更新线要素
* featureServer.updateFeature({
* // 图层id
* layerId: '1',
* // 要更新的要素,支持一次更新多个要素
* features: [lineString]
* })
* .then((res) => {
* console.log('要素更新成功: ', res)
* })
* .catch((res) => {
* console.log('要素更新失败: ', res)
* })
*
* @example <caption><h5>基于矢量图层的要素更新示例</h5></caption>
* // 初始化资源服务
* // ES5引入方式
* const { ResourceServer } = Zondy.Service
* const { Feature } = Zondy
* const { Point } = Zondy.Geometry
* // ES6引入方式
* import { ResourceServer,Feature, Point} from "@mapgis/webclient-common"
* const resourceServer = new ResourceServer({
* // 目录服务基地址,port可填6163(.net服务)或者8089(Java服务)
* url: 'http://localhost:6163/igs/rest/mrcs'
* })
* // 查询数据库表结构
* resourceServer.queryGDBPInfo({
* // 要查询的gdbp的url
* gdbpUrl: 'gdbp://MapGisLocal/ClientTheme/sfcls/湖北省市驻地'
* })
* .then((result) => {
* // 表结构为result.data.FieldAtt
* // 创建一个要素
* const feature = new Feature({
* // 设置更新要素的id
* id: 1220,
* // 设置几何,支持点、多点、线、多线、区、多区
* geometry: new Point({
* coordinates: [110.66482, 31.747766]
* }),
* // 更新属性
* attributes: {
* "CODE": "1",
* "NAME": "新的神龙架林区",
* "mpLayer": "0"
* },
* //更新样式
* symbol: {
* SymID": 43,
* SymHeight": 3.200000047683716,
* SymWidth": 3.200000047683716,
* Angle": 0,
* Color": 1467,
* Color1": 4,
* Color2": 3,
* Space": 1,
* OutPenW": [
* 0.1,
* 0.05,
* 0.05
* ]
* }
* })
* // 创建更新要素的结构体
* const featureSet = {
* // 设置表结构,必填
* AttStruct: result.data.FieldAtt,
* // 设置要添加的要素,客串多个要素
* SFEleArray: [feature.toOldIGSFeature()]
* }
* // 更新要素
* featureServer.updateFeature({
* // 更新要素的结构体
* featureSet: featureSet,
* // gdbo地址,仅支持单表添加
* gdbp: 'gdbp://MapGisLocal/ClientTheme/sfcls/湖北省市驻地'
* })
* .then((result) => {
* console.log('更新要素成功:', result);
* })
* .catch((result) => {
* console.log('更新要素失败:', result);
* })
* })
* .catch((result) => {
* console.log('查询GDBO失败:', result);
* })
*
* @example <caption><h5>基于矢量文档的要素更新示例</h5></caption>
* // 初始化资源服务
* // ES5引入方式
* const { ResourceServer } = Zondy.Service
* const { Feature } = Zondy
* const { MultiPoint } = Zondy.Geometry
* // ES6引入方式
* import { ResourceServer,Feature,MultiPoint } from "@mapgis/webclient-common"
* const resourceServer = new ResourceServer({
* // 目录服务基地址,port可填6163(.net服务)或者8089(Java服务)
* url: 'http://localhost:6163/igs/rest/mrcs'
* })
* // 查询数据库表结构
* resourceServer.queryGDBPInfo({
* // 要查询的gdbp的url
* gdbpUrl: 'gdbp://MapGisLocal/ClientTheme/sfcls/湖北省市驻地'
* })
* .then((result) => {
* // 创建一个要素
* const feature = new Feature({
* // 设置要更新的要素id
* id: 0,
* // 设置几何,支持点、多点、线、多线、区、多区
* geometry: new MultiPoint({
* coordinates: [
* [109.47509, 30.270342],
* [111.27724, 30.706085]
* ]
* }),
* // 更新属性
* attributes: {
* "CODE": "0",
* "Name": "多点",
* "mpLayer": "0"
* },
* // 更新样式
* symbol: {
* "SymID": 43,
* "SymHeight": 3.200000047683716,
* "SymWidth": 3.200000047683716,
* "Angle": 0,
* "Color": 1467,
* "Color1": 4,
* "Color2": 3,
* "Space": 1,
* "OutPenW": [
* 0.1,
* 0.05,
* 0.05
* ]
* }
* })
*
* // 创建更新要素的结构体
* const featureSet = {
* // 设置表结构,必填
* AttStruct: result.data.FieldAtt,
* // 设置要更新的要素,客串多个要素
* SFEleArray: [feature.toOldIGSFeature()]
* }
*
* // 更新要素
* featureServer.updateFeature({
* // 更新要素的结构体
* featureSet: featureSet,
* // 地图在文档下的序号,从0开始编号
* mapIndex: 0,
* // 图层序号,从0开始编号
* layerIndex: 2
* })
* .then((result) => {
* console.log('更新要素成功:', result);
* })
* .catch((result) => {
* console.log('更新要素失败:', result);
* })
* })
* .catch((result) => {
* console.log('查询GDBO失败:', result);
* })
*/
updateFeature(options) {
let checkPathOpts
let checkQueryOpts
// 基于矢量图层的要素更新
if (this.url.indexOf('/igs/rest/mrfs/layer') > -1) {
// 设置PATH PARAMETERS校验
checkPathOpts = {}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
gdbp: {
type: 'String',
required: true,
process() {
return ''
}
},
featureSet: {
type: 'Object',
required: true,
process(featureSet) {
return encodeURIComponent(JSON.stringify(featureSet))
}
}
}
// 设置请求头,一定要是text/plain;charset=UTF-8
options.headers = {
'Content-Type': 'text/plain;charset=UTF-8'
}
options.method = FetchMethod.post
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url, options) {
return `${url}/updateFeatures?f=json&gdbp=${options.gdbp}`
}
)
} // 基于地图文档的要素更新
else if (this.url.indexOf('/igs/rest/mrfs/docs') > -1) {
// 设置PATH PARAMETERS校验
checkPathOpts = {
mapIndex: {
type: 'Number'
},
layerIndex: {
type: 'Number'
}
}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
featureSet: {
type: 'Object',
required: true,
process(featureSet) {
return encodeURIComponent(JSON.stringify(featureSet))
}
}
}
// 设置请求头,一定要是text/plain;charset=UTF-8
options.headers = {
'Content-Type': 'text/plain;charset=UTF-8'
}
options.method = FetchMethod.post
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url, options) {
return `${url}/${options.mapIndex}/${options.layerIndex}/updateFeatures?f=json`
}
)
} else {
// 设置PATH PARAMETERS校验
checkPathOpts = {
layerId: {
type: 'String'
}
}
// 设置QUERY PARAMETERS校验
checkQueryOpts = {
features: {
type: 'Array',
process(v) {
const features = v.map((feature) => feature.toIGSFeature())
return `&features=${encodeURIComponent(JSON.stringify(features))}`
}
}
}
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url) {
return `${url}/${options.layerId}/update?f=json`
}
)
}
}
/**
* @description 根据id获取指定图层指定要素,IGS2.0新增服务
* @param options 获取指定图层指定要素参数
* @param {String} [options.layerId ] 图层id,必传
* @param {Array} [options.featureId ] 要素id,必传
* @param {String} [options.method = FetchMethod.get ] 请求类型
* @param {Function} [options.success ] 查询成功回调函数,若使用Promise方式则不必填写
* @param {Function} [options.failure ] 查询失败回调函数,若使用Promise方式则不必填写
* @return {Promise<Object>} 返回指定图层指定要素
* @example <caption><h5>根据id获取指定图层指定要素</h5></caption>
* featureServer.queryFeatureById({
* // 图层id
* layerId: '0',
* // 要素id
* featureId: '437'
* })
* .then((res) => {
* console.log('要素查询成功:', res)
* })
* .catch((res) => {
* console.log('要素查询失败:', res)
* })
*/
queryFeatureById(options) {
// 设置PATH PARAMETERS校验
const checkPathOpts = {
layerId: {
type: 'String'
},
featureId: {
type: 'String'
}
}
// 设置QUERY PARAMETERS校验
const checkQueryOpts = {}
// 只支持get方式
options.method = FetchMethod.get
// 调用基类的查询信息方法
return this._queryByParameters(
options,
checkPathOpts,
checkQueryOpts,
// 拼装返回基地址
function (url) {
return `${url}/${options.layerId}/${options.featureId}?f=json`
}
)
}
}
Zondy.Service.FeatureServer = FeatureServer
export default FeatureServer
</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>