UNPKG

@mapgis/webclient-mapboxgl-plugin

Version:

A cloud GIS network client development platform based on MapboxGL.

4,002 lines (1,368 loc) 61 kB
<!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 &quot;@mapgis/webclient-leaflet-plugin&quot; <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.&lt;Geometry></span> | <span class="param-type">Collection.&lt;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.&lt;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