UNPKG

@mapgis/webclient-common

Version:

mapgis ES6 format for igserver

2,459 lines (1,158 loc) 97 kB
<header id="page-title" class="page-title"> <span class="page-title-main">类名</span> <span class="page-title-sub">IGSMapImageLayer</span> </header> <section> <article> <div class="container-overview"> <div class='vertical-section'> <div class="members"> <div class="member"> <h4 class="name" id="IGSMapImageLayer"> <a class="href-link" href="#IGSMapImageLayer">#</a> <span class="code-name" id="IGSMapImageLayer" style="font-size:30px"> new IGSMapImageLayer<span class="signature">(options)</span> </span> </h4> <div class="description"> <p>IGS地图图片图层,<br/> 支持IGS1.0和2.0两个服务版本,支持自定义坐标系,当IGS版本是1.0时,需要手动设置图层坐标系,当IGS版本是2.0时,会自动读取元信息上的坐标系,不需要用户指定<br/> <br><br>[ES5引入方式]:<br/> Zondy.Layer.IGSMapImageLayer() <br/> [ES6引入方式]:<br/> import { IGSMapImageLayer } from &quot;@mapgis/webclient-common&quot; <br/> <br/> 针对图层的操作请在图层加载完毕事件中进行<br/> Layer.on('layerview-created', function (result) {<br/> console.log(&quot;加载完毕:&quot;, result.layer)<br/> });<br/> 如果不想在该事件中放入业务代码,则请确认图层资源已加载完毕后再进行操作<br/> if(layer.loadStatus === 'loaded') {<br/> // 你的业务逻辑<br/> }</p> </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"> <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" id="url"><code>url</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="default"> </td> <td class="description last"><p>服务基地址,可以在末尾指定子图层id,若指定,则仅显示该子图层,例如:http://{服务基地址}/子图层id,<a href='#show-sublayer'>[仅显示指定子图层]<br/></p></td> </tr> <tr class="deep-level-1"> <td class="name" id="httpMethod"><code>httpMethod</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="default"> "GET" </td> <td class="description last"><p>HTTP请求方式,默认为GET请求 IGS1.0的服务为:http://{ip}:6163/igs/rest/mrms/docs/{serviceName},暂时无法从元信息中获取坐标系,请自行指定图层坐标系,参考示例:<a href='#igs-1'>[IGS1.0的地图图片图层示例]</a><br/> IGS2.0的服务为:http://{ip}:{port}/igs/rest/services/{folder}/{serviceName}/MapServer,参考示例:<a href='#igs-2'>[IGS2.0的地图图片图层示例]</a><br/> 删除图层方法:<a href='#remove-layer'>[删除图层]</a></p></td> </tr> <tr class="deep-level-1"> <td class="name" id="id"><code>id</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> <tr class="deep-level-1"> <td class="name" id="opacity"><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" id="visible"><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" id="sublayers"><code>sublayers</code></td> <td class="type"> <span class="param-type">Array.&lt;Object></span> | <span class="param-type">undefined</span> </td> <td class="default"> </td> <td class="description last"><p>会通过该参数中指定的子图层列表对地图服务中的子图层进行过滤,不在列表中的子图层将不会显示;如果没有指定该参数,则会按照地图服务中的子图层的属性显示所有子图层;如果该参数为空数组,则地图服务所有的子图层都不显示。 子图层顺序以及专题图参数仅支持IGS2.0服务,目前子图层支持的专题图如下:<br/> <a class="mapgis-link-name" title="UniqueValueRenderer" UniqueValueRenderer.html><code>1、单值专题图</code></a><br/> <a class="mapgis-link-name" title="ClassBreakRenderer" ClassBreakRenderer.html><code>2、分段专题图</code></a><br/> 参考示例:<br/> <a href='#showAllSubLayers'>[1、显示所有子图层]</a><br/> <a href='#showSubLayersById'>[2、根据id显示子图层]</a><br/> <a href='#showSubLayers-method'>[3、通过方法设置子图层显隐]</a><br/> <a href='#showSubLayers-property'>[4、通过修改子图参数,设置子图层显隐]</a><br/> <a href='#setLayerIndex'>[5、设置子图层顺序]</a><br/> <a href='#setLayerIndex-method'>[6、通过方法设设置子图层顺序]</a><br/> <a href='#setLayerIndex-property'>[7、通过修改子图参数,设置子图层顺序]</a><br/> <a href='#setLayerRenderer-unique'>[8、设置子图层专题图-单值专题图]</a><br/> <a href='#setLayerRenderer-break'>[9、设置子图层专题图-分段专题图]</a><br/> <a href='#setLayerRenderer-method'>[10、通过方法设置子图层专题图]</a><br/> <a href='#setLayerRenderer-property'>[11、通过修改子图参数,设置子图层专题图]</a><br/></p></td> </tr> <tr class="deep-level-1"> <td class="name" id="spatialReference"><code>spatialReference</code></td> <td class="type"> <span class="param-type"><a link="SpatialReference.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="SpatialReference" SpatialReference.html>SpatialReference</a></span> </td> <td class="default"> </td> <td class="description last"><p>图层坐标系,支持4326(包含4490,4214以及4610)、3857以及EPSG上的自定义坐标系,坐标系默认从元信息中获取,也可指定坐标系, 参考示例:<a href='#spatialReference'>[设置图层坐标系]</a></p></td> </tr> <tr class="deep-level-1"> <td class="name" id="imageWidth"><code>imageWidth</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="default"> 256 </td> <td class="description last"><p>图片宽度,单位px,参考示例:<a href='#tileSize'>[设置图片大小]</a></p></td> </tr> <tr class="deep-level-1"> <td class="name" id="imageHeight"><code>imageHeight</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="default"> 256 </td> <td class="description last"><p>图片高度,单位px,参考示例:<a href='#tileSize'>[设置图片大小]</a></p></td> </tr> <tr class="deep-level-1"> <td class="name" id="minScale"><code>minScale</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="default"> 0 </td> <td class="description last"><p>最小显示比例尺,图层在视图中可见的最小比例尺(最缩小)。如果地图被缩小到超过这个比例,图层将不可见。默认值为0,0表示图层没有最小比例尺、可见性不受最小比例尺限制。minScale应该始终大于maxScale</p></td> </tr> <tr class="deep-level-1"> <td class="name" id="maxScale"><code>maxScale</code></td> <td class="type"> <span class="param-type">Number</span> </td> <td class="default"> 0 </td> <td class="description last"><p>最大显示比例尺,图层在视图中可见的最大比例尺(最放大)。如果地图被放大到超过这个比例,图层将不可见。默认值为0,0表示图层没有最大比例尺、可见性不受最大比例尺限制。maxScale应该始终小于minScale</p></td> </tr> <tr class="deep-level-1"> <td class="name" id="tokenKey"><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" id="tokenValue"><code>tokenValue</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="default"> </td> <td class="description last"><p>token值,只有当tokenValue存在时,才会绑定token</p></td> </tr> <tr class="deep-level-1"> <td class="name" id="imageTransparency"><code>imageTransparency</code></td> <td class="type"> <span class="param-type">Boolean</span> </td> <td class="default"> true </td> <td class="description last"><p>图片中没有数据的地方是否透明,默认为true,即透明</p></td> </tr> <tr class="deep-level-1"> <td class="name" id="clippingArea"><code>clippingArea</code></td> <td class="type"> <span class="param-type"><a link="Polygon.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Polygon" Polygon.html>Polygon</a></span> | <span class="param-type"><a link="Extent.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Extent" Extent.html>Extent</a></span> | <span class="param-type"><a link="Circle.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Circle" Circle.html>Circle</a></span> | <span class="param-type"><a link="MultiPolygon.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="MultiPolygon" 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" id="renderMode"><code>renderMode</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="default"> 'tile' </td> <td class="description last"><p>影像的展现形式。可选'tile' 、 'image'。默认为'tile',加载影像时以瓦片的方式平铺。当选项为'image'时,加载影像会请求一张覆盖当前屏幕的图像。</p></td> </tr> <tr class="deep-level-1"> <td class="name" id="clientId"><code>clientId</code></td> <td class="type"> <span class="param-type">String</span> </td> <td class="default"> </td> <td class="description last"><p>客户端id,用户的唯一标识;在地图服务中,调用接口时如果修改了地图的状态,包括设置动态投影、设置图层显示隐藏等,为了提升并发性能,服务端会根据clientId来生成临时地图,最佳做法是一个浏览器生成一个固定的唯一值;建议普通用户不要传该参数,webclient会根据当前浏览器生成一个固定的唯一值</p></td> </tr> <tr class="deep-level-1"> <td class="name" id="isAntialiasing"><code>isAntialiasing</code></td> <td class="type"> <span class="param-type">Boolean</span> </td> <td class="default"> null </td> <td class="description last"><p>返回的图片时,是否开启服务端抗锯齿功能;启用抗锯齿功能后,显示效果会更清晰,但会导致出图速度变慢,true表示开启抗锯齿,false表示关闭抗锯齿,如果没有设置,则默认应用地图文档(MapX)上的设置参数</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 class="mapgis-link-name" title="Layer#event:图层加载完毕事件" Layer.html#event:%25E5%259B%25BE%25E5%25B1%2582%25E5%258A%25A0%25E8%25BD%25BD%25E5%25AE%258C%25E6%25AF%2595%25E4%25BA%258B%25E4%25BB%25B6>Layer#event:图层加载完毕事件</a></li> <li><a class="mapgis-link-name" title="Layer#event:图层销毁完毕事件" Layer.html#event:%25E5%259B%25BE%25E5%25B1%2582%25E9%2594%2580%25E6%25AF%2581%25E5%25AE%258C%25E6%25AF%2595%25E4%25BA%258B%25E4%25BB%25B6>Layer#event:图层销毁完毕事件</a></li> <li><a class="mapgis-link-name" title="Layer#event:图层更新完毕事件" Layer.html#event:%25E5%259B%25BE%25E5%25B1%2582%25E6%259B%25B4%25E6%2596%25B0%25E5%25AE%258C%25E6%25AF%2595%25E4%25BA%258B%25E4%25BB%25B6>Layer#event:图层更新完毕事件</a></li> <li><a class="mapgis-link-name" title="Layer#event:图层显隐更新完毕事件" Layer.html#event:%25E5%259B%25BE%25E5%25B1%2582%25E6%2598%25BE%25E9%259A%2590%25E6%259B%25B4%25E6%2596%25B0%25E5%25AE%258C%25E6%25AF%2595%25E4%25BA%258B%25E4%25BB%25B6>Layer#event:图层显隐更新完毕事件</a></li> <li><a class="mapgis-link-name" title="Layer#event:图层透明度更新完毕事件" Layer.html#event:%25E5%259B%25BE%25E5%25B1%2582%25E9%2580%258F%25E6%2598%258E%25E5%25BA%25A6%25E6%259B%25B4%25E6%2596%25B0%25E5%25AE%258C%25E6%25AF%2595%25E4%25BA%258B%25E4%25BB%25B6>Layer#event:图层透明度更新完毕事件</a></li> <li><a class="mapgis-link-name" title="Layer#event:图层顺序更新完毕事件" Layer.html#event:%25E5%259B%25BE%25E5%25B1%2582%25E9%25A1%25BA%25E5%25BA%258F%25E6%259B%25B4%25E6%2596%25B0%25E5%25AE%258C%25E6%25AF%2595%25E4%25BA%258B%25E4%25BB%25B6>Layer#event:图层顺序更新完毕事件</a></li> <li><a class="mapgis-link-name" title="Layer#event:图层刷新完毕事件" Layer.html#event:%25E5%259B%25BE%25E5%25B1%2582%25E5%2588%25B7%25E6%2596%25B0%25E5%25AE%258C%25E6%25AF%2595%25E4%25BA%258B%25E4%25BB%25B6>Layer#event:图层刷新完毕事件</a></li> <li><a class="mapgis-link-name" title="IGSMapImageLayer#event:子图层显隐更新完毕事件" IGSMapImageLayer.html#event:%25E5%25AD%2590%25E5%259B%25BE%25E5%25B1%2582%25E6%2598%25BE%25E9%259A%2590%25E6%259B%25B4%25E6%2596%25B0%25E5%25AE%258C%25E6%25AF%2595%25E4%25BA%258B%25E4%25BB%25B6>IGSMapImageLayer#event:子图层显隐更新完毕事件</a></li> </ul> </div> </div> <p class="summary"><h5>支持如下方法:</h5> <a href='#load'>[1、加载图层资源]</a><br/> <a href='#findSublayerById'>[2、根据子图层id查询子图层]</a><br/> <a class="mapgis-link-name" title="Layer#refresh" Layer.html#refresh><code>3、刷新图层</code></a><br/> <a href='#fetchImage'>[4、根据范围和大小获取image标签]</a><br/> <a href='#getImageUrl'>[5、根据参数获取图片的url]</a><br/> <a href='#setSubLayer'>[6、更新子图层]</a><br/> <a href='#toJSON'>[7、将图层转为json对象]</a><br/> <a href='#clone'>[8、克隆图层对象]</a><br/></p> <h5>示例</h5> <p class="code-caption"><h7 id='igs-1'>IGS1.0的地图图片图层示例</h7></p> <pre class="prettyprint"><code>// ES5引入方式 const { SpatialReference } = Zondy const { IGSMapImageLayer } = Zondy.Layer // ES6引入方式 import { SpatialReference,IGSMapImageLayer } from "@mapgis/webclient-common" // 添加图层 const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:6163/igs/rest/mrms/docs/{serviceName}', // IGS1.0服务,暂时无法从元信息中获取坐标系,请自行指定图层坐标系 spatialReference: new SpatialReference({ wkid: 4326 }) });</code></pre> <p class="code-caption"><h7 id='igs-2'>IGS2.0的地图图片图层示例</h7></p> <pre class="prettyprint"><code>// ES5引入方式 const { IGSMapImageLayer } = Zondy.Layer // ES6引入方式 import { IGSMapImageLayer } from "@mapgis/webclient-common" // 添加图层 const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer' });</code></pre> <p class="code-caption"><h7 id='spatialReference'>指定地图图片图层的坐标系示例</h7></p> <pre class="prettyprint"><code>// ES5引入方式 const { SpatialReference} = Zondy const { IGSMapImageLayer } = Zondy.Layer // ES6引入方式 import { SpatialReference,IGSMapImageLayer } from "@mapgis/webclient-common" // 添加图层 const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer', // 自定义坐标新 spatialReference: new SpatialReference({ // 指定的wkid号,可在https://epsg.io/网站查询 wkid: '指定的wkid号' }) });</code></pre> <p class="code-caption"><h7 id='tileSize'>IGS2.0的地图图层示例 - 设置图片大小</h7></p> <pre class="prettyprint"><code> // ES5引入方式 const { IGSMapImageLayer } = Zondy.Layer // ES6引入方式 import { IGSMapImageLayer } from "@mapgis/webclient-common" // 添加图层 const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer', // 瓦片宽度 imageWidth: 512, // 瓦片高度 imageHeight: 512 });</code></pre> <p class="code-caption"><h7 id='showAllSubLayers'>显示所有子图层</h7></p> <pre class="prettyprint"><code>// ES5引入方式 const { IGSMapImageLayer } = Zondy.Layer // ES6引入方式 import { IGSMapImageLayer } from "@mapgis/webclient-common" // 添加图层 const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer', // 当sublayers为空时显示所有子图层 sublayers: [] });</code></pre> <p class="code-caption"><h7 id='showSubLayersById'>根据id显示子图层</h7></p> <pre class="prettyprint"><code>// ES5引入方式 const { IGSMapImageLayer } = Zondy.Layer // ES6引入方式 import { IGSMapImageLayer } from "@mapgis/webclient-common" // 添加图层 const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer', // 根据id显示子图层 sublayers: [ { // 子图层id id: 1, // 显示子图层 visible: true }, { id: 2, sublayers: [{ id: '2-23', visible: true }] } ] });</code></pre> <p class="code-caption"><h7 id='showSubLayers-method'>通过方法设置子图层显隐</h7></p> <pre class="prettyprint"><code>// ES5引入方式 const { IGSMapImageLayer } = Zondy.Layer // ES6引入方式 import { IGSMapImageLayer } from "@mapgis/webclient-common" // 添加图层 const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer' }); map.add(igsMapImageLayer); // 通过方法设置子图层显隐 igsMapImageLayer.setSubLayer({ id: 0, visible: false })</code></pre> <p class="code-caption"><h7 id='showSubLayers-property'>通过修改子图参数,设置子图层显隐</h7></p> <pre class="prettyprint"><code>// ES5引入方式 const { IGSMapImageLayer } = Zondy.Layer // ES6引入方式 import { IGSMapImageLayer } from "@mapgis/webclient-common" // 添加图层 const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer' }); // 根据id获取子图层 const subLayer = igsMapImageLayer.findSublayerById(0) // 设置子图层显隐 subLayer.visible = false</code></pre> <p class="code-caption"><h7 id='setLayerIndex-property'>通过修改子图参数,设置子图层顺序</h7></p> <pre class="prettyprint"><code>// ES5引入方式 const { IGSMapImageLayer } = Zondy.Layer // ES6引入方式 import { IGSMapImageLayer } from "@mapgis/webclient-common" const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer' }); map.add(igsMapImageLayer); // 根据id获取子图层 const subLayer = igsMapImageLayer.findSublayerById(0) // 设置子图层顺序 subLayer.index = 2</code></pre> <p class="code-caption"><h7 id='setLayerRenderer-unique'>设置子图层专题图-单值专题图</h7></p> <pre class="prettyprint"><code>// ES5引入方式 const { IGSMapImageLayer } = Zondy.Layer const { UniqueValueRenderer } = Zondy.Renderer const { SimpleFillSymbol,SimpleLineSymbol } = Zondy.Symbol const { Color } = Zondy // ES6引入方式 import { IGSMapImageLayer,UniqueValueRenderer,SimpleFillSymbol,SimpleLineSymbol,Color } from "@mapgis/webclient-common" igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer', // 设置子图层专题图 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 { IGSMapImageLayer } = Zondy.Layer const { ClassBreakRenderer } = Zondy.Renderer const { SimpleFillSymbol,SimpleLineSymbol } = Zondy.Symbol const { Color } = Zondy // ES6引入方式 import { IGSMapImageLayer,ClassBreakRenderer,SimpleFillSymbol,SimpleLineSymbol,Color } from "@mapgis/webclient-common" const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer', // 设置子图层专题图 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: [{ // 最大范围 maxValue: "最大范围", // 最小范围 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-method'>通过方法设置子图层专题图</h7></p> <pre class="prettyprint"><code>// ES5引入方式 const { IGSMapImageLayer } = Zondy.Layer const { ClassBreakRenderer } = Zondy.Renderer const { SimpleFillSymbol,SimpleLineSymbol } = Zondy.Symbol const { Color } = Zondy // ES6引入方式 import { IGSMapImageLayer,ClassBreakRenderer,SimpleFillSymbol,SimpleLineSymbol,Color } from "@mapgis/webclient-common" const igsMapImageLayer = new Zondy.Layer.IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer' }); // 设置子图层专题图 igsMapImageLayer.setSubLayer({ // 子图层id id: '子图层id', // 专题图参数 renderer: new Zondy.Renderer.ClassBreakRenderer({ //字段名 field: '你的字段名', // 指定默认样式,不在专题图指定范围内的会采用该样式,可不设置 defaultSymbol: new Zondy.Symbol.SimpleFillSymbol({ // 填充颜色 color: 'rgba(222,1,252,1)', // 线符号样式 outline: new Zondy.Symbol.SimpleLineSymbol({ //线符号颜色 color: new Zondy.Color(255, 1, 0, 1), //线宽 width: 1 }) }), //单值专题图字段样式 classBreakInfos: [{ // 最大范围 maxValue: "最大范围", // 最小范围 minValue: "最小范围", //匹配到该值后的样式 symbol: new Zondy.Symbol.SimpleFillSymbol({ // 填充颜色 color: 'rgba(1,1,252,1)', // 线符号样式 outline: new Zondy.Symbol.SimpleLineSymbol({ //线符号颜色 color: new Zondy.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 { IGSMapImageLayer } = Zondy.Layer const { ClassBreakRenderer } = Zondy.Renderer const { SimpleFillSymbol,SimpleLineSymbol } = Zondy.Symbol const { Color } = Zondy // ES6引入方式 import { IGSMapImageLayer,ClassBreakRenderer,SimpleFillSymbol,SimpleLineSymbol,Color } from "@mapgis/webclient-common" const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer' }); // 根据id获取子图层 const subLayer = igsMapImageLayer.findSublayerById(0) // 设置子图专题图 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: [{ // 最大范围 maxValue: "最大范围", // 最小范围 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='opacity'>设置图层透明度</h7></p> <pre class="prettyprint"><code>// ES5引入方式 const { IGSMapImageLayer } = Zondy.Layer // ES6引入方式 import { IGSMapImageLayer } from "@mapgis/webclient-common" // 初始化时设置 const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer', // 设置透明度 opacity: 1.0 }); // 加载完成后设置 igsMapImageLayer.on('layerview-created', function (result) { console.log("加载完毕:", result.layer) // 视点跳转 igsMapImageLayer.opacity = 0.5 })</code></pre> <p class="code-caption"><h7 id='visible'>显示或隐藏图层</h7></p> <pre class="prettyprint"><code>/ ES5引入方式 const { IGSMapImageLayer } = Zondy.Layer // ES6引入方式 import { IGSMapImageLayer } from "@mapgis/webclient-common" // 初始化时设置 const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址 url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer', // 显示或隐藏图层 visible: true }); // 加载完成后设置 igsMapImageLayer.on('layerview-created', function (result) { console.log("加载完毕:", result.layer) // 显示或隐藏图层 igsMapImageLayer.visible = !igsMapImageLayer.visible })</code></pre> <p class="code-caption"><h7 id='remove-layer'>删除图层</h7></p> <pre class="prettyprint"><code>map.remove(igsMapImageLayer)</code></pre> <p class="code-caption"><h7 id='show-sublayer'>显示指定子图层</h7></p> <pre class="prettyprint"><code>/ ES5引入方式 const { IGSMapImageLayer } = Zondy.Layer // ES6引入方式 import { IGSMapImageLayer } from "@mapgis/webclient-common" // 初始化时设置 const igsMapImageLayer = new IGSMapImageLayer({ // 服务基地址,可指定子图层id url: 'http://{ip}:{port}/igs/rest/services/{serviceName}/MapServer/{子图层id}', // 显示或隐藏图层 visible: true });</code></pre> <p class="code-caption"><h7>添加arcgis的MapImage图层</h7></p> <pre class="prettyprint"><code>// 初始化图层管理容器 / ES5引入方式 const { SpatialReference} = Zondy const { IGSMapImageLayer} = Zondy.Layer // ES6引入方式 import { SpatialReference, IGSMapImageLayer } from "@mapgis/webclient-common" const arcgisMapImageLayer = new IGSMapImageLayer({ url: 'https://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetWarm/MapServer', // 注意一个MapImage图层可能支持多个坐标系,这里指定4326坐标系 spatialReference: new SpatialReference({ wkid: 4326 }) }); // 图层加载完毕 igsMapImageLayer.on('layerview-created', function (result) { console.log("加载完毕:", result.layer) })</code></pre> <p class="code-caption"><h7 id='index'>图层顺序</h7></p> <pre class="prettyprint"><code>// 加载完毕后,更改图层顺序 map.reorder(igsMapImageLayer, '要移动到的index');</code></pre> </div> </div> </div> </div> <h3 class="subsection-title">继承关系</h3> <ul> <li><a link="MapImageLayer.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="MapImageLayer" MapImageLayer.html>MapImageLayer</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="#allSublayers">allSublayers</a></code></td> <td class="name"> <code> <span class="param-type"><a link="Collection.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Collection" Collection.html>Collection</a></span> </code> </td> <td class="name"><code><p>所有子图层信息</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#capabilities">capabilities</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="#clientId">clientId</a></code></td> <td class="name"> <code> <span class="param-type">String</span> </code> </td> <td class="name"><code><p>客户端Id</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)" class="mapgis-link-name" title="Polygon" Polygon.html>Polygon</a></span> | <span class="param-type"><a link="Extent.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Extent" Extent.html>Extent</a></span> | <span class="param-type"><a link="Circle.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Circle" Circle.html>Circle</a></span> | <span class="param-type"><a link="MultiPolygon.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="MultiPolygon" 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="#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="#documentInfo">documentInfo</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="#extent">extent</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="#imageFormat">imageFormat</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="#imageHeight">imageHeight</a></code></td> <td class="name"> <code> <span class="param-type">Number</span> </code> </td> <td class="name"><code><p>瓦片化显示时,瓦片高度</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#imageTransparency">imageTransparency</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="#imageWidth">imageWidth</a></code></td> <td class="name"> <code> <span class="param-type">Number</span> </code> </td> <td class="name"><code><p>瓦片化显示时,瓦片宽度</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#isAntialiasing">isAntialiasing</a></code></td> <td class="name"> <code> <span class="param-type">Boolean</span> </code> </td> <td class="name"><code><p>返回的图片是否抗锯齿,启用抗锯齿功能后,会导致出图速度变慢,true表示开启抗锯齿,false表示关闭抗锯齿,如果没有设置,则默认应用地图文档(MapX)上的设置</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#isAntialiasing">isAntialiasing</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="#mapName">mapName</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="#renderMode">renderMode</a></code></td> <td class="name"> <code> <span class="param-type">String</span> </code> </td> <td class="name"><code><p>影像的展现形式。可选'tile' 、 'image'。默认为'tile',加载影像时以瓦片的方式平铺。当选项为'image'时,加载影像会请求一张覆盖当前屏幕的图像。</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#spatialReference">spatialReference</a></code></td> <td class="name"> <code> <span class="param-type"><a link="SpatialReference.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="SpatialReference" SpatialReference.html>SpatialReference</a></span> </code> </td> <td class="name"><code><p>图层坐标系对象</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 link="Collection.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Collection" Collection.html>Collection</a></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"><a link="Collection.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Collection" Collection.html>Collection</a></span> </span> <h4 class="name" id="allSublayers"> <a class="href-link" href="#allSublayers">#</a> <span class="code-name"> allSublayers </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 class="mapgis-link-name" title="MapImageLayer#allSublayers" MapImageLayer.html#allSublayers>MapImageLayer#allSublayers</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="capabilities"> <a class="href-link" href="#capabilities">#</a> <span class='tag'>readonly</span> <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 class="mapgis-link-name" title="MapImageLayer#capabilities" MapImageLayer.html#capabilities>MapImageLayer#capabilities</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="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"> </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)" class="mapgis-link-name" title="Polygon" Polygon.html>Polygon</a></span> | <span class="param-type"><a link="Extent.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Extent" Extent.html>Extent</a></span> | <span class="param-type"><a link="Circle.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Circle" Circle.html>Circle</a></span> | <span class="param-type"><a link="MultiPolygon.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="MultiPolygon" 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"> </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"> </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="documentInfo"> <a class="href-link" href="#documentInfo">#</a> <span class='tag'>readonly</span> <span class="code-name"> documentInfo </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 class="mapgis-link-name" title="MapImageLayer#documentInfo" MapImageLayer.html#documentInfo>MapImageLayer#documentInfo</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="extent"> <a class="href-link" href="#extent">#</a> <span class='tag'>readonly</span> <span class="code-name"> extent </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 class="mapgis-link-name" title="MapImageLayer#extent" MapImageLayer.html#extent>MapImageLayer#extent</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="imageFormat"> <a class="href-link" href="#imageFormat">#</a> <span class="code-name"> imageFormat </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 class="mapgis-link-name" title="MapImageLayer#imageFormat" MapImageLayer.html#imageFormat>MapImageLayer#imageFormat</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="imageHeight"> <a class="href-link" href="#imageHeight">#</a> <span class="code-name"> imageHeight </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 class="mapgis-link-name" title="MapImageLayer#imageHeight" MapImageLayer.html#imageHeight>MapImageLayer#imageHeight</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="imageTransparency"> <a class="href-link" href="#imageTransparency">#</a> <span class="code-name"> imageTransparency </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 class="mapgis-link-name" title="MapImageLayer#imageTransparency" MapImageLayer.html#imageTransparency>MapImageLayer#imageTransparency</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="imageWidth"> <a class="href-link" href="#imageWidth">#</a> <span class="code-name"> imageWidth </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 class="mapgis-link-name" title="MapImageLayer#imageWidth" MapImageLayer.html#imageWidth>MapImageLayer#imageWidth</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="isAntialiasing"> <a class="href-link" href="#isAntialiasing">#</a> <span class="