@mapgis/webclient-common
Version:
mapgis ES6 format for igserver
2,703 lines (1,285 loc) • 106 kB
HTML
<header id="page-title" class="page-title">
<span class="page-title-main">类名</span>
<span class="page-title-sub">IGSVectorTileLayer</span>
</header>
<section>
<article>
<div class="container-overview">
<div class='vertical-section'>
<div class="members">
<div class="member">
<h4 class="name" id="IGSVectorTileLayer">
<a class="href-link" href="#IGSVectorTileLayer">#</a>
<span class="code-name" id="IGSVectorTileLayer" style="font-size:30px">
new IGSVectorTileLayer<span class="signature">(options)</span>
</span>
</h4>
<div class="description">
<p>IGS矢量瓦片图层<br/>
支持IGS1.0和2.0两个服务版本<br/>
<br/>
支持通过如下三种方式来初始化矢量瓦片图层对象:<br/>
1、通过服务基地址来初始化矢量瓦片图层对象;<br/>
2、通过加载矢量瓦片样式文件的方式来初始化矢量瓦片图层对象;<br/>
3、通过设置矢量瓦片样式的方式来初始化矢量瓦片图层对象;<br/>
当加载MapGIS制作并由IGS发布的矢量瓦片时,如果矢量瓦片样式中有mapinfo参数,则子图层ID对应的是MapX中的图层索引;
如果没有mapinfo参数,则子图层ID对应的是矢量瓦片样式图层ID;<br/>
当加载第三方发布的矢量瓦片时,子图层ID对应的是矢量瓦片样式图层ID;<br/>
<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/>
同时也支持二次开发自定义业务逻辑,示例如下:<br/>
<a href='#custom-es5'>[自定义矢量瓦片业务逻辑-es5]</a>,<a href='#custom-es6'>[自定义矢量瓦片业务逻辑-es6]</a>
<br/>
<br/>
注意:三维上,不支持简单Marker样式设定;二维上,简单Marker的颜色,外边线样式,旋转角度无法在图层初始化和初始化后修改,须在制作数据时进行指定</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"><code>options</code></td>
<td class="type">
<span class="param-type">
Object
</span>
</td>
<td class="default">
</td>
<td class="description last"><p>构造参数</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>url</code></td>
<td class="type">
<span class="param-type">
String
</span>
</td>
<td class="default">
null
</td>
<td class="description last"><p>服务基地址,和style参数二者选其一:<br>
IGS1.0的服务基地址为:http://{ip}:6163/igs/rest/mrcs/vtiles/{serviceName}<br>
需要注意由于igs1.0版本不再新增功能,无法解析矢量瓦片Lod信息以及坐标系信息,目前需要在矢量瓦片图层接口上显式设置坐标系信息,默认坐标系3857,可选4326或3857,参考示例:<a href='#igs-1'>[IGS1.0的矢量瓦片示例]</a><br/>
IGS2.0的服务基地址为:http://{ip}:{port}/igs/rest/services/{serviceName}/VectorTileServer<br>
参考示例:<a href='#igs-2'>[IGS2.0的矢量瓦片示例]</a><br/>
服务基地址也支持传入矢量瓦片样式文件地址:<br>
IGS1.0的样式文件地址:http://{ip}:6163/igs/rest/mrcs/vtiles/styles/{样式文件名称}.json<br>
IGS2.0的样式文件地址:http://{ip}:8089/igs/rest/mrcs/vtiles/styles/{样式文件名称}.json<br>
请注意当服务基地址内容为矢量瓦片样式文件地址时,请保证图层名和数据源名称一致,否则会导致接口请求异常<br>
删除图层方法:<a href='#remove-layer'>[删除图层]</a></p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>style</code></td>
<td class="type">
<span class="param-type">
Object
</span>
</td>
<td class="default">
null
</td>
<td class="description last"><p>矢量瓦片的mvt样式对象,默认从服务中获取,用户也可主动传入mvt样式对象来构造一个矢量瓦片图层,此时会忽略用户输入的url参数<br/>
和url参数二者选其一<br>
参考示例:<a href='#mvt-style'>[通过mvt样式对象来构造矢量瓦片示例]</a></p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>sublayers</code></td>
<td class="type">
<span class="param-type">
<a onclick="getTypeHTML(event)" link="Collection.html">Collection</a>.<<a onclick="getTypeHTML(event)" link="IGSVectorTileSubLayer.html">IGSVectorTileSubLayer</a>>
</span>
</td>
<td class="default">
</td>
<td class="description last"><p>会通过该参数中指定的子图层列表对矢量瓦片服务中的子图层进行过滤,不在列表中的子图层将不会显示;如果没有指定该参数,则会按照矢量瓦片服务中的子图层的属性显示所有子图层;如果该参数为空数组,则矢量瓦片服务所有的子图层都不显示。<br>
目前支持的专题图如下:<br>
<a href="UniqueValueRenderer.html"><code>1、单值专题图</code></a><br/>
<a href="ClassBreakRenderer.html"><code>2、分段专题图</code></a><br/>
<a href="SimpleRenderer.html"><code>3、统一专题图</code></a><br/>
参考示例:<br/>
<a href='#showAllSubLayers'>[1、显示所有子图层]</a><br/>
<a href='#showSubLayersById'>[2、根据id显示子图层]</a><br/>
<a href='#showSubLayers-property'>[3、通过修改子图参数,设置子图层显隐]</a><br/>
<a href='#setLayerRenderer-unique'>[4、设置子图层专题图-单值专题图]</a><br/>
<a href='#setLayerRenderer-break'>[5、设置子图层专题图-分段专题图]</a><br/>
<a href='#setLayerRenderer-simple'>[6、设置子图层专题图-统一专题图]</a><br/>
<a href='#setLayerRenderer-property'>[7、通过修改子图参数,设置子图层专题图]</a><br/></p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>minScale</code></td>
<td class="type">
<span class="param-type">
Number
</span>
</td>
<td class="default">
0
</td>
<td class="description last"><p>最小显示比例尺,图层在视图中可见的最小比例尺。</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>maxScale</code></td>
<td class="type">
<span class="param-type">
Number
</span>
</td>
<td class="default">
0
</td>
<td class="description last"><p>最大显示比例尺,图层在视图中可见的最大比例尺。</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>opacity</code></td>
<td class="type">
<span class="param-type">
Number
</span>
</td>
<td class="default">
1
</td>
<td class="description last"><p>图层透明度,0到1之间的值,0为完全透明,1为不透明,参考示例:<a href='#opacity'>[设置图层透明度]</a></p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>tokenKey</code></td>
<td class="type">
<span class="param-type">
String
</span>
</td>
<td class="default">
'token'
</td>
<td class="description last"><p>token名</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>tokenValue</code></td>
<td class="type">
<span class="param-type">
String
</span>
</td>
<td class="default">
null
</td>
<td class="description last"><p>token值,只有当tokenValue存在时,才会绑定token</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>visible</code></td>
<td class="type">
<span class="param-type">
Boolean
</span>
</td>
<td class="default">
true
</td>
<td class="description last"><p>图层显示或隐藏,true则显示,false则隐藏,参考示例:<a href='#visible'>[设置图层显隐]</a></p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>labelsRenderMode</code></td>
<td class="type">
<span class="param-type">
String
</span>
</td>
<td class="default">
'off-screen'
</td>
<td class="description last"><p>指定矢量瓦片注记的渲染模式,仅在三维上有效<br/>
on-screen: 使用Cesium接口实时渲染注记<br/>
off-screen: 使用矢量瓦片来绘制注记<br/>
三维注记目前不支持修改透明度和显隐参数<br>
请注意模式切换时,会造成性能损失,在显卡较弱的机器上会出现卡顿现象<br/>
参考示例:<a href='#labels-3d'>[矢量瓦片三维注记]</a><a href='#labels-mode'>[切换三维注记模式]</a><br/></p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>clippingArea</code></td>
<td class="type">
<span class="param-type">
<a link="Polygon.html" onclick="getTypeHTML(event)" href="Polygon.html">Polygon</a>
</span>
|
<span class="param-type">
<a link="Extent.html" onclick="getTypeHTML(event)" href="Extent.html">Extent</a>
</span>
|
<span class="param-type">
<a link="Circle.html" onclick="getTypeHTML(event)" href="Circle.html">Circle</a>
</span>
|
<span class="param-type">
<a link="MultiPolygon.html" onclick="getTypeHTML(event)" href="MultiPolygon.html">MultiPolygon</a>
</span>
|
<span class="param-type">
null
</span>
</td>
<td class="default">
null
</td>
<td class="description last"><p>图层空间裁剪范围,仅支持多多边形裁剪、多边形裁剪、矩形裁剪、圆形裁剪</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>replaceStyleURL</code></td>
<td class="type">
<span class="param-type">
Boolean
</span>
</td>
<td class="default">
true
</td>
<td class="description last"><p>初始化图层时,是否将样式中的基地址替换为图层的基地址</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>replaceStyleURLRegExp</code></td>
<td class="type">
<span class="param-type">
RegExp
</span>
</td>
<td class="default">
'预定义的正则表达式'
</td>
<td class="description last"><p>当replaceStyleURL设置为true时,将样式中的基地址替换为图层的基地址操作中使用的正则表达式</p></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
</dl>
<div class="method-parameter columns">
<div class="column is-2"><label>绑定事件</label></div>
<div class="column is-10">
<ul>
<li><a href="#图层加载完毕事件">图层加载完毕事件</a></li>
<li><a href="#图层销毁完毕事件">图层销毁完毕事件</a></li>
<li><a href="#图层更新完毕事件">图层更新完毕事件</a></li>
<li><a href="#图层显隐更新完毕事件">图层显隐更新完毕事件</a></li>
<li><a href="#图层透明度更新完毕事件">图层透明度更新完毕事件</a></li>
</ul>
</div>
</div>
<p class="summary"><h5>支持如下方法:</h5>
<a href='#findSublayerById'>[1、根据子图层id查询图层]</a><br/>
<a href='#fromJSON'>[2、通过传入的json构造并返回一个新的IGSVectorTileLayer对象]</a><br/>
<a href='#toJSON'>[3、导出为json对象]</a><br/>
<a href="VectorTileLayer.html#getStyleLayer"><code>4、通过矢量瓦片样式图层的id,找到对应的矢量瓦片样式图层对象</code></a><br/>
<a href="VectorTileLayer.html#getStyleLayerIndex"><code>5、通过矢量瓦片样式图层的id,找到对应的矢量瓦片样式图层的序号</code></a><br/>
<a href="VectorTileLayer.html#getStyleLayerId"><code>6、通过矢量瓦片样式图层的序号,找到对应的矢量瓦片样式图层的id</code></a><br/>
<a href="VectorTileLayer.html#setStyleLayer"><code>7、设置样式图层属性对象</code></a><br/>
<a href="VectorTileLayer.html#deleteStyleLayer"><code>8、删除样式图层</code></a><br/>
<a href="VectorTileLayer.html#setStyleLayerVisibility"><code>9、设置样式图层可见性</code></a><br/>
<a href="VectorTileLayer.html#getStyleLayerVisibility"><code>10、获取样式图层可见性</code></a><br/>
<a href="VectorTileLayer.html#getPaintProperties"><code>11、获取样式图层绘制属性</code></a><br/>
<a href="VectorTileLayer.html#setPaintProperties"><code>12、设置样式图层绘制属性</code></a><br/>
<a href="VectorTileLayer.html#getLayoutProperties"><code>13、获取样式图层布局属性</code></a><br/>
<a href="VectorTileLayer.html#setLayoutProperties"><code>14、设置样式图层布局属性</code></a><br/>
<a href="VectorTileLayer.html#setExtendProperties"><code>15、设置样式图层的额外属性</code></a><br/>
<a href="VectorTileLayer.html#getExtendProperties"><code>16、获取样式图层的额外属性</code></a><br/>
<a href="VectorTileLayer.html#clone"><code>17、克隆图层</code></a><br/></p>
<h5>示例</h5>
<p class="code-caption"><h7 id='igs-1'>IGS1.0的矢量瓦片示例</h7></p>
<pre class="prettyprint"><code>//初始化地图管理容器
// ES5引入方式
const { IGSVectorTileLayer } = zondy.layer
const { SpatialReference } = zondy
// ES6引入方式
import { IGSVectorTileLayer, SpatialReference } from "@mapgis/webclient-common"
//初始化矢量瓦片图层
const igsVectorTileLayer = new IGSVectorTileLayer({
// 矢量瓦片基地址
url: '',
// 图层参考系
spatialReference:new SpatialReference('EPSG:4326')
});</code></pre>
<p class="code-caption"><h7 id='igs-2'>IGS2.0的矢量瓦片示例</h7></p>
<pre class="prettyprint"><code> // ES5引入方式
const { IGSVectorTileLayer } = zondy.layer
// ES6引入方式
import { IGSVectorTileLayer } from "@mapgis/webclient-common"
// 初始化矢量瓦片图层
const igsVectorTileLayer = new IGSVectorTileLayer({
// 矢量瓦片基地址
url: ''
});</code></pre>
<p class="code-caption"><h7 id='mvt-style'>通过mvt样式对象来构造矢量瓦片示例</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { IGSVectorTileLayer } = zondy.layer
// ES6引入方式
import { IGSVectorTileLayer } from "@mapgis/webclient-common"
// 初始化矢量瓦片图层
const igsVectorTileLayer = new IGSVectorTileLayer({
// 矢量瓦片的mvt样式对象
style: {}
});</code></pre>
<p class="code-caption"><h7 id='custom-es5'>自定义矢量瓦片业务逻辑-es5</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { IGSVectorTileLayer } = zondy.layer
// ES6引入方式
import { IGSVectorTileLayer } from "@mapgis/webclient-common"
// 初始化矢量瓦片图层
const igsVectorTileLayer = new IGSVectorTileLayer({
// 矢量瓦片基地址
url: ''
});
// 例如通过重写igsVectorTileLayer对象的covertCustomStyleToMVTStyle方法,来自定义矢量瓦片业务逻辑
igsVectorTileLayer.covertCustomStyleToMVTStyle = function(customStyle) {
// 自定义你的业务逻辑
// 此方法必须要返回一个符合MapBox标准的矢量瓦片
return mvtStyle
}
// 在ES5模式下,如果更改了图层的业务逻辑,则必须通过图层的load方法来加载元信息,之后再添加图层
igsVectorTileLayer.load().then(() => {
// 添加图层
map.add(igsVectorTileLayer)
})</code></pre>
<p class="code-caption"><h7 id='custom-es6'>自定义矢量瓦片业务逻辑-es6</h7></p>
<pre class="prettyprint"><code>// ES6引入方式
import { IGSVectorTileLayer } from "@mapgis/webclient-common"
// 在ES6模式下继承IGSVectorTileLayer,并重写其业务逻辑
class IGSVectorTileLayerCustom extends IGSVectorTileLayer {
constructor(options) {
super(options)
}
}
// 重写方法
IGSVectorTileLayerCustom.prototype.covertCustomStyleToMVTStyle = function (customStyle) {
// 自定义你的业务逻辑
// 此方法必须要返回一个符合MapBox标准的矢量瓦片
return mvtStyle
}
const customLayer = new IGSVectorTileLayerCustom({
// 矢量瓦片基地址
url: ''
})</code></pre>
<p class="code-caption"><h7 id='labels-3d'>矢量瓦片三维注记</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { LabelClass } = zondy
const { IGSVectorTileLayer } = zondy.layer
// ES6引入方式
import { IGSVectorTileLayer, LabelClass } from "@mapgis/webclient-common"
// 初始化一个额外的图标DOM对象
const iconImage = new Image()
iconImage.src = '图片地址或者base64字符串'
// 初始化矢量瓦片图层
const igsVectorTileLayer = new IGSVectorTileLayer({
// 矢量瓦片基地址
url: '',
// 开启三维注记
labelsRenderMode: 'on-screen',
// 设置要应用三维主句的子图层
sublayers: [{
// 矢量瓦片子图层id
id: '矢量瓦片子图层id',
// 注记参数,目前仅用填写一个
labelingInfo: [
new LabelClass({
symbol: {
// 填充颜色 rgba or 16进制颜色
color: 'rgba(255,255,255,1)',
// 描边颜色
haloColor: 'rgba(0,0,0,0.5)',
// 描边宽度
haloSize: 2,
// 行高
lineHeight: 1.1,
// 文本间距
letterSpacing: 2,
// 字体样式 参考css
font: {
size: 14,
family: '微软雅黑',
weight: 'normal',
style: 'normal'
},
// 额外的图标
textExtraIcon: iconImage,
// 图标的大小
textExtraIconSize:20,
// 图标方位
textExtraIconAnchor:'left'
},
// 渲染方式 1.canvas 2.label 3.ground
renderMode: 'canvas',
// 最大可见范围
minScale: 60000000,
// 最小可见范围
maxScale: 1,
// 布局位置 可选 1.above-left 2.above-center 3.above-right 4.center-left 5.center-center 6.center-right 7.below-left 8.below-center 9.below-right
labelPlacement: 'above-center',
// 高程采样参数
elevationInfo: {
mode: 'OnTheGround',
offset: 0
}
})
]
}]
});</code></pre>
<p class="code-caption"><h7 id='labels-mode'>切换三维注记模式</h7></p>
<pre class="prettyprint"><code>// 矢量瓦片渲染模式
igsVectorTileLayer.labelsRenderMode = 'off-screen'
// Cesium三维渲染模式
igsVectorTileLayer.labelsRenderMode = 'on-screen'</code></pre>
<p class="code-caption"><h7 id='opacity'>设置图层透明度</h7></p>
<pre class="prettyprint"><code>igsVectorTileLayer.opacity = 0.5</code></pre>
<p class="code-caption"><h7 id='visible'>显示或隐藏图层</h7></p>
<pre class="prettyprint"><code>igsVectorTileLayer.visible = !igsVectorTileLayer.visible</code></pre>
<p class="code-caption"><h7 id='remove-layer'>删除图层</h7></p>
<pre class="prettyprint"><code>map.remove(igsVectorTileLayer)</code></pre>
<p class="code-caption"><h7 id='showAllSubLayers'>显示所有子图层</h7></p>
<pre class="prettyprint"><code> // ES5引入方式
const { IGSVectorTileLayer } = zondy.layer
// ES6引入方式
import { IGSVectorTileLayer } from "@mapgis/webclient-common"
// 添加图层
const igsVectorTileLayer = new IGSVectorTileLayer({
// 服务基地址
url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/VectorTileServer',
//默认不设置sublayers,加载全部图层
});</code></pre>
<p class="code-caption"><h7 id='showSubLayersById'>根据id显示子图层</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { IGSVectorTileLayer } = zondy.layer
// ES6引入方式
import { IGSVectorTileLayer } from "@mapgis/webclient-common"
// 添加图层
const igsVectorTileLayer = new IGSVectorTileLayer({
// 服务基地址
url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/VectorTileServer',
// 根据id显示子图层
sublayers: [
{
// 子图层id
id: '子图层id',
// 显示子图层
visible: true
}
]
});</code></pre>
<p class="code-caption"><h7 id='showSubLayers-property'>通过修改子图参数,设置子图层显隐</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { IGSVectorTileLayer } = zondy.layer
// ES6引入方式
import { IGSVectorTileLayer } from "@mapgis/webclient-common"
// 添加图层
const igsVectorTileLayer = new IGSVectorTileLayer({
// 服务基地址
url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/VectorTileServer'
});
igsVectorTileLayer.on('layerview-created', function (result) {
console.log("加载完毕:", result.layer)
// 根据id获取子图层
const subLayer = igsVectorTileLayer.findSublayerById('图层id')
// 设置子图层显隐
subLayer.visible = false
})</code></pre>
<p class="code-caption"><h7 id='setLayerRenderer-unique'>设置子图层专题图-单值专题图</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { IGSVectorTileLayer } = zondy.layer
const { UniqueValueRenderer } = zondy.renderer
const { SimpleFillSymbol,SimpleLineSymbol } = zondy.symbol
const { Color } = zondy
// ES6引入方式
import { IGSVectorTileLayer,UniqueValueRenderer ,SimpleFillSymbol,SimpleLineSymbol,Color} from "@mapgis/webclient-common"
const igsVectorTileLayer = new IGSVectorTileLayer({
// 服务基地址,当不指定图层名称时,默认查询第一个子图层
url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/VectorTileServer',
// 设置子图层专题图
sublayers: [
{
// 子图层id
id: '子图层id',
// 设置渲染样式-单值专题图
renderer: new UniqueValueRenderer({
//专题图过滤字段名
field: '你的字段名',
// 默认样式,当没有匹配到指定值时,会使用默认样式
//因为该数据的几何类型为区,因此设置区样式
defaultSymbol: new SimpleFillSymbol({
// 填充颜色
color: 'rgba(1,1,252,0)',
// 外边线样式
outline: new SimpleLineSymbol({
//线颜色
color: new Color(255, 1, 0, 1),
//线宽
width: 1
})
}),
//单值专题图过滤调条件数组
uniqueValueInfos: [{
//指定字段值
value: "指定的值",
//匹配到该值后的样式
//因为该数据的几何类型为区,因此设置区样式
symbol: new SimpleFillSymbol({
// 填充颜色
color: 'rgba(1,1,252,1)',
// 外边线样式
outline: new SimpleLineSymbol({
//线符号颜色
color: new Color(255, 1, 0, 11),
//线宽
width: 1
})
})
},{
//指定字段值
value: "指定的值",
//匹配到该值后的样式
//因为该数据的几何类型为区,因此设置区样式
symbol: new SimpleFillSymbol({
// 填充颜色
color: new Color(211, 111, 11, 1)
})
}]
})
}
]
});</code></pre>
<p class="code-caption"><h7 id='setLayerRenderer-break'>设置子图层专题图-分段专题图</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { IGSVectorTileLayer } = zondy.layer
const { ClassBreakRenderer } = zondy.renderer
const { SimpleFillSymbol,SimpleLineSymbol } = zondy.symbol
const { Color } = zondy
// ES6引入方式
import { IGSVectorTileLayer,ClassBreakRenderer ,SimpleFillSymbol,SimpleLineSymbol,Color} from "@mapgis/webclient-commo
const igsVectorTileLayer = new IGSVectorTileLayer({
// 服务基地址,当不指定图层名称时,默认查询第一个子图层
url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/VectorTileServer',
// 设置子图层专题图
sublayers: [
{
// 子图层id
id: '子图层id',
// 设置渲染样式-分段专题图
renderer: new ClassBreakRenderer({
//专题图过滤字段名
field: '你的字段名',
// 默认样式,当没有匹配到指定值时,会使用默认样式
// 因为该数据的几何类型为区,因此设置区样式
defaultSymbol: new SimpleFillSymbol({
// 填充颜色
color: 'rgba(222,1,252,1)',
// 线符号样式
outline: new SimpleLineSymbol({
//线符号颜色
color: new Color(255, 1, 0, 1),
//线宽
width: 1
})
}),
//分段专题图过滤条件数组
classBreakInfos: [{
// 最大过滤范围,field对应的值小于maxValue
maxValue: "最大范围",
// 最小过滤范围,field对应的值大于等于minValue
minValue: "最小范围",
// 匹配到该值后的样式
// 因为该数据的几何类型为区,因此设置区样式
symbol: new SimpleFillSymbol({
// 填充颜色
color: 'rgba(1,1,252,1)',
// 线符号样式
outline: new SimpleLineSymbol({
//线符号颜色
color: new Color(255, 1, 0, 1),
//线宽
width: 1
})
})
}]
})
}
]
});</code></pre>
<p class="code-caption"><h7 id='setLayerRenderer-property'>通过修改子图参数,设置子图层专题图</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { IGSVectorTileLayer } = zondy.layer
const { ClassBreakRenderer } = zondy.renderer
const { SimpleFillSymbol,SimpleLineSymbol } = zondy.symbol
const { Color } = zondy
// ES6引入方式
import { IGSVectorTileLayer,ClassBreakRenderer ,SimpleFillSymbol,SimpleLineSymbol,Color} from "@mapgis/webclient-commo
const igsVectorTileLayer = new IGSVectorTileLayer({
// 服务基地址
url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/VectorTileServer'
});
// 根据id获取子图层
const subLayer = igsVectorTileLayer.findSublayerById('子图层id')
// 设置渲染样式-分段专题图
subLayer.renderer = new ClassBreakRenderer({
// 专题图过滤字段名
field: '你的字段名',
// 默认样式,当没有匹配到指定值时,会使用默认样式
// 因为该数据的几何类型为区,因此设置区样式
defaultSymbol: new SimpleFillSymbol({
// 填充颜色
color: 'rgba(222,1,252,1)',
// 线符号样式
outline: new SimpleLineSymbol({
//线符号颜色
color: new Color(255, 1, 0, 1),
//线宽
width: 1
})
}),
//分段专题图过滤条件数组
classBreakInfos: [{
// 最大过滤范围,field对应的值小于maxValue
maxValue: "最大范围",
// 最小过滤范围,field对应的值大于等于minValue
minValue: "最小范围",
// 匹配到该值后的样式
// 因为该数据的几何类型为区,因此设置区样式
symbol: new SimpleFillSymbol({
// 填充颜色
color: 'rgba(1,1,252,1)',
// 线符号样式
outline: new SimpleLineSymbol({
//线符号颜色
color: new Color(255, 1, 0, 1),
//线宽
width: 1
})
})
}]
})</code></pre>
<p class="code-caption"><h7 id='setLayerRenderer-simple'>统一专题图</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { IGSVectorTileLayer } = zondy.layer
const { SimpleRenderer } = zondy.renderer
const { SimpleFillSymbol,SimpleLineSymbol } = zondy.symbol
const { Color } = zondy
// ES6引入方式
import { IGSVectorTileLayer,SimpleRenderer ,SimpleFillSymbol,SimpleLineSymbol,Color} from "@mapgis/webclient-commo
const igsVectorTileLayer = new IGSVectorTileLayer({
// 服务基地址
url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/VectorTileServer',
// 设置子图层专题图
sublayers: [{
// 子图层id
id: '子图层id',
// 设置渲染样式-统一专题图
renderer: new SimpleRenderer({
// 因为该数据的几何类型为区,因此设置区样式
symbol: new SimpleFillSymbol({
// 填充颜色
color: new zondy.Color(255, 0, 0),
// 外边线样式
outline: new SimpleLineSymbol({
// 线颜色
color: new Color(0, 0, 0),
// 线宽度
width: 1
})
})
})
}]
})</code></pre>
</div>
</div>
</div>
</div>
<h3 class="subsection-title">继承关系</h3>
<ul>
<li><a link="VectorTileLayer.html" onclick="getTypeHTML(event)" href="VectorTileLayer.html">VectorTileLayer</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="#capabilities">capabilities</a></code></td>
<td class="name">
<code>
<span class="param-type">
Array.<String>
</span>
</code>
</td>
<td class="name"><code><p>服务支持的能力</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#clippingArea">clippingArea</a></code></td>
<td class="name">
<code>
<span class="param-type">
<a link="Polygon.html" onclick="getTypeHTML(event)" href="Polygon.html">Polygon</a>
</span>
|
<span class="param-type">
<a link="Extent.html" onclick="getTypeHTML(event)" href="Extent.html">Extent</a>
</span>
|
<span class="param-type">
<a link="Circle.html" onclick="getTypeHTML(event)" href="Circle.html">Circle</a>
</span>
|
<span class="param-type">
<a link="MultiPolygon.html" onclick="getTypeHTML(event)" href="MultiPolygon.html">MultiPolygon</a>
</span>
|
<span class="param-type">
null
</span>
</code>
</td>
<td class="name"><code><p>空间裁剪范围</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#currentStyleInfo">currentStyleInfo</a></code></td>
<td class="name">
<code>
<span class="param-type">
Object
</span>
</code>
</td>
<td class="name"><code><p>当前的矢量瓦片样式信息,包含serviceUrl 、styleUrl 、spriteUrl 、glyphsUrl 以及style</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#description">description</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="#labelsRenderMode">labelsRenderMode</a></code></td>
<td class="name">
<code>
<span class="param-type">
String
</span>
</code>
</td>
<td class="name"><code><p>指定矢量瓦片注记的渲染模式,仅在三维上有效;
on-screen: 使用Cesium接口实时渲染注记;
off-screen: 使用矢量瓦片来绘制注记;
请注意模式切换时,会造成性能损失,在显卡较弱的机器上会出现卡顿现象;</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#mvtExtent">mvtExtent</a></code></td>
<td class="name">
<code>
<span class="param-type">
Number
</span>
</code>
</td>
<td class="name"><code><p>mvt矢量瓦片相对坐标范围,默认为4096,表示矢量瓦片相对坐标的范围为0到4096</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#replaceStyleURL">replaceStyleURL</a></code></td>
<td class="name">
<code>
<span class="param-type">
Boolean
</span>
</code>
</td>
<td class="name"><code><p>初始化图层时,是否将样式中的基地址替换为图层的基地址</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#replaceStyleURLRegExp">replaceStyleURLRegExp</a></code></td>
<td class="name">
<code>
<span class="param-type">
RegExp
</span>
</code>
</td>
<td class="name"><code><p>当replaceStyleURL设置为true时,将样式中的基地址替换为图层的基地址操作中使用的正则表达式</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#style">style</a></code></td>
<td class="name">
<code>
<span class="param-type">
Object
</span>
</code>
</td>
<td class="name"><code><p>矢量瓦片的mvt样式对象</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#sublayers">sublayers</a></code></td>
<td class="name">
<code>
<span class="param-type">
<a onclick="getTypeHTML(event)" link="Collection.html">Collection</a>.<<a onclick="getTypeHTML(event)" link="IGSVectorTileSubLayer.html">IGSVectorTileSubLayer</a>>
</span>
</code>
</td>
<td class="name"><code><p>矢量瓦片子图层</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#tileInfo">tileInfo</a></code></td>
<td class="name">
<code>
<span class="param-type">
<a link="TileInfo.html" onclick="getTypeHTML(event)" href="TileInfo.html">TileInfo</a>
</span>
|
<span class="param-type">
undefined
</span>
</code>
</td>
<td class="name"><code><p>瓦片切图信息</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#type">type</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="#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">
Array.<String>
</span>
</span>
<h4 class="name" id="capabilities">
<a class="href-link" href="#capabilities">#</a>
<span class="code-name">
capabilities
</span>
</h4>
<div class="description">
<p>服务支持的能力</p>
</div>
<dl class="details">
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="VectorTileLayer.html#capabilities">VectorTileLayer#capabilities</a>
</li></ul></dd>
</dl>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">
<a link="Polygon.html" onclick="getTypeHTML(event)" href="Polygon.html">Polygon</a>
</span>
|
<span class="param-type">
<a link="Extent.html" onclick="getTypeHTML(event)" href="Extent.html">Extent</a>
</span>
|
<span class="param-type">
<a link="Circle.html" onclick="getTypeHTML(event)" href="Circle.html">Circle</a>
</span>
|
<span class="param-type">
<a link="MultiPolygon.html" onclick="getTypeHTML(event)" href="MultiPolygon.html">MultiPolygon</a>
</span>
|
<span class="param-type">
null
</span>
</span>
<h4 class="name" id="clippingArea">
<a class="href-link" href="#clippingArea">#</a>
<span class="code-name">
clippingArea
</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="clippingArea" link="VectorTileLayer.html" onclick="getTypeHTML(event)" href="VectorTileLayer.html#clippingArea">VectorTileLayer#clippingArea</a>
</li></ul></dd>
</dl>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">
Object
</span>
</span>
<h4 class="name" id="currentStyleInfo">
<a class="href-link" href="#currentStyleInfo">#</a>
<span class='tag'>readonly</span>
<span class="code-name">
currentStyleInfo
</span>
</h4>
<div class="description">
<p>当前的矢量瓦片样式信息,包含serviceUrl 、styleUrl 、spriteUrl 、glyphsUrl 以及style</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="currentStyleInfo" link="VectorTileLayer.html" onclick="getTypeHTML(event)" href="VectorTileLayer.html#currentStyleInfo">VectorTileLayer#currentStyleInfo</a>
</li></ul></dd>
</dl>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">
String
</span>
</span>
<h4 class="name" id="description">
<a class="href-link" href="#description">#</a>
<span class='tag'>readonly</span>
<span class="code-name">
description
</span>
</h4>
<div class="description">
<p>图层描述</p>
</div>
<dl class="details">
<dt class="tag-default">Default Value:</dt>
<dd class="tag-default"><ul class="dummy">
<li>IGS矢量瓦片图层</li>
</ul></dd>
</dl>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">
String
</span>
</span>
<h4 class="name" id="labelsRenderMode">
<a class="href-link" href="#labelsRenderMode">#</a>
<span class="code-name">
labelsRenderMode
</span>
</h4>
<div class="description">
<p>指定矢量瓦片注记的渲染模式,仅在三维上有效;
on-screen: 使用Cesium接口实时渲染注记;
off-screen: 使用矢量瓦片来绘制注记;
请注意模式切换时,会造成性能损失,在显卡较弱的机器上会出现卡顿现象;</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="labelsRenderMode" link="VectorTileLayer.html" onclick="getTypeHTML(event)" href="VectorTileLayer.html#labelsRenderMode">VectorTileLayer#labelsRenderMode</a>
</li></ul></dd>
</dl>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">
Number
</span>
</span>
<h4 class="name" id="mvtExtent">
<a class="href-link" href="#mvtExtent">#</a>
<span class="code-name">
mvtExtent
</span>
</h4>
<div class="description">
<p>mvt矢量瓦片相对坐标范围,默认为4096,表示矢量瓦片相对坐标的范围为0到4096</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="mvtExtent" link="VectorTileLayer.html" onclick="getTypeHTML(event)" href="VectorTileLayer.html#mvtExtent">VectorTileLayer#mvtExtent</a>
</li></ul></dd>
<dt class="tag-default">Default Value:</dt>
<dd class="tag-default"><ul class="dummy">
<li>4096</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="replaceStyleURL">
<a class="href-link" href="#replaceStyleURL">#</a>
<span class="code-name">
replaceStyleURL
</span>
</h4>
<div class="description">
<p>初始化图层时,是否将样式中的基地址替换为图层的基地址</p>
</div>
<dl class="details">
<dt class="tag-default">Default Value:</dt>
<dd class="tag-default"><ul class="dummy">
<li>true</li>
</ul></dd>
</dl>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">
RegExp
</span>
</span>
<h4 class="name" id="replaceStyleURLRegExp">
<a class="href-link" href="#replaceStyleURLRegExp">#</a>
<span class="code-name">
replaceStyleURLRegExp
</span>
</h4>
<div class="description">
<p>当replaceStyleURL设置为true时,将样式中的基地址替换为图层的基地址操作中使用的正则表达式</p>
</div>
<dl class="details">
</dl>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">
Object
</span>
</span>
<h4 class="name" id="style">
<a class="href-link" href="#style">#</a>
<span class="code-name">
style
</span>
</h4>
<div class="description">
<p>矢量瓦片的mvt样式对象</p>
</div>
<dl class="details">
<dt class="inherited-from">Inherited From:</dt>
<dd class="inherited-from"><ul class="dummy"><li>
<a goto="style" link="VectorTileLayer.html" onclick="getTypeHTML(event)" href="VectorTileLayer.html#style">VectorTileLayer#style</a>
</li></ul></dd>
</dl>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">
<a onclick="getTypeHTML(event)" link="Collection.html">Collection</a>.<<a onclick="getTypeHTML(event)" link="IGSVectorTileSubLayer.html">IGSVectorTileSubLayer</a>>
</span>
</span>
<h4 class="name" id="sublayers">
<a class="href-link" href="#sublayers">#</a>
<span class="code-name">
sublayers
</span>
</h4>
<div class="description">
<p>矢量瓦片子图层</p>
</div>
<dl class="details">
</dl>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">
<a link="TileInfo.html" onclick="getTypeHTML(event)" href="TileInfo.html">TileInfo</a>
</span>
|
<span class="param-type">
undefined
</span>
</span>
<h4 class="name" id="tileInfo">
<a class="href-link" href="#tileInfo">#</a>
<span class='tag'>readonly</span>
<span class="code-name">
tileInfo
</span>
</h4>
<div class="description">
<p>瓦片切图信息</p>
</div>
<dl class="details">
<dt class="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="VectorTileLayer.html#tileInfo">VectorTileLayer#tileInfo</a>
</li></ul></dd>
</dl>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">
String
</span>
</span>
<h4 class="name" id="type">
<a class="href-link" href="#type">#</a>
<span class='tag'>readonly</span>
<span class="code-name">
type
</span>
</h4>
<div class="description">
<p>图层类型</p>
</div>
<dl class="details">
<dt class="tag-default">Default Value:</dt>
<dd class="tag-default"><ul class="dummy">
<li>LayerType.igsVectorTile</li>
</ul></dd>
</dl>
</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="tag-overrides">Overrides:</dt>
<dd class="tag-overrides"><ul class="dummy"><li>
<a href="VectorTileLayer.html#url">VectorTileLayer#url</a>
</li></ul></dd>
</dl>
</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="#fromJSON">fromJSON</a></code></td>
<td class="name">
<code>
<span class="param-type">
<a link="IGSVectorTileLayer.html" onclick="getTypeHTML(event)" href="IGSVectorTileLayer.html">IGSVectorTileLayer</a>
</span>
</code>
</td>
<td class="name"><code><p>通过传入的json构造并返回一个新的VectorTileLayer对象</code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#_updateMapInfoSubLayers">_updateMapInfoSubLayers</a></code></td>
<td class="name">
<code>
</code>
</td>
<td class="name"><code><p>通过用户设置的子图层参数,更新MapInfo中的子图层参数,
遵循如下规则:
1、如果用户设置的子图层ID和MapInfo的子图层中ID相等,则将用户的设置覆盖服务端设置,同时打一个标签,表示该MapInfo的子图层可以被创建;
2、如果MapInfo的子图层没有和客户设置的子图层匹配上,也打一个标签,表示该MapInfo的子图层不可以被创建;
3、如果clientSubLayers的长度为0,则要创建显示所有子图层,此处clientSubLayers的长度为0表示客户未设置sublayers参数,或sublayers-undefined,
如果用户设置了sublayers=[],则会在_initSubLayers方法中的2.1步骤直接设置样式图层为空</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#clone">clone</a></code></td>
<td class="name">
<code>
<span class="param-type">
<a link="Layer.html" onclick="getTypeHTML(event)" href="Layer.html">Layer</a>
</span>
</code>
</td>
<td class="name"><code><p>克隆方法</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#covertCustomStyleToMVTStyle">covertCustomStyleToMVTStyle</a></code></td>
<td class="name">
<code>
<span class="param-type">
Object
</span>
</code>
</td>
<td class="name"><code><p>将自定义的style转成矢量瓦片的mvtStyle,可有子类或初始化时自定义</p></code></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code><a href="#deleteStyleLayer">deleteStyleLayer</a></code></td>