UNPKG

@mapgis/webclient-common

Version:

mapgis ES6 format for igserver

3,194 lines (1,106 loc) 51.9 kB
<header id="page-title" class="page-title"> <span class="page-title-main">类名</span> <span class="page-title-sub">Geometry</span> </header> <section> <article> <div class="container-overview"> <div class='vertical-section'> <div class="members"> <div class="member"> <h4 class="name" id="Geometry"> <a class="href-link" href="#Geometry">#</a> <span class="code-name" id="Geometry" style="font-size:30px"> new Geometry<span class="signature">(options)</span> </span> </h4> <div class="description"> <p>几何图形对象基类 <br><br>[ES5引入方式]:<br/> Zondy.Geometry.Geometry() <br/> [ES6引入方式]:<br/> import { Geometry } from &quot;@mapgis/webclient-common&quot; <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="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"> new Zondy.SpatialReference('EPSG:4326') </td> <td class="description last"><p>几何点的空间参考系,默认4326</p></td> </tr> </tbody> </table> </div> <dl class="details"> </dl> </div> </div> </div> </div> <h3 class="subsection-title">继承关系</h3> <ul> <li><a link="Evented.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Evented" Evented.html>Evented</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="#extent">extent</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="#hasZ">hasZ</a></code></td> <td class="name"> <code> <span class="param-type">Boolean</span> </code> </td> <td class="name"><code><p>是否含有z坐标</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> </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">Number</span> </span> <h4 class="name" id="extent"> <a class="href-link" href="#extent">#</a> <span class="code-name"> extent </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">Boolean</span> </span> <h4 class="name" id="hasZ"> <a class="href-link" href="#hasZ">#</a> <span class='tag'>readonly</span> <span class="code-name"> hasZ </span> </h4> <div class="description"> <p>是否含有z坐标</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="SpatialReference.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="SpatialReference" SpatialReference.html>SpatialReference</a></span> </span> <h4 class="name" id="spatialReference"> <a class="href-link" href="#spatialReference">#</a> <span class="code-name"> spatialReference </span> </h4> <div class="description"> <p>几何点的空间参考系</p> </div> <dl class="details"> </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="Geometry.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Geometry" Geometry.html>Geometry</a></span> </code> </td> <td class="name"><code><p>通过一个JSON对象创建一个几何对象</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#fromRings">fromRings</a></code></td> <td class="name"> <code> <span class="param-type">Array</span> </code> </td> <td class="name"><code><p>对入参进行判断处理,构建polygon;<br/> 支持的参数类型为闭合的三维点数组(多个ring构成的数组),不区分顺逆时针;<br/> 示例如下:<br/> <a href='#fromRings1'>[1、根据入参构建polygon]</a><br/> <a href='#fromRings2'>[1、根据入参构建polygon,指定rings坐标系]</a><br/></p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#isClockwise">isClockwise</a></code></td> <td class="name"> <code> <span class="param-type">Boolean</span> </code> </td> <td class="name"><code><p>对点数组进行是否为顺时针判断;<br/> 支持的参数类型为闭合的二维点数组;<br/> 示例如下:<br/> <a href='#isClockwise'>[对点数组进行顺时针判断]</a><br/></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="Geometry.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Geometry" Geometry.html>Geometry</a></span> </code> </td> <td class="name"><code><p>克隆几何对象</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#fromGeoJSON">fromGeoJSON</a></code></td> <td class="name"> <code> </code> </td> <td class="name"><code><p>导入GeoJSON</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#getGeometryType">getGeometryType</a></code></td> <td class="name"> <code> <span class="param-type">String</span> </code> </td> <td class="name"><code><p>获取GeometryModule型</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#getIGSType">getIGSType</a></code></td> <td class="name"> <code> <span class="param-type">String</span> </code> </td> <td class="name"><code><p>返回IGS所对应的GeometryModule型</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#getType">getType</a></code></td> <td class="name"> <code> <span class="param-type">String</span> </code> </td> <td class="name"><code><p>返回所对应的GeometryModule型</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#off">off</a></code></td> <td class="name"> <code> <span class="param-type">Object</span> </code> </td> <td class="name"><code><p>移除事件<br/> 示例如下:<br/> <a href='#off1'>[1、移除一个事件的指定回调函数]</a><br/> <a href='#off2'>[2、移除一个事件的所有回调函数]</a><br/> <a href='#off3'>[3、移除多个事件的同一个指定的回调函数]</a><br/> <a href='#off4'>[4、移除多个指定事件的回调函数]</a><br/> <a href='#off5'>[5、删除时指定上下文 - types类型为字符串]</a><br/> <a href='#off6'>[6、删除时指定上下文 - types类型为对象]</a><br/></p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#on">on</a></code></td> <td class="name"> <code> <span class="param-type">Object</span> </code> </td> <td class="name"><code><p>注册一个新的监听事件;<br/> 示例如下:<br/> <a href='#event1'>[1、注册一个事件]</a><br/> <a href='#event2'>[2、一次注册多个事件 - 同一个回调函数]</a><br/> <a href='#event3'>[3、一次注册多个事件 - 分别指回调应函数]</a><br/> <a href='#event4'>[4、当types为字符串时 - 指定上下文]</a><br/> <a href='#event5'>[5、当types为对象时 - 指定上下文]</a><br/></p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#toGeoJSON">toGeoJSON</a></code></td> <td class="name"> <code> <span class="param-type">Object</span> </code> </td> <td class="name"><code><p>导出为GeoJSON</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#toJSON">toJSON</a></code></td> <td class="name"> <code> <span class="param-type">Object</span> </code> </td> <td class="name"><code><p>导出为json对象</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#toString">toString</a></code></td> <td class="name"> <code> <span class="param-type">String</span> </code> </td> <td class="name"><code><p>导出为字符串,子类实现,这里必须是igs要求的字符串</p></code></td> </tr> <tr class="deep-level-0"> <td class="name"><code><a href="#toXML">toXML</a></code></td> <td class="name"> <code> <span class="param-type">String</span> </code> </td> <td class="name"><code><p>导出为OGC服务要求的xml字符串,子类实现</p></code></td> </tr> </tbody> </table> </div> <h4 style="margin-top: 20px;margin-bottom: 20px;">方法详情</h4> <div class="member"> <h4 class="name" id=".fromJSON"> <a class="href-link" href="#.fromJSON">#</a> <span class='tag'>static</span> <span class="code-name" id="fromJSON" style="font-size:30px"> fromJSON<span class="signature">(json)</span> </span> </h4> <div class="description"> <p>通过一个JSON对象创建一个几何对象</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="json"><code>json</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last"><p>JSON对象</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"><a link="Geometry.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Geometry" Geometry.html>Geometry</a></span> </div> </div> </div> </div> <h5>示例</h5> <p class="code-caption"><h5 id='fromJSON'>通过一个JSON对象创建一个几何对象</h7></p> <pre class="prettyprint"><code>// ES5引入方式 const { Geometry } = Zondy const { GeometryType } = Zondy.Enum // ES6引入方式 import { Geometry, GeometryType } from "@mapgis/webclient-common" // 通过json构造一个几何对象 const polygon = Geometry.fromJSON({ // 注意必须传入一个几何类型 type: GeometryType.polygon, coordinates: [ [ [113, 29], [114, 29], [114, 30], [113, 30], [113, 29] ] ] })</code></pre> </div> <div class="member"> <h4 class="name" id=".fromRings"> <a class="href-link" href="#.fromRings">#</a> <span class='tag'>static</span> <span class="code-name" id="fromRings" style="font-size:30px"> fromRings<span class="signature">(pointArr, spatialReference)</span> </span> </h4> <div class="description"> <p>对入参进行判断处理,构建polygon;<br/> 支持的参数类型为闭合的三维点数组(多个ring构成的数组),不区分顺逆时针;<br/> 示例如下:<br/> <a href='#fromRings1'>[1、根据入参构建polygon]</a><br/> <a href='#fromRings2'>[1、根据入参构建polygon,指定rings坐标系]</a><br/></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="pointArr"><code>pointArr</code></td> <td class="type"> <span class="param-type">Array</span> </td> <td class="description last"><p>点数组</p></td> </tr> <tr class="deep-level-0"> <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="description last"><p>几何点的空间参考系,默认4326,非必填,当不是4326时请指定坐标系,方便进行投影转换</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>构建的polygon组成的对象数组</p></div> <div class='column is-5 has-text-left'> <label>类型: </label> <span class="param-type">Array</span> </div> </div> </div> </div> <h5>示例</h5> <p class="code-caption"><h5 id='fromRings1'>点数组构建polygon</h5></p> <pre class="prettyprint"><code>// ES5引入方式 const { Geometry} = Zondy.Geometry // ES6引入方式 import { Geometry } from "@mapgis/webclient-common" // 输入三维点数组 const pointArr = [ [ [108, 30], [108, 33], [115, 33], [115, 30], [108, 30], ], [ [110, 31], [113, 31], [113, 32], [110, 32], [110, 31], ], [ [110, 20], [110, 25], [115, 25], [115, 20], [110, 20], ], ]; // 点数组构建polygon const fromRings = Geometry.fromRings(pointArr) console.log("构建的多边形对象:", fromRings)</code></pre> <p class="code-caption"><h5 id='fromRings2'>指定坐标系的点数组构建polygon</h5></p> <pre class="prettyprint"><code>// ES5引入方式 const { Geometry,SpatialReference} = Zondy.Geometry // ES6引入方式 import { Geometry,SpatialReference } from "@mapgis/webclient-common" // 输入指定坐标系的点数组 const pointArr_4547 = [ [ [-79450.434008356, 3335318.50110312], [-61138.8507993389, 3668785.80194059], [593455.16027313, 3653192.25094895], [596488.74806744, 3320534.43645214], [-79450.434008356, 3335318.50110312], ], [ [22192.1178133016, 3441729.02787479], [213425.289259696, 3434840.60529103], [216463.35881388, 3545788.2250497], [27269.5496056064, 3552800.06686639], [22192.1178133016, 3441729.02787479], ], [ [307007.697900227, 3441729.02787479], [500000.000000819, 3441729.02787479], [500000.00000081, 3545788.2250497], [308973.125268913, 3545788.2250497], [307007.697900227, 3441729.02787479], ], [ [81149.2212748193, 2217372.5132106], [81149.2212748193, 2766426.51455527], [600953.408059909, 2766426.51455527], [600953.408059909, 2217372.5132106], [81149.2212748193, 2217372.5132106], ], ]; // 创建坐标系 const spatialReference = new SpatialReference({ wkid: 4547, }); // 点数组构建polygon const fromRings = Geometry.fromRings(pointArr_4547, spatialReference) console.log("构建的指定坐标系的多边形对象:", fromRings)</code></pre> </div> <div class="member"> <h4 class="name" id=".isClockwise"> <a class="href-link" href="#.isClockwise">#</a> <span class='tag'>static</span> <span class="code-name" id="isClockwise" style="font-size:30px"> isClockwise<span class="signature">(pointArr)</span> </span> </h4> <div class="description"> <p>对点数组进行是否为顺时针判断;<br/> 支持的参数类型为闭合的二维点数组;<br/> 示例如下:<br/> <a href='#isClockwise'>[对点数组进行顺时针判断]</a><br/></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="pointArr"><code>pointArr</code></td> <td class="type"> <span class="param-type">Array</span> </td> <td class="description last"><p>点数组</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">Boolean</span> </div> </div> </div> </div> <h5>示例</h5> <p class="code-caption"><h5 id='isClockwise'>对点数组进行顺时针判断</h5></p> <pre class="prettyprint"><code>// ES5引入方式 const { Geometry } = Zondy.Geometry // ES6引入方式 import { Geometry } from "@mapgis/webclient-common" // 构造线几何对象 const pointArr = [ [112, 30], [114, 30], [114, 32], [112, 30], ]; // 对点数组进行顺时针判断 const isClockwise = Geometry.isClockwise(pointArr) console.log("是否为顺时针:", isClockwise)</code></pre> </div> <div class="member"> <h4 class="name" id="clone"> <a class="href-link" href="#clone">#</a> <span class="code-name" id="clone" style="font-size:30px"> clone<span class="signature">()</span> </span> </h4> <div class="description"> <p>克隆几何对象</p> </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"><a link="Geometry.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Geometry" Geometry.html>Geometry</a></span> </div> </div> </div> </div> </div> <div class="member"> <h4 class="name" id="fromGeoJSON"> <a class="href-link" href="#fromGeoJSON">#</a> <span class="code-name" id="fromGeoJSON" style="font-size:30px"> fromGeoJSON<span class="signature">(GeoJSON)</span> </span> </h4> <div class="description"> <p>导入GeoJSON</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="GeoJSON"><code>GeoJSON</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last"><p>Object</p></td> </tr> </tbody> </table> </div> <dl class="details"> </dl> </div> <div class="member"> <h4 class="name" id="getGeometryType"> <a class="href-link" href="#getGeometryType">#</a> <span class="code-name" id="getGeometryType" style="font-size:30px"> getGeometryType<span class="signature">()</span> </span> </h4> <div class="description"> <p>获取GeometryModule型</p> </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>GeometryModule型</p></div> <div class='column is-5 has-text-left'> <label>类型: </label> <span class="param-type">String</span> </div> </div> </div> </div> </div> <div class="member"> <h4 class="name" id="getIGSType"> <a class="href-link" href="#getIGSType">#</a> <span class="code-name" id="getIGSType" style="font-size:30px"> getIGSType<span class="signature">()</span> </span> </h4> <div class="description"> <p>返回IGS所对应的GeometryModule型</p> </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>GeometryModule型</p></div> <div class='column is-5 has-text-left'> <label>类型: </label> <span class="param-type">String</span> </div> </div> </div> </div> </div> <div class="member"> <h4 class="name" id="getType"> <a class="href-link" href="#getType">#</a> <span class="code-name" id="getType" style="font-size:30px"> getType<span class="signature">()</span> </span> </h4> <div class="description"> <p>返回所对应的GeometryModule型</p> </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>GeometryModule型</p></div> <div class='column is-5 has-text-left'> <label>类型: </label> <span class="param-type">String</span> </div> </div> </div> </div> </div> <div class="member"> <h4 class="name" id="off"> <a class="href-link" href="#off">#</a> <span class="code-name" id="off" style="font-size:30px"> off<span class="signature">(types<span class="signature-attributes">opt</span>, fn<span class="signature-attributes">opt</span>, context<span class="signature-attributes">opt</span>)</span> </span> </h4> <div class="description"> <p>移除事件<br/> 示例如下:<br/> <a href='#off1'>[1、移除一个事件的指定回调函数]</a><br/> <a href='#off2'>[2、移除一个事件的所有回调函数]</a><br/> <a href='#off3'>[3、移除多个事件的同一个指定的回调函数]</a><br/> <a href='#off4'>[4、移除多个指定事件的回调函数]</a><br/> <a href='#off5'>[5、删除时指定上下文 - types类型为字符串]</a><br/> <a href='#off6'>[6、删除时指定上下文 - types类型为对象]</a><br/></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="types"><code>types</code></td> <td class="type"> <span class="param-type">string</span> </td> <td class="description last"><p>移除指定事件类型上绑定的回调函数<br/> 当类型为字符串时,可以移除单个或多个事件类型绑定的回调函数,单个事件:&quot;click&quot;,多个事件:以空格分割:&quot;click double-click&quot;<br/> 当types为对象时,使用如下方式移除事件:{'click': onClickFun, 'mouse-move': onMouseMoveFun}</p></td> </tr> <tr class="deep-level-0"> <td class="name" id="fn"><code>fn</code></td> <td class="type"> <span class="param-type">function</span> </td> <td class="description last"><p>事件回调函数,当types为字符串,且不指定要删除的回调函数时,删除该事件上的所有回调函数</p></td> </tr> <tr class="deep-level-0"> <td class="name" id="context"><code>context</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="description last"><p>事件回调函数的this关键字将指向的对象</p></td> </tr> </tbody> </table> </div> <dl class="details"> <dt class="inherited-from">Inherited From:</dt> <dd class="inherited-from"><ul class="dummy"><li> <a goto="off" link="Evented.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Evented#off" Evented.html#off>Evented#off</a> </li></ul></dd> </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">Object</span> </div> </div> </div> </div> <h5>示例</h5> <p class="code-caption"><h5 id='off1'>移除一个事件的指定回调函数</h5></p> <pre class="prettyprint"><code>// 一个事件的回调函数 const clickFunction = function (event) { console.log("点击事件:", event) } // 调用MapView或SceneView的off方法移除一个事件的回调函数 view.off('click', clickFunction)</code></pre> <p class="code-caption"><h5 id='off2'>移除一个事件的所有回调函数</h5></p> <pre class="prettyprint"><code>// 一个事件的回调函数1 const clickFunction1 = function (event) { console.log("点击事件1:", event) } // 一个事件的回调函数2 const clickFunction2 = function (event) { console.log("点击事件2:", event) } // 调用MapView或SceneView的off方法移除一个事件的所有回调函数 // 不指定回调函数,则移除该事件上的所有绑定的回调函数 view.off('click')</code></pre> <p class="code-caption"><h5 id='off3'>移除多个事件的同一个指定的回调函数</h5></p> <pre class="prettyprint"><code>// 多个事件的同一个回调函数 const eventFunction = function (event) { console.log("事件:", event) } // 调用MapView或SceneView的off方法移除多个事件的同一个指定的回调函数 view.off('click double-click', eventFunction)</code></pre> <p class="code-caption"><h5 id='off4'>移除多个指定事件的回调函数</h5></p> <pre class="prettyprint"><code>// 一个事件的回调函数 const clickFunction = function (event) { console.log("click事件:", event) } // 调用MapView或SceneView的off方法移除多个指定事件的回调函数 view.off({ // 移除click事件上一个指定的函数 "click": clickFunction, // 移除double-click上所有指定的函数 "double-click": undefined })</code></pre> <p class="code-caption"><h5 id='off5'>删除时指定上下文 - types类型为字符串</h5></p> <pre class="prettyprint"><code>// 一个事件的回调函数 const clickFunction = function (event) { console.log("点击事件:", event) } // 调用MapView或SceneView的off方法移除一个事件的回调函数 view.off('click', clickFunction, view) // 调用MapView或SceneView的off方法移除一个事件的所有回调函数 view.off('click', undefined, view)</code></pre> <p class="code-caption"><h5 id='off6'>删除时指定上下文 - types类型为对象</h5></p> <pre class="prettyprint"><code>// 一个事件的回调函数 const clickFunction = function (event) { console.log("click事件:", event) } // 调用MapView或SceneView的off方法移除多个指定事件的回调函数 view.off({ // 移除click事件上一个指定的函数 "click": clickFunction, // 移除double-click上所有指定的函数 "double-click": undefined }, view)</code></pre> </div> <div class="member"> <h4 class="name" id="on"> <a class="href-link" href="#on">#</a> <span class="code-name" id="on" style="font-size:30px"> on<span class="signature">(types<span class="signature-attributes">opt</span>, fn<span class="signature-attributes">opt</span>, context<span class="signature-attributes">opt</span>)</span> </span> </h4> <div class="description"> <p>注册一个新的监听事件;<br/> 示例如下:<br/> <a href='#event1'>[1、注册一个事件]</a><br/> <a href='#event2'>[2、一次注册多个事件 - 同一个回调函数]</a><br/> <a href='#event3'>[3、一次注册多个事件 - 分别指回调应函数]</a><br/> <a href='#event4'>[4、当types为字符串时 - 指定上下文]</a><br/> <a href='#event5'>[5、当types为对象时 - 指定上下文]</a><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="types"><code>types</code></td> <td class="type"> <span class="param-type">String</span> | <span class="param-type">Object</span> </td> <td class="default"> null </td> <td class="description last"><p>事件类型<br/> 当types为字符串时,可以定义单个或多个事件,单个事件:&quot;click&quot;,多个事件:以空格分割:&quot;click double-click&quot;<br/> 当types为对象时,使用如下方式指定事件:{'click': onClickFun, 'mouse-move': onMouseMoveFun}</p></td> </tr> <tr class="deep-level-0"> <td class="name" id="fn"><code>fn</code></td> <td class="type"> <span class="param-type">function</span> </td> <td class="default"> null </td> <td class="description last"><p>事件回调函数</p></td> </tr> <tr class="deep-level-0"> <td class="name" id="context"><code>context</code></td> <td class="type"> <span class="param-type">Object</span> </td> <td class="default"> null </td> <td class="description last"><p>事件回调函数的this关键字将指向的对象</p></td> </tr> </tbody> </table> </div> <dl class="details"> <dt class="inherited-from">Inherited From:</dt> <dd class="inherited-from"><ul class="dummy"><li> <a goto="on" link="Evented.html" onclick="getTypeHTML(event)" class="mapgis-link-name" title="Evented#on" Evented.html#on>Evented#on</a> </li></ul></dd> </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">Object</span> </div> </div> </div> </div> <h5>示例</h5> <p class="code-caption"><h5 id='event1'>注册一个事件</h5></p> <pre class="prettyprint"><code>// 初始化一个点击事件回调函数 const clickFunction = function (event) { console.log("点击事件:", event) } // 调用MapView或SceneView的on方法注册一个点击事件 view.on('click', clickFunction)</code></pre> <p class="code-caption"><h5 id='event2'>一次注册多个事件 - 同一个回调函数</h5></p> <pre class="prettyprint"><code>// 初始化一个事件回调函数 const eventFunction = function (event) { console.log("事件:", event) } // 调用MapView或SceneView的on方法注册多个事件 // 多个事件类型使用同一个回调函数 view.on('click right-click-down', eventFunction)</code></pre> <p class="code-caption"><h5 id='event3'>一次注册多个事件 - 分别指回调应函数</h5></p> <pre class="prettyprint"><code>// 初始化一个左键点击事件回调函数 const clickFunction = function (event) { console.log("click事件:", event) } // 初始化一个右键按下事件回调函数 const rightClickFunction = function (event) { console.log("right-click-down事件:", event) } // 调用MapView或SceneView的on方法注册多个事件 // 每一个事件类型,使用单独的回调函数 // 注意使用此种方式,一种类型的事件仅能指定一个回调函数 view.on({ "click": clickFunction, "right-click-down": rightClickFunction })</code></pre> <p class="code-caption"><h5 id='event4'>指定上下文 - types类型为字符串</h5></p> <pre class="prettyprint"><code>// 初始化一个点击事件回调函数 const clickFunction = function (event) { console.log("点击事件:", event) console.log("上下文对象:", this) } // 调用MapView或SceneView的on方法注册一个点击事件 // 指定view为回调函数的上下文对象 view.on('click', clickFunction, view)</code></pre> <p class="code-caption"><h5 id='event5'>指定上下文 - types类型为对象</h5></p> <pre class="prettyprint"><code>// 初始化一个点击事件回调函数 const clickFunction = function (event) { console.log("点击事件:", event) console.log("上下文对象:", this) } // 调用MapView或SceneView的on方法注册一个点击事件 // 指定view为回调函数的上下文对象 view.on({ "click": clickFunction, "right-click-down": clickFunction }, view)</code></pre> </div> <div class="member"> <h4 class="name" id="toGeoJSON"> <a class="href-link" href="#toGeoJSON">#</a> <span class="code-name" id="toGeoJSON" style="font-size:30px"> toGeoJSON<span class="signature">()</span> </span> </h4> <div class="description"> <p>导出为GeoJSON</p> </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>GeoJSON对象</p></div> <div class='column is-5 has-text-left'> <label>类型: </label> <span class="param-type">Object</span> </div> </div> </div> </div> </div> <div class="member"> <h4 class="name" id="toJSON"> <a class="href-link" href="#toJSON">#</a> <span class="code-name" id="toJSON" style="font-size:30px"> toJSON<span class="signature">()</span> </span> </h4> <div class="description"> <p>导出为json对象</p> </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>json对象</p></div> <div class='column is-5 has-text-left'> <label>类型: </label> <span class="param-type">Object</span> </div> </div> </div> </div> </div> <div class="member"> <h4 class="name" id="toString"> <a class="href-link" href="#toString">#</a> <span class="code-name" id="toString" style="font-size:30px"> toString<span class="signature">()</span> </span> </h4> <div class="description"> <p>导出为字符串,子类实现,这里必须是igs要求的字符串</p> </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">String</span> </div> </div> </div> </div> </div> <div class="member"> <h4 class="name" id="toXML"> <a class="href-link" href="#toXML">#</a> <span class="code-name" id="toXML" style="font-size:30px"> toXML<span class="signature">()</span> </span> </h4> <div class="description"> <p>导出为OGC服务要求的xml字符串,子类实现</p> </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">String</span> </div> </div> </div> </div> </div> </div> </div> </article> </section>