@mapgis/webclient-mapboxgl-plugin
Version:
A cloud GIS network client development platform based on MapboxGL.
4,002 lines (1,368 loc) • 61 kB
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Client for JavaScript MapView</title>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="styles/app.min.css">
<link type="text/css" rel="stylesheet" href="styles/iframe.css">
<link type="text/css" rel="stylesheet" href="">
</head>
<body class="layout small-header">
<div id="stickyNavbarOverlay"></div>
<div class="top-nav">
<div class="inner">
<a id="hamburger" role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</a>
<div class="logo">
<h1> MapGIS Client for JavaScript API</h1>
</div>
<div class="menu">
<div class="navigation">
<a
class="link user-link "
href="/static/modules/common/api/common-mapgis/index.html"
>
Common
</a>
<a
class="link user-link "
href="/static/modules/cesium/api/cesium-mapgis/index.html"
>
Cesium-Plugin
</a>
<a
class="link user-link "
href="/static/modules/mapboxgl/api/mapboxgl-mapgis/index.html"
>
MapboxGL-Plugin
</a>
<a
class="link user-link "
href="/static/modules/leaflet/api/leaflet-mapgis/index.html"
>
Leaflet-Plugin
</a>
<a
class="link user-link "
href="/static/modules/openlayers/api/openLayers-mapgis/index.html"
>
OpenLayers-Plugin
</a>
<a
class="link user-link "
href="/static/modules/video/api/video-mapgis/index.html"
>
Video-Plugin
</a>
</div>
</div>
</div>
</div>
<div id="main">
<div
class="sidebar "
id="sidebarNav"
>
<div>
<span class="mapgis-api-document-span"><a href="index.html">API文档</a></span>
</div>
<div class="search-wrapper">
<input id="search" type="text" placeholder="搜索文档..." class="input">
</div>
<nav>
<div class="category"><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">扩展模块</div><ul class="mapgis-sidebar-menus"><li style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" title="initializeOptions"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="initializeOptions.html">initializeOptions</a><span style="display: none;"><p>根据图层获取对应的mapboxgl内的sources和layers</p></span></li></ul><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">视图模块</div><ul class="mapgis-sidebar-menus"><li style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" title="MapView"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="MapView.html">MapView</a><span style="display: none;"><p>二维场景视图(mapboxgl引擎),对地图引擎进行管理,如果要对地图图层进行管理请参考<code>Map</code>,<br/>
继承自<a href='http://webclient.smaryun.com/static/modules/common/api/common-mapgis/MapView.html' target='_blank'>zondy.MapView</a><br/>
参考示例:
<a href='#MapView'>[初始化二维场景视图]</a>
<br>[ES5引入方式]:<br/>
zondy.mapboxgl.MapView() <br/>
[ES6引入方式]:<br/>
import { MapView } from '@mapgis/webclient-mapboxgl-plugin' <br/></p></span></li><li style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" title="Popup"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Popup.html">Popup</a><span style="display: none;"><p>二维场景信息弹窗(mapboxgl引擎)
参考示例:
<a href='#MapView'>[初始化二维场景视图]</a>
[ES6引入方式]:<br/>
import { Popup } from '@mapgis/webclient-mapboxgl-plugin' <br/>
自定义样式说明:<br/>
zondy-popup__container 弹窗容器样式<br/>
zondy-popup__tip 弹窗对话框箭头样式<br/>
zondy-popup__header 弹窗头部样式<br/>
zondy-popup__content 弹窗主体样式<br/>
zondy-popup__footer 弹窗底部样式<br/></p></span></li><li style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" title="Screenshot"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="Screenshot.html">Screenshot</a><span style="display: none;"><p>打印工具</p></span></li></ul><div style="font-weight: bold;vertical-align: middle;padding: 0.4rem 0;" class="mapgis-menu-span"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/m.png" alt="">草图编辑模块</div><ul class="mapgis-sidebar-menus"><li style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" title="SketchEditor"><img style="width: 20px;margin-right: 6px;vertical-align: middle;" src="./styles/c.png" alt=""><a href="SketchEditor.html">SketchEditor</a><span style="display: none;"><p>二维Mapboxgl引擎草图编辑类<br/>
继承自<a href='http://webclient.smaryun.com/static/modules/common/api/common-mapgis/SketchEditor.html' target='_blank'>zondy.SketchEditor</a><br/>
<br>[ES5引入方式]:<br/>
const { SketchEditor } = zondy.mapboxgl.tool.sketch <br/>
[ES6引入方式]:<br/>
import { SketchEditor } from "@mapgis/webclient-leaflet-plugin" <br/></p></span></li></ul></div>
</nav>
</div>
<div class="core" id="main-content-wrapper">
<div class="content">
<header id="page-title" class="page-title">
<span class="page-title-main">类名</span>
<span class="page-title-sub">MapView</span>
</header>
<section>
<article>
<div class="container-overview">
<div class='vertical-section'>
<div class="members">
<div class="member">
<h4 class="name" id="MapView">
<a class="href-link" href="#MapView">#</a>
<span class="code-name" style="font-size:30px">
new MapView<span class="signature">(options)</span>
</span>
</h4>
<div class="description">
<p>二维场景视图(mapboxgl引擎),对地图引擎进行管理,如果要对地图图层进行管理请参考<code>Map</code>,<br/>
继承自<a href='http://webclient.smaryun.com/static/modules/common/api/common-mapgis/MapView.html' target='_blank'>zondy.MapView</a><br/>
参考示例:
<a href='#MapView'>[初始化二维场景视图]</a>
<br>[ES5引入方式]:<br/>
zondy.mapboxgl.MapView() <br/>
[ES6引入方式]:<br/>
import { MapView } from '@mapgis/webclient-mapboxgl-plugin' <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"><code>options</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="default">
</td>
<td class="description last"><p>构造参数</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>map</code></td>
<td class="type">
<span class="param-type">Map</span>
</td>
<td class="default">
</td>
<td class="description last"><p>图层管理容器对象</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>viewId</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
</td>
<td class="description last"><p>二维场景视图的容器(html的div标签)ID</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>spatialReference</code></td>
<td class="type">
<span class="param-type">SpatialReference</span>
</td>
<td class="default">
</td>
<td class="description last"><p>视图空间参考系</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>zoom</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
0
</td>
<td class="description last"><p>初始化二维场景视图时显示级数</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>center</code></td>
<td class="type">
<span class="param-type">Point</span>
</td>
<td class="default">
</td>
<td class="description last"><p>地图视图中心点。如果有中心点,看是否存在zoom/scale,使用center和zoom/scale定位(同时设置scale和zoom时,scale优先于zoom),否则默认zoom为到第0级。如果没有设置center,但设置了extent,则以extent定位。</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>extent</code></td>
<td class="type">
<span class="param-type">Extent</span>
</td>
<td class="default">
</td>
<td class="description last"><p>地图视图初始所在的范围。如果没有设置center,但设置extent了,则地图视图定位到extent范围内。</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>scale</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
</td>
<td class="description last"><p>地图视图比例尺(比例尺的分母)</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>maxScale</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
</td>
<td class="description last"><p>地图视图的最大比例尺(比例尺的分母,该值越小,比例尺越大)。视图的当前比列尺不会大于地图视图的最大比例尺。默认值为undefined,undefined表示用户未设置,地图视图会根据当前加载的图层,自动计算maxScale、minScale的值。如果用户设置了该值,则地图视图将直接采用用户设置的值。maxScale的值应该始终小于minScale的值。</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>minScale</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
</td>
<td class="description last"><p>地图视图的最小比例尺(比例尺的分母,该值越大,比例尺越小)。视图的当前比列尺不会小于地图视图的最小比例尺。默认值为undefined,undefined表示用户未设置,地图视图会根据当前加载的图层,自动计算maxScale、minScale的值。如果用户设置了该值,则地图视图将直接采用用户设置的值。minScale的值应该始终大于maxScale的值。</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>maxZoom</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
</td>
<td class="description last"><p>最大缩放级数 。优先级低于maxScale</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>minZoom</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
</td>
<td class="description last"><p>最小缩放级数。优先级低于minScale</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>popup</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="default">
</td>
<td class="description last"><p>地图弹框</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>fullExtent</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
</td>
<td class="description last"><p>地图视图最大显示范围。用户不设置时,将地图范围作为地图视图的最大显示范围,用户设置时采用用户设置的。地图视图初始化时,会根据此范围计算地图视图的最小比例尺,当瓦片数据的最大比例尺小于此比例尺时,无法显示。在相同视图大小下,fullExtent越大,地图视图的最小比例尺越小。</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>BaseView#event:地图视图加载完毕事件</li>
<li>BaseView#event:鼠标点击事件</li>
<li>BaseView#event:鼠标双击事件</li>
<li>BaseView#event:鼠标按下事件</li>
<li>BaseView#event:鼠标抬起事件</li>
<li>BaseView#event:鼠标右键点击事件</li>
<li>BaseView#event:鼠标移动事件</li>
<li>BaseView#event:鼠标移出视图事件</li>
<li>BaseView#event:鼠标移入视图事件</li>
<li>BaseView#event:zoom变化事件</li>
<li>BaseView#event:地图移动事件</li>
<li>BaseView#event:地图大小变化事件</li>
<li>BaseView#event:键盘输入事件</li>
<li>BaseView#event:键盘按下事件</li>
<li>BaseView#event:键盘抬起事件</li>
<li>BaseView#event:地图视图改变事件</li>
</ul>
</div>
</div>
<p class="summary"><h5>支持如下方法:</h5>
<a href='#flyTo'>[1、视点跳转]</a><br/>
<a href='#getCenter'>[2、获取当前视图的中心点]</a><br/>
<a href='#getZoom'>[3、获取当前缩放级数]</a><br/>
<a href='#getExtent'>[4、获取当前视图的地理范围]</a><br/>
<a href='#getSize'>[5、获取当前视图容器的宽高]</a><br/>
<a href='#toJSON'>[6、导出场景视图的配置文件]</a><br/>
<a href='#clone'>[7、克隆并返回一个新的场景视图对象]</a><br/>
<a href='#fromJSON'>[8、通过json构造并返回一个新的场景视图对象]</a><br/>
<a href='#takeScreenshot'>[9、屏幕快照]</a><br/>
<code>10、注册事件</code><br/>
<code>11、移除事件</code><br/>
<a href='#toMap'>[12、屏幕像素坐标点转地理坐标点]</a><br/>
<a href='#toScreen'>[13、地理坐标点转屏幕像素坐标点]</a><br/>
<a href='#hitTest'>[14、穿透检测]</a><br/>
<a href='#getLayer'>[15、根据实际图层对象查询并返回基础图层]</a><br/>
<a href='#getScale'>[16、获取当前比例尺]</a><br/></p>
<h5>示例</h5>
<p class="code-caption"><h7 id='MapView'>初始化一个二维场景视图</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { Map } = zondy
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { Map } from "@mapgis/webclient-common"
import { MapView } from "@mapgis/webclient-mapboxgl-plugin"
// 初始化图层管理容器
const map = new Map();
// 初始化地图视图对象
const mapView = new MapView({
// 二维场景视图的容器(html的div标签)ID
viewId: "二维场景视图的容器的id",
// 图层管理容器
map: map
});</code></pre>
</div>
</div>
</div>
</div>
<h3 class="subsection-title">继承关系</h3>
<ul>
<li>zondy.MapViewBase</li>
</ul>
<div class='vertical-section'>
<h3 id='member'>成员变量</h3>
<div class="members">
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">Point</span>
</span>
<h4 class="name" id="center">
<a class="href-link" href="#center">#</a>
<span class="code-name">
center
</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">EngineType</span>
</span>
<h4 class="name" id="engineType">
<a class="href-link" href="#engineType">#</a>
<span class='tag'>readonly</span>
<span class="code-name">
engineType
</span>
</h4>
<div class="description">
<p>引擎类型,为'mapboxgl'</p>
</div>
<dl class="details">
</dl>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type">Extent</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">Extent</span>
</span>
<h4 class="name" id="fullExtent">
<a class="href-link" href="#fullExtent">#</a>
<span class="code-name">
fullExtent
</span>
</h4>
<div class="description">
<p>地图视图最大显示范围。用户不设置时,将地图范围作为地图视图的最大显示范围,用户设置时采用用户设置的。地图视图初始化时,会根据此范围计算地图视图的最小比例尺,当瓦片数据的最大比例尺小于此比例尺时,无法显示。在相同视图大小下,fullExtent越大,地图视图的最小比例尺越小。</p>
</div>
<dl class="details">
</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="height">
<a class="href-link" href="#height">#</a>
<span class='tag'>readonly</span>
<span class="code-name">
height
</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">Number</span>
</span>
<h4 class="name" id="maxScale">
<a class="href-link" href="#maxScale">#</a>
<span class="code-name">
maxScale
</span>
</h4>
<div class="description">
<p>地图视图的最大比例尺(比例尺的分母,该值越小,比例尺越大)。视图的当前比列尺不会大于地图视图的最大比例尺。默认值为undefined,undefined表示用户未设置,地图视图会根据当前加载的图层,自动计算maxScale、minScale的值。如果用户设置了该值,则地图视图将直接采用用户设置的值。maxScale的值应该始终小于minScale的值。</p>
</div>
<dl class="details">
</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="minScale">
<a class="href-link" href="#minScale">#</a>
<span class="code-name">
minScale
</span>
</h4>
<div class="description">
<p>地图视图的最小比例尺(比例尺的分母,该值越大,比例尺越小)。视图的当前比列尺不会小于地图视图的最小比例尺。默认值为undefined,undefined表示用户未设置,地图视图会根据当前加载的图层,自动计算maxScale、minScale的值。如果用户设置了该值,则地图视图将直接采用用户设置的值。minScale的值应该始终大于maxScale的值。</p>
</div>
<dl class="details">
</dl>
</div>
<div class="member">
<span class="method-parameter is-pulled-right">
<label>类型:</label>
<span class="param-type"><a href="Popup.html">Popup</a></span>
</span>
<h4 class="name" id="popup">
<a class="href-link" href="#popup">#</a>
<span class="code-name">
popup
</span>
</h4>
<div class="description">
<p>地图弹框popup</p>
</div>
<dl class="details">
</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="scale">
<a class="href-link" href="#scale">#</a>
<span class="code-name">
scale
</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="spatialReferenceLocked">
<a class="href-link" href="#spatialReferenceLocked">#</a>
<span class="code-name">
spatialReferenceLocked
</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="stationary">
<a class="href-link" href="#stationary">#</a>
<span class='tag'>readonly</span>
<span class="code-name">
stationary
</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">Number</span>
</span>
<h4 class="name" id="width">
<a class="href-link" href="#width">#</a>
<span class='tag'>readonly</span>
<span class="code-name">
width
</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">Number</span>
</span>
<h4 class="name" id="zoom">
<a class="href-link" href="#zoom">#</a>
<span class="code-name">
zoom
</span>
</h4>
<div class="description">
<p>地图层级</p>
</div>
<dl class="details">
</dl>
</div>
</div>
</div>
<div class='vertical-section'>
<h3 id='function'>方法</h3>
<div class="members">
<div class="member">
<h4 class="name" id=".fromJSON">
<a class="href-link" href="#.fromJSON">#</a>
<span class='tag'>static</span>
<span class="code-name" style="font-size:30px">
fromJSON<span class="signature">(json)</span>
</span>
</h4>
<div class="description">
<p><a id='fromJSON'></a>
通过一个配置生成一个场景视图对象</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"><code>json</code></td>
<td class="type">
<span class="param-type">Object</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='column is-5 has-text-left'>
<label>类型: </label>
<span class="param-type"><a href="MapView.html">MapView</a></span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="flyTo">
<a class="href-link" href="#flyTo">#</a>
<span class="code-name" style="font-size:30px">
flyTo<span class="signature">(options)</span>
</span>
</h4>
<div class="description">
<p>视点跳转</a></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"><code>options</code></td>
<td class="type">
</td>
<td class="description last"><p>跳转参数</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>center</code></td>
<td class="type">
<span class="param-type">Array</span>
</td>
<td class="description last"><p>跳转中心点</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>zoom</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="description last"><p>地图层级</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>extent</code></td>
<td class="type">
<span class="param-type">Extent</span>
</td>
<td class="description last"><p>按范围跳转</p></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
</dl>
<h5>示例</h5>
<p class="code-caption"><h7>中心点跳转示例</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { Map } = zondy
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { Map } from "@mapgis/webclient-common"
import { MapView } from "@mapgis/webclient-mapboxgl-plugin"
// 初始化图层管理容器
map = new .Map();
// 初始化地图视图对象
mapView = new MapView({
// 视图id
viewId: "view-id",
// 图层管理容器
map: map
});
// 视点跳转
mapView.flyTo({
// 跳转中心点
center: [{x}, {y}],
// 地图层级
zoom: {zoom}
});</code></pre>
<p class="code-caption"><h7>按范围跳转示例</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { Map } = zondy
const { Extent } = zondy.geometry
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { Map, MapView, Extent } from "@mapgis/webclient-mapboxgl-plugin"
// 初始化图层管理容器
map = new Map();
// 初始化地图视图对象
mapView = new MapView({
// 视图id
viewId: "view-id",
// 图层管理容器
map: map
});
mapView.flyTo({
// 范围几何
extent: new Extent({
"xmin":10,
"xmax":210,
"ymin":0,
"ymax":100,
})
});</code></pre>
<p class="code-caption"><h7>按范围跳转示例-拿到图层信息后跳转</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { IGSMapImageLayer } = zondy.layer
// ES6引入方式
import { IGSMapImageLayer } from "@mapgis/webclient-mapboxgl-plugin"
const igsMapImageLayer = new IGSMapImageLayer({
url: 'http://192.168.82.89:8089/igs/rest/services/Map/Hubei4326/MapServer'
});
map.add(igsMapImageLayer);
// 图层加载完毕
igsMapImageLayer.on('layer-view-created', function (result) {
console.log("加载完毕:", result.layer)
//视点跳转
mapView.flyTo({
extent: result.layer.extent
});
})</code></pre>
</div>
<div class="member">
<h4 class="name" id="getCenter">
<a class="href-link" href="#getCenter">#</a>
<span class="code-name" style="font-size:30px">
getCenter<span class="signature">()</span>
</span>
</h4>
<div class="description">
<p>获取当前视图的中心点(经纬度中心点)<a id='getCenter'></a></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">Object</span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="getExtent">
<a class="href-link" href="#getExtent">#</a>
<span class="code-name" style="font-size:30px">
getExtent<span class="signature">()</span>
</span>
</h4>
<div class="description">
<p>获取当前视图的地理范围<a id='getExtent'></a></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">Extent</span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="getScale">
<a class="href-link" href="#getScale">#</a>
<span class="code-name" style="font-size:30px">
getScale<span class="signature">()</span>
</span>
</h4>
<div class="description">
<p><a id='getScale'></a>
获取当前比例尺</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>比例尺 实际10000米:地图1米</p></div>
<div class='column is-5 has-text-left'>
<label>类型: </label>
<span class="param-type">Number</span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="getSize">
<a class="href-link" href="#getSize">#</a>
<span class="code-name" style="font-size:30px">
getSize<span class="signature">()</span>
</span>
</h4>
<div class="description">
<p>获取当前视图容器的宽高,单位像素<a id='getSize'></a></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">Object</span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="getZoom">
<a class="href-link" href="#getZoom">#</a>
<span class="code-name" style="font-size:30px">
getZoom<span class="signature">()</span>
</span>
</h4>
<div class="description">
<p>获取当前缩放级数<a id='getZoom'></a></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">Number</span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="goTo">
<a class="href-link" href="#goTo">#</a>
<span class="code-name" style="font-size:30px">
goTo<span class="signature">(goToTarget, options)</span>
</span>
</h4>
<div class="description">
<p>视点跳转为给定的目标<a id='goTo'></a></p>
</div>
<h4>参数:</h4>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th style="min-width: 100px;">默认值</th>
<th class="last">描述</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name"><code>goToTarget</code></td>
<td class="type">
</td>
<td class="default">
</td>
<td class="description last"><p>跳转参数</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>center</code></td>
<td class="type">
<span class="param-type">Point</span>
|
<span class="param-type">Array</span>
</td>
<td class="default">
</td>
<td class="description last"><p>视图跳转中心点</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>zoom</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
</td>
<td class="description last"><p>视图跳转层级</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>scale</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
</td>
<td class="description last"><p>视图跳转比例尺</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>layer</code></td>
<td class="type">
<span class="param-type">Layer</span>
|
<span class="param-type">SubLayer</span>
|
<span class="param-type">undefined</span>
</td>
<td class="default">
</td>
<td class="description last"><p>跳转的图层</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>target</code></td>
<td class="type">
<span class="param-type">Geometry</span>
|
<span class="param-type">Array.<Geometry></span>
|
<span class="param-type">Collection.<Geometry></span>
</td>
<td class="default">
</td>
<td class="description last"><p>按范围跳转</p></td>
</tr>
<tr class="deep-level-0">
<td class="name"><code>options</code></td>
<td class="type">
</td>
<td class="default">
</td>
<td class="description last"><p>动画参数</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>animate</code></td>
<td class="type">
<span class="param-type">Boolean</span>
</td>
<td class="default">
true
</td>
<td class="description last"><p>新视图的过渡是否开启动画,默认开启动画</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>duration</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
200
</td>
<td class="description last"><p>动画的持续时间,以毫秒为单位,默认200毫秒</p></td>
</tr>
</tbody>
</table>
</div>
<dl class="details">
</dl>
<div class='columns method-parameter'>
<div class="column is-2"><label>返回值:</label></div>
<div class="column is-10">
<div class="columns">
<div class='param-desc column is-7'><p>视图跳转是否成功</p></div>
<div class='column is-5 has-text-left'>
<label>类型: </label>
<span class="param-type">Promise.<Boolean></span>
</div>
</div>
</div>
</div>
<h5>示例</h5>
<p class="code-caption"><h7>中心点跳转示例</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { Map } = zondy
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { Map } from "@mapgis/webclient-common"
import { MapView } from "@mapgis/webclient-mapboxgl-plugin"
// 初始化图层管理容器
map = new .Map();
// 初始化地图视图对象
mapView = new MapView({
// 视图id
viewId: "view-id",
// 图层管理容器
map: map
});
// 视点跳转
mapView.goTo({
// 跳转中心点
center: [115.47643872463577, 30.980700423496124],
// 地图层级
zoom: 8
});</code></pre>
<p class="code-caption"><h7>按范围跳转示例</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { Map } = zondy
const { Extent, Circle } = zondy.geometry
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { Map } from "@mapgis/webclient-common"
import { MapView } from "@mapgis/webclient-mapboxgl-plugin"
// 初始化图层管理容器
map = new Map();
// 初始化地图视图对象
mapView = new MapView({
// 视图id
viewId: "view-id",
// 图层管理容器
map: map
});
const extent1 = new Extent({
xmin: 111.88463529230717,
ymin: 28.646934514163803,
xmax: 116.89989408129225,
ymax: 33.07991791253288,
})
const geometry2 = new Circle({
center: [111, 29],
radius: 100,
radiusUnit: "kilometers",
})
mapView
.goTo({
target: [extent1, geometry2],
})
.then(() => {
console.log("gotoExtent callback")
})</code></pre>
</div>
<div class="member">
<h4 class="name" id="hitTest">
<a class="href-link" href="#hitTest">#</a>
<span class="code-name" style="font-size:30px">
hitTest<span class="signature">(screenPoint)</span>
</span>
</h4>
<div class="description">
<p>穿透检测,图元拾取。目前支持graphic类型拾取结果,支持图层类型GraphicLayer,FeatureLayer。</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"><code>screenPoint</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="description last"><p>屏幕像素坐标点,例如{ x: 900, y: 500 }</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">Array</span>
</div>
</div>
</div>
</div>
<h5>示例</h5>
<p class="code-caption"><h7>根据基础图层对象或者图层id查询并返回实际图层</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { Map, Feature } = zondy
const { Point, Polygon, MultiPolygon ,Extent, Circle } = zondy.geometry
const { GraphicsLayer, IGSFeatureLayer, IGSTileLayer } = zondy.layer
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { MapView } from "@mapgis/webclient-mapboxgl-plugin";
import { Map, Point, Polygon, MultiPolygon ,Extent, GraphicsLayer, Feature, Circle, IGSFeatureLayer, IGSTileLayer } from "@mapgis/webclient-common";
// 初始化图层管理容器
const map = new Map();
// 初始化地图视图对象
this.mapView = new MapView({
// 视图id
viewId: "mapgis-2d-viewer",
// 图层管理容器
map: map,
})
// 创建一个要素crs
const feature = [
new Feature({
id: '11113',
geometry: new Circle({
center: [113, 35],
radius: 10000,
radiusUnit: 'kilometers',
})
}),
new Feature({
id: '11114',
geometry: new Polygon({
coordinates: [
// 外圈
[
[113.0, 29.0],
[116.0, 29.0],
[116.0, 35.0],
[113.0, 35.0],
[113.0, 29.0]
]
]
})
}),
new Feature({
id: '11115',
geometry:new MultiPolygon({
coordinates: [
[
// 外圈
[
[112.0, 28.0],
[115.0, 28.0],
[115.0, 30.0],
[112.0, 30.0],
[112.0, 28.0]
],
// 第一个内圈
[
[112.2, 28.2],
[112.2, 29.8],
[114.8, 29.8],
[114.8, 28.2],
[112.2, 28.2]
]
]
]
})
})
]
// 初始化几何图层
const graphicsLayer = new GraphicsLayer({
graphics:feature
})
map.add(this.graphicsLayer)
const result = this.mapView.hitTest({x:1100,y:600})</code></pre>
</div>
<div class="member">
<h4 class="name" id="takeScreenshot">
<a class="href-link" href="#takeScreenshot">#</a>
<span class="code-name" style="font-size:30px">
takeScreenshot<span class="signature">(options<span class="signature-attributes">opt</span>)</span>
</span>
</h4>
<div class="description">
<p>屏幕快照</p>
</div>
<h4>参数:</h4>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th style="min-width: 100px;">默认值</th>
<th class="last">描述</th>
</tr>
</thead>
<tbody>
<tr class="deep-level-0">
<td class="name"><code>options</code></td>
<td class="type">
<span class="param-type">Object</span>
</td>
<td class="default">
{}
</td>
<td class="description last"><p>屏幕快照配置配置</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>format</code></td>
<td class="type">
<span class="param-type">PictureFormat</span>
</td>
<td class="default">
PictureFormat.PNG
</td>
<td class="description last"><p>照片格式,支持png,jpeg格式</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>filename</code></td>
<td class="type">
<span class="param-type">String</span>
</td>
<td class="default">
'screenshotFile'
</td>
<td class="description last"><p>下载文件名</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>width</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
</td>
<td class="description last"><p>图片宽度</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>height</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
</td>
<td class="description last"><p>图片高度</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>x</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
</td>
<td class="description last"><p>图片原点x</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>y</code></td>
<td class="type">
<span class="param-type">Number</span>
</td>
<td class="default">
</td>
<td class="description last"><p>图片原点y</p></td>
</tr>
<tr class="deep-level-1">
<td class="name"><code>isDownload</code></td>
<td class="type">
<span class="param-type">Boolean</span>
</td>
<td class="default">
true
</td>
<td class="description last"><p>是否下载图片</p></td>
</tr>
</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>屏幕快照 {dataUrl String },且浏览器会下载图片</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"><h7>屏幕快照</h7></p>
<pre class="prettyprint"><code>// ES5引入方式
const { Map } = zondy
const { PictureFormat } = zondy.Enum
const { MapView } = zondy.mapboxgl
// ES6引入方式
import { MapView } from "@mapgis/webclient-mapboxgl-plugin"
import { Map, PictureFormat } from "@mapgis/webclient-common"
// 初始化图层管理容器
const map = new Map();
// 初始化地图视图对象
const mapView = new MapView({
// 二维场景视图的容器(html的div标签)ID
viewId: "二维场景视图的容器的id",
// 图层管理容器
map: map
})
// 设置屏幕快照参数
const screenshotOptions: {
format: PictureFormat.PNG
}
// 开始屏幕快照
mapView.takeScreenshot(screenshotOptions).then((result) => {
// 获取base64格式的url字符串
console.log("dataUrl:", result.dataUrl)
})</code></pre>
</div>
<div class="member">
<h4 class="name" id="toJSON">
<a class="href-link" href="#toJSON">#</a>
<span class="code-name" style="font-size:30px">
toJSON<span class="signature">()</span>
</span>
</h4>
<div class="description">
<p><a id='toJSON'></a>
导出场景视图的配置文件</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">Object</span>
</div>
</div>
</div>
</div>
</div>
<div class="member">
<h4 class="name" id="toMap">
<a class="href-link" href="#toMap">#</a>
<span class="code-name" style="font-size:30px">
toMap<span class="signature">(screenPoint)</span>
</span>
</h4>
<div class="description">
<p><a id='toMap'></a>
屏幕像素坐标点转地理坐标点</p>
</div>
<h4>参数:</h4>
<div class="table-container">
<table class="params table">
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th class="last">描述</th>
</t