@mapgis/webclient-common
Version:
mapgis ES6 format for igserver
3,142 lines (1,302 loc) • 106 kB
HTML
<header id="page-title" class="page-title">
<span class="page-title-main">类名</span>
<span class="page-title-sub">FeatureServer</span>
</header>
<section>
<article>
<div class="container-overview">
<div class='vertical-section'>
<div class="members">
<div class="member">
<h4 class="name" id="FeatureServer">
<a class="href-link" href="#FeatureServer">#</a>
<span class="code-name" id="FeatureServer" style="font-size:30px">
new FeatureServer<span class="signature">(options)</span>
</span>
</h4>
<div class="description">
<p>要素服务</p>
</div>
<h4>参数</h4>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th class="last">描述</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name" id="options"><code>options</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last"><p>构造参数</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="url"><code>url</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="description last"><p>服务基地址,支持igs2.0的要素服务、矢量图层的要素查询以及矢量文档的要素查询</p></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
</dl>
<h5>示例</h5>
<pre class="prettyprint"><code>//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}'
})</code></pre>
</div>
</div>
</div>
</div>
<h3 class="subsection-title">继承关系</h3>
<ul>
<li><a link="BaseServer.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="BaseServer" BaseServer.html>BaseServer</a></li>
</ul>
<div class='vertical-section'>
<h3 id='member'>成员变量</h3>
<h4 style="margin-top: 20px;margin-bottom: 20px;">成员变量概述</h4>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name"><code><a href="#clientId">clientId</a></code></td>
<td class="name">
<code>
<span class="param-type">Boolean</span>
</code>
</td>
<td class="name"><code><p>客户端id</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#enableGlobeFetch">enableGlobeFetch</a></code></td>
<td class="name">
<code>
<span class="param-type">Boolean</span>
</code>
</td>
<td class="name"><code><p>是否使用确据唯一的fetch对象,默认为true,当设为false时,会使用自己私有的fetch对象,所有的请求设置不会影响全局</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#headers">headers</a></code></td>
<td class="name">
<code>
<span class="param-type">String</span>
</code>
</td>
<td class="name"><code><p>请求头参数</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#requestInterceptor">requestInterceptor</a></code></td>
<td class="name">
<code>
<span class="param-type">function</span>
</code>
</td>
<td class="name"><code><p>请求发送拦截器</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#requestTimeout">requestTimeout</a></code></td>
<td class="name">
<code>
<span class="param-type">String</span>
</code>
</td>
<td class="name"><code><p>请求超时时间,默认45000ms,即45s</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#responseInterceptor">responseInterceptor</a></code></td>
<td class="name">
<code>
<span class="param-type">function</span>
</code>
</td>
<td class="name"><code><p>请求响应拦截器</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#tokenAttachType">tokenAttachType</a></code></td>
<td class="name">
<code>
<span class="param-type"><a link="TokenAttachType.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="TokenAttachType" global.html#TokenAttachType>TokenAttachType</a></span>
</code>
</td>
<td class="name"><code><p>指定token附加到何处</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#tokenKey">tokenKey</a></code></td>
<td class="name">
<code>
<span class="param-type">String</span>
</code>
</td>
<td class="name"><code><p>token名</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#tokenValue">tokenValue</a></code></td>
<td class="name">
<code>
<span class="param-type">String</span>
</code>
</td>
<td class="name"><code><p>token值</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#url">url</a></code></td>
<td class="name">
<code>
<span class="param-type">String</span>
</code>
</td>
<td class="name"><code><p>服务基地址</p></code></td>
</tr>
</tbody>
</table>
</div>
<h4 style="margin-top: 20px;margin-bottom: 20px;">成员变量详情</h4>
<div class="members">
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">Boolean</span>
</span>
<h4 class="name" id="clientId">
<a class="href-link" href="#clientId">#</a>
<span class="code-name">
clientId
</span>
</h4>
<div class="description">
<p>客户端id</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="clientId" link="BaseServer.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="BaseServer#clientId" BaseServer.html#clientId>BaseServer#clientId</a>
</li></ul></dd>
</dl>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">Boolean</span>
</span>
<h4 class="name" id="enableGlobeFetch">
<a class="href-link" href="#enableGlobeFetch">#</a>
<span class="code-name">
enableGlobeFetch
</span>
</h4>
<div class="description">
<p>是否使用确据唯一的fetch对象,默认为true,当设为false时,会使用自己私有的fetch对象,所有的请求设置不会影响全局</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="enableGlobeFetch" link="BaseServer.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="BaseServer#enableGlobeFetch" BaseServer.html#enableGlobeFetch>BaseServer#enableGlobeFetch</a>
</li></ul></dd>
</dl>
<h5>示例</h5>
<pre class="prettyprint"><code>//设置请求基地址
// ES5引入方式
const { BaseServer } = Zondy.Service
// ES6引入方式
import { BaseServer } from "@mapgis/webclient-common"
let BaseServer = new BaseServer({
//请求基地址
url: '你的URL',
//使用私有的fetch对象
enableGlobeFetch: false,
//此时设置token等属性,不会影响全局的fetch对象
tokenValue: '你的token'
});
//继续使用全局fetch
BaseServer.enableGlobeFetch = true;</code></pre>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">String</span>
</span>
<h4 class="name" id="headers">
<a class="href-link" href="#headers">#</a>
<span class="code-name">
headers
</span>
</h4>
<div class="description">
<p>请求头参数</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="headers" link="BaseServer.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="BaseServer#headers" BaseServer.html#headers>BaseServer#headers</a>
</li></ul></dd>
</dl>
<h5>示例</h5>
<pre class="prettyprint"><code>//设置请求头参数
// ES5引入方式
const { BaseServer } = Zondy.Service
// ES6引入方式
import { BaseServer } from "@mapgis/webclient-common"
let BaseServer = new BaseServer({
//请求头
headers: {
//设置Content-Type为multipart/form-data
'Content-Type': 'multipart/form-data',
//设置token
'token': '你的token'
}
});
//动态修改
BaseServer.headers.token = '新token';</code></pre>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">function</span>
</span>
<h4 class="name" id="requestInterceptor">
<a class="href-link" href="#requestInterceptor">#</a>
<span class="code-name">
requestInterceptor
</span>
</h4>
<div class="description">
<p>请求发送拦截器</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="requestInterceptor" link="BaseServer.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="BaseServer#requestInterceptor" BaseServer.html#requestInterceptor>BaseServer#requestInterceptor</a>
</li></ul></dd>
</dl>
<h5>示例</h5>
<pre class="prettyprint"><code>//设置拦截器,任何一个继承自BaseServer的对象都可以设置,全局唯一
// ES5引入方式
const { BaseServer,RequestInterceptor } = Zondy.Service
// ES6引入方式
import { BaseServer,RequestInterceptor } from "@mapgis/webclient-common"
let BaseServer = new BaseServer({
//设置请求发送拦截器
requestInterceptor: new RequestInterceptor({
//请求发送前进行统一处理
before: function(config) {
//执行你的业务逻辑
//注意必须显示返回config对象,如果返回为空,则不发送请求
return config;
},
//请求发送失败时进行统一处理
failure: function(error) {
//执行你的业务逻辑
}
})
});
//动态修改
BaseServer.requestInterceptor.before = function() {};</code></pre>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">String</span>
</span>
<h4 class="name" id="requestTimeout">
<a class="href-link" href="#requestTimeout">#</a>
<span class="code-name">
requestTimeout
</span>
</h4>
<div class="description">
<p>请求超时时间,默认45000ms,即45s</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="requestTimeout" link="BaseServer.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="BaseServer#requestTimeout" BaseServer.html#requestTimeout>BaseServer#requestTimeout</a>
</li></ul></dd>
</dl>
<h5>示例</h5>
<pre class="prettyprint"><code>//设置超时时间
//初始化AddressServer服务对象
// ES5引入方式
const { BaseServer } = Zondy.Service
// ES6引入方式
import { BaseServer } from "@mapgis/webclient-common"
let BaseServer = new BaseServer({
//超时时间
requestTimeout: 2000
});
//动态修改
BaseServer.requestTimeout = 3000;</code></pre>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">function</span>
</span>
<h4 class="name" id="responseInterceptor">
<a class="href-link" href="#responseInterceptor">#</a>
<span class="code-name">
responseInterceptor
</span>
</h4>
<div class="description">
<p>请求响应拦截器</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="responseInterceptor" link="BaseServer.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="BaseServer#responseInterceptor" BaseServer.html#responseInterceptor>BaseServer#responseInterceptor</a>
</li></ul></dd>
</dl>
<h5>示例</h5>
<pre class="prettyprint"><code>//设置拦截器,任何一个继承自BaseServer的对象都可以设置,全局唯一
// ES5引入方式
const { BaseServer,ResponseInterceptor } = Zondy.Service
// ES6引入方式
import { BaseServer,ResponseInterceptor } from "@mapgis/webclient-common"
let BaseServer = new BaseServer({
//设置请求响应拦截器
responseInterceptor: new ResponseInterceptor({
//执行请求响应,接口调用成功时会执行的回调
success: function(result) {
//执行你的业务逻辑
//注意必须显示返回result对象,如果返回为空,则不执行请求响应成功回调
return result;
},
//请求响应成功,接口调用失败时会执行的函数
failure: function(result) {
//执行你的业务逻辑
//注意必须显示返回result对象,如果返回为空,则不执行回调韩式
return result;
}
})
});
//动态修改
BaseServer.responseInterceptor.success = function() {};</code></pre>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type"><a link="TokenAttachType.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="TokenAttachType" global.html#TokenAttachType>TokenAttachType</a></span>
</span>
<h4 class="name" id="tokenAttachType">
<a class="href-link" href="#tokenAttachType">#</a>
<span class="code-name">
tokenAttachType
</span>
</h4>
<div class="description">
<p>指定token附加到何处</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="tokenAttachType" link="BaseServer.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="BaseServer#tokenAttachType" BaseServer.html#tokenAttachType>BaseServer#tokenAttachType</a>
</li></ul></dd>
</dl>
<h5>示例</h5>
<pre class="prettyprint"><code>//设置token值
// ES5引入方式
const { BaseServer } = Zondy.Service
const { TokenAttachType } = Zondy.Enum
// ES6引入方式
import { BaseServer,TokenAttachType } from "@mapgis/webclient-common"
let BaseServer = new BaseServer({
//token名
tokenValue: '你的token值',
//token值
tokenValue: '你的token值',
//指定token附加到url后面
tokenAttachType: TokenAttachType.url
});
//动态修改
BaseServer.tokenAttachType = TokenAttachType.header;</code></pre>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">String</span>
</span>
<h4 class="name" id="tokenKey">
<a class="href-link" href="#tokenKey">#</a>
<span class="code-name">
tokenKey
</span>
</h4>
<div class="description">
<p>token名</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="tokenKey" link="BaseServer.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="BaseServer#tokenKey" BaseServer.html#tokenKey>BaseServer#tokenKey</a>
</li></ul></dd>
</dl>
<h5>示例</h5>
<pre class="prettyprint"><code>//设置token名
// ES5引入方式
const { BaseServer } = Zondy.Service
// ES6引入方式
import { BaseServer } from "@mapgis/webclient-common"
let BaseServer = new BaseServer({
//token名
tokenKey: '你的tokenKey'
});
//动态修改
BaseServer.tokenKey = '新tokenKey';</code></pre>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">String</span>
</span>
<h4 class="name" id="tokenValue">
<a class="href-link" href="#tokenValue">#</a>
<span class="code-name">
tokenValue
</span>
</h4>
<div class="description">
<p>token值</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="tokenValue" link="BaseServer.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="BaseServer#tokenValue" BaseServer.html#tokenValue>BaseServer#tokenValue</a>
</li></ul></dd>
</dl>
<h5>示例</h5>
<pre class="prettyprint"><code>//设置token值
// ES5引入方式
const { BaseServer } = Zondy.Service
// ES6引入方式
import { BaseServer } from "@mapgis/webclient-common"
let BaseServer = new BaseServer({
//token值
tokenValue: '你的token值'
});
//动态修改
BaseServer.tokenValue = '新token值';</code></pre>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">String</span>
</span>
<h4 class="name" id="url">
<a class="href-link" href="#url">#</a>
<span class="code-name">
url
</span>
</h4>
<div class="description">
<p>服务基地址</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="url" link="BaseServer.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="BaseServer#url" BaseServer.html#url>BaseServer#url</a>
</li></ul></dd>
</dl>
<h5>示例</h5>
<pre class="prettyprint"><code>//设置请求基地址
// ES5引入方式
const { BaseServer } = Zondy.Service
// ES6引入方式
import { BaseServer } from "@mapgis/webclient-common"
let BaseServer = new BaseServer({
//请求基地址
url: '你的URL'
});
//动态修改
BaseServer.url = '新URL';</code></pre>
</div>
</div>
</div>
<div class='vertical-section'>
<h3 id='function'>方法</h3>
<h4 style="margin-top: 20px;margin-bottom: 20px;">方法概述</h4>
<div class="members">
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>名称</th>
<th>返回值类型</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name"><code><a href="#addFeature">addFeature</a></code></td>
<td class="name">
<code>
<span class="param-type">Promise.<Object></span>
</code>
</td>
<td class="name"><code><p>指定图层的要素添加,支持IGS2.0的要素添加服务、基于矢量图层的要素添加服务以及基于矢量文档的要素添加</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#deleteFeature">deleteFeature</a></code></td>
<td class="name">
<code>
<span class="param-type">Promise.<Object></span>
</code>
</td>
<td class="name"><code><p>指定图层的要素删除,支持IGS2.0的要素删除服务、基于矢量图层的要素删除服务以及基于矢量文档的要素删除服务</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#queryFeatureById">queryFeatureById</a></code></td>
<td class="name">
<code>
<span class="param-type">Promise.<Object></span>
</code>
</td>
<td class="name"><code><p>根据id获取指定图层指定要素,IGS2.0新增服务</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#queryFeatures">queryFeatures</a></code></td>
<td class="name">
<code>
<span class="param-type">Promise.<Object></span>
</code>
</td>
<td class="name"><code><p>指定图层的要素查询,支持IGS2.0,IGS1.0服务</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#queryFeaturesInLayers">queryFeaturesInLayers</a></code></td>
<td class="name">
<code>
<span class="param-type">Promise.<Object></span>
</code>
</td>
<td class="name"><code><p>全图层要素查询,支持igs2.0、igs1.0</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#queryLayerInfo">queryLayerInfo</a></code></td>
<td class="name">
<code>
<span class="param-type">Promise.<Object></span>
</code>
</td>
<td class="name"><code><p>获取要素服务图层信息,支持IGS1.0,IGS2.0</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#queryServerInfo">queryServerInfo</a></code></td>
<td class="name">
<code>
</code>
</td>
<td class="name"><code><p>获取服务信息,IGS2.0新增服务</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#updateFeature">updateFeature</a></code></td>
<td class="name">
<code>
<span class="param-type">Promise.<Object></span>
</code>
</td>
<td class="name"><code><p>指定图层的要素更新,支持IGS2.0的要素更新服务、基于矢量图层的要素更新服务以及基于矢量文档的要素更新服务</p></code></td>
</tr>
</tbody>
</table>
</div>
<h4 style="margin-top: 20px;margin-bottom: 20px;">方法详情</h4>
<div class="member">
<h4 class="name" id="addFeature">
<a class="href-link" href="#addFeature">#</a>
<span class="code-name" id="addFeature" style="font-size:30px">
addFeature<span class="signature">(options, GDBPOptions, DocOptions)</span>
</span>
</h4>
<div class="description">
<p>指定图层的要素添加,支持IGS2.0的要素添加服务、基于矢量图层的要素添加服务以及基于矢量文档的要素添加</p>
</div>
<h4>参数</h4>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th style="min-width: 100px;">默认值</th>
<th class="last">描述</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name" id="options"><code>options</code></td>
<td class="type">
</td>
<td class="default">
</td>
<td class="description last"><p>指定图层的要素添加参数,IGS2.0参数</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="layerId"><code>layerId</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
0
</td>
<td class="description last"><p>图层id,必传</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="method"><code>method</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
FetchMethod.get
</td>
<td class="description last"><p>请求类型</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="success"><code>success</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="default">
</td>
<td class="description last"><p>查询成功回调函数,若使用Promise方式则不必填写</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="failure"><code>failure</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="default">
</td>
<td class="description last"><p>查询失败回调函数,若使用Promise方式则不必填写</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="features"><code>features</code></td>
<td class="type">
<span class="param-type">Array</span>
</td>
<td class="default">
[]
</td>
<td class="description last"><p>要添加的要素集合</p></td>
</tr>
<tr class="deep-level-0">
<td class="name" id="GDBPOptions"><code>GDBPOptions</code></td>
<td class="type">
</td>
<td class="default">
</td>
<td class="description last"><p>基于矢量图层的新增要素参数</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="gdbp"><code>gdbp</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
</td>
<td class="description last"><p>gdbp的url,仅支持单个数据库的要素新增,必传</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="featureSet"><code>featureSet</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="default">
</td>
<td class="description last"><p>要更新的要素集合,注意是igs1.0的格式,必传</p></td>
</tr>
<tr class="deep-level-0">
<td class="name" id="DocOptions"><code>DocOptions</code></td>
<td class="type">
</td>
<td class="default">
</td>
<td class="description last"><p>基于矢量文档的新增要素参数</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="mapIndex"><code>mapIndex</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
</td>
<td class="description last"><p>地图在文档下的序号,必传</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="featureSet"><code>featureSet</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="default">
</td>
<td class="description last"><p>要更新的要素集合,注意是igs1.0的格式,必传</p></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>返回值</label></div>
<div class="column is-10">
<div class="columns">
<div class='param-desc column is-7'><p>添加要素结果</p></div>
<div class='column is-5 has-text-left'>
<label>类型: </label>
<span class="param-type">Promise.<Object></span>
</div>
</div>
</div>
</div>
<h5>示例</h5>
<p class="code-caption"><h5>IGS2.0的要素新增示例</h5></p>
<pre class="prettyprint"><code>// 创建一个线要素
// 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)
})</code></pre>
<p class="code-caption"><h5>基于矢量图层的要素新增示例</h5></p>
<pre class="prettyprint"><code>// 初始化资源服务
// 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);
})</code></pre>
<p class="code-caption"><h5>基于矢量文档的要素新增示例</h5></p>
<pre class="prettyprint"><code>// 初始化资源服务
// 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);
})</code></pre>
</div>
<div class="member">
<h4 class="name" id="deleteFeature">
<a class="href-link" href="#deleteFeature">#</a>
<span class="code-name" id="deleteFeature" style="font-size:30px">
deleteFeature<span class="signature">(options, GDBPOptions, DocOptions)</span>
</span>
</h4>
<div class="description">
<p>指定图层的要素删除,支持IGS2.0的要素删除服务、基于矢量图层的要素删除服务以及基于矢量文档的要素删除服务</p>
</div>
<h4>参数</h4>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th style="min-width: 100px;">默认值</th>
<th class="last">描述</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name" id="options"><code>options</code></td>
<td class="type">
</td>
<td class="default">
</td>
<td class="description last"><p>指定图层的要素删除参数,IGS2.0参数</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="layerId"><code>layerId</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
</td>
<td class="description last"><p>图层id,必传</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="method"><code>method</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
FetchMethod.get
</td>
<td class="description last"><p>请求类型</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="success"><code>success</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="default">
</td>
<td class="description last"><p>查询成功回调函数,若使用Promise方式则不必填写</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="failure"><code>failure</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="default">
</td>
<td class="description last"><p>查询失败回调函数,若使用Promise方式则不必填写</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="objectIds"><code>objectIds</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
</td>
<td class="description last"><p>过滤id,多个用英文逗号分隔(使用大数据作为数据源发布的要素服务,该参数是唯一有效参数)</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="where"><code>where</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
</td>
<td class="description last"><p>属性条件,类SQL语句</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="geometry"><code>geometry</code></td>
<td class="type">
<span class="param-type"><a link="Geometry.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Geometry" Geometry.html>Geometry</a></span>
</td>
<td class="default">
</td>
<td class="description last"><p>空间几何条件</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="distance"><code>distance</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
</td>
<td class="description last"><p>几何缓冲的距离,geometry为点、线时有效</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="returnDeleteResults"><code>returnDeleteResults</code></td>
<td class="type">
<span class="param-type">Boolean</span>
</td>
<td class="default">
true
</td>
<td class="description last"><p>是否返回每个要素删除的结果,默认为true,如果要高效的批量删除,应设置为false</p></td>
</tr>
<tr class="deep-level-0">
<td class="name" id="GDBPOptions"><code>GDBPOptions</code></td>
<td class="type">
</td>
<td class="default">
</td>
<td class="description last"><p>基于矢量图层的要素删除</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="gdbp"><code>gdbp</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
</td>
<td class="description last"><p>图层的gdbp地址,允许多个图层,图层间用“;”号分隔,必填,例如:
gdbp=gdbp://MapGisLocal/示例数据/ds/世界地图/sfcls/海洋陆地;gdbp://sa@SqlServerGIS/MPDBMASTER/ds/兰伯特(全国)_400万/sfcls/中国地级县</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="objectIds"><code>objectIds</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
</td>
<td class="description last"><p>需要删除的要素的OID值,OID为要素的唯一标识码,一个图层可包含多个objectIds间以“,”分隔,可包含多个图层,各个图层的objectIds间以“;”分隔,必填,lieu:
objectIds=1,2,3;2,3,4;8</p></td>
</tr>
<tr class="deep-level-0">
<td class="name" id="DocOptions"><code>DocOptions</code></td>
<td class="type">
</td>
<td class="default">
</td>
<td class="description last"><p>基于矢量文档的要素删除</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="mapIndex"><code>mapIndex</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
</td>
<td class="description last"><p>地图在文档下的序号,从0开始编号,必填</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="layerIndex"><code>layerIndex</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
</td>
<td class="description last"><p>图层序号,从0开始编号,必填</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="objectIds"><code>objectIds</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
</td>
<td class="description last"><p>要删除的要素id,多个id以','分割,必填</p></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>返回值</label></div>
<div class="column is-10">
<div class="columns">
<div class='param-desc column is-7'><p>返回要素删除结果</p></div>
<div class='column is-5 has-text-left'>
<label>类型: </label>
<span class="param-type">Promise.<Object></span>
</div>
</div>
</div>
</div>
<h5>示例</h5>
<p class="code-caption"><h5>IGS2.0的要素删除示例</h5></p>
<pre class="prettyprint"><code>// 删除要素
featureServer.deleteFeature({
// 图层id
layerId: '0',
// 压迫删除的要素id,多个要素id以','分割
objectIds: '0,1,2,3,5,6'
})
.then((res)=>{
console.log('要素删除成功:', res);
})
.catch((res)=>{
console.log('要素删除失败:', res);
})</code></pre>
<p class="code-caption"><h5>基于矢量地图的要素删除示例</h5></p>
<pre class="prettyprint"><code>// 删除要素
featureServer.deleteFeature({
// gdbp的url
gdbp: 'gdbp://MapGisLocal/ClientTheme/sfcls/湖北省市驻地',
// 要删除的要素id,多个id以','分割
objectIds: '18053'
})
.then((res)=>{
console.log('要素删除成功:', res);
})
.catch((res)=>{
console.log('要素删除失败:', res);
})</code></pre>
<p class="code-caption"><h5>基于基于矢量文档的要素删除示例</h5></p>
<pre class="prettyprint"><code>// 删除要素
featureServer.deleteFeature({
// 地图在文档下的序号,从0开始编号
mapIndex: 0,
// 图层序号,从0开始编号
layerIndex: 2,
// 要删除的要素id,多个id以','分割
objectIds: '18057'
})
.then((res)=>{
console.log('要素删除成功:', res);
})
.catch((res)=>{
console.log('要素删除失败:', res);
})</code></pre>
</div>
<div class="member">
<h4 class="name" id="queryFeatureById">
<a class="href-link" href="#queryFeatureById">#</a>
<span class="code-name" id="queryFeatureById" style="font-size:30px">
queryFeatureById<span class="signature">(options)</span>
</span>
</h4>
<div class="description">
<p>根据id获取指定图层指定要素,IGS2.0新增服务</p>
</div>
<h4>参数</h4>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th style="min-width: 100px;">默认值</th>
<th class="last">描述</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name" id="options"><code>options</code></td>
<td class="type">
</td>
<td class="default">
</td>
<td class="description last"><p>获取指定图层指定要素参数</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="layerId"><code>layerId</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
</td>
<td class="description last"><p>图层id,必传</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="featureId"><code>featureId</code></td>
<td class="type">
<span class="param-type">Array</span>
</td>
<td class="default">
</td>
<td class="description last"><p>要素id,必传</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="method"><code>method</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
FetchMethod.get
</td>
<td class="description last"><p>请求类型</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="success"><code>success</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="default">
</td>
<td class="description last"><p>查询成功回调函数,若使用Promise方式则不必填写</p></td>
</tr>
<tr class="deep-level-1">
<td class="name" id="failure"><code>failure</code></td>
<td class="type">
<span class="param-type">function</span>
</td>
<td class="default">
</td>
<td class="description last"><p>查询失败回调函数,若使用Promise方式则不必填写</p></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>返回值</label></div>
<div class="column is-10">
<div class="columns">
<div class='param-desc column is-7'><p>返回指定图层指定要素</p></div>
<div class='column is-5 has-text-left'>
<label>类型: </label>
<span class="param-type">Promise.<Object></span>
</div>
</div>