@mapgis/webclient-common
Version:
mapgis ES6 format for igserver
3,194 lines (1,106 loc) • 51.9 kB
HTML
<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 "@mapgis/webclient-common" <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/>
当类型为字符串时,可以移除单个或多个事件类型绑定的回调函数,单个事件:"click",多个事件:以空格分割:"click double-click";<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为字符串时,可以定义单个或多个事件,单个事件:"click",多个事件:以空格分割:"click double-click";<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>