my-openlayer 2.4.12 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +251 -251
- package/LICENSE +21 -21
- package/MyOl.d.ts +9 -9
- package/MyOl.js +17 -14
- package/README.md +174 -148
- package/core/line/Line.d.ts +40 -0
- package/core/line/Line.js +144 -0
- package/core/line/LineFeatureFactory.d.ts +17 -0
- package/core/line/LineFeatureFactory.js +75 -0
- package/core/line/LineFlowAnimator.d.ts +53 -0
- package/core/line/LineFlowAnimator.js +297 -0
- package/core/line/LineStyleFactory.d.ts +43 -0
- package/core/line/LineStyleFactory.js +135 -0
- package/core/{RiverLayerManager.d.ts → line/RiverLayerManager.d.ts} +2 -2
- package/core/{RiverLayerManager.js → line/RiverLayerManager.js} +3 -5
- package/core/line/index.d.ts +6 -0
- package/core/line/index.js +5 -0
- package/core/{ConfigManager.d.ts → map/ConfigManager.d.ts} +25 -1
- package/core/{ConfigManager.js → map/ConfigManager.js} +22 -1
- package/core/{EventManager.d.ts → map/EventManager.d.ts} +1 -1
- package/core/{EventManager.js → map/EventManager.js} +2 -2
- package/core/{MapBaseLayers.d.ts → map/MapBaseLayers.d.ts} +1 -1
- package/core/{MapBaseLayers.js → map/MapBaseLayers.js} +3 -3
- package/core/{MapTools.d.ts → map/MapTools.d.ts} +5 -2
- package/core/{MapTools.js → map/MapTools.js} +11 -5
- package/core/{MeasureHandler.d.ts → map/MeasureHandler.d.ts} +1 -1
- package/core/{MeasureHandler.js → map/MeasureHandler.js} +41 -41
- package/core/map/index.d.ts +5 -0
- package/core/map/index.js +5 -0
- package/core/{Point.d.ts → point/Point.d.ts} +6 -14
- package/core/point/Point.js +272 -0
- package/core/point/PointClusterLayer.d.ts +10 -0
- package/core/point/PointClusterLayer.js +52 -0
- package/core/point/PointOverlay.d.ts +13 -0
- package/core/point/PointOverlay.js +57 -0
- package/core/point/PointPulseLayer.d.ts +13 -0
- package/core/point/PointPulseLayer.js +207 -0
- package/core/point/index.d.ts +4 -0
- package/core/point/index.js +4 -0
- package/core/{Polygon.d.ts → polygon/Polygon.d.ts} +4 -50
- package/core/polygon/Polygon.js +248 -0
- package/core/polygon/PolygonHeatmapLayer.d.ts +11 -0
- package/core/polygon/PolygonHeatmapLayer.js +40 -0
- package/core/polygon/PolygonImageLayer.d.ts +9 -0
- package/core/polygon/PolygonImageLayer.js +61 -0
- package/core/polygon/PolygonMaskLayer.d.ts +20 -0
- package/core/polygon/PolygonMaskLayer.js +107 -0
- package/core/polygon/PolygonStyleFactory.d.ts +12 -0
- package/core/polygon/PolygonStyleFactory.js +100 -0
- package/core/polygon/index.d.ts +5 -0
- package/core/polygon/index.js +5 -0
- package/core/{SelectHandler.d.ts → select/SelectHandler.d.ts} +2 -3
- package/core/{SelectHandler.js → select/SelectHandler.js} +4 -4
- package/core/select/index.d.ts +1 -0
- package/core/select/index.js +1 -0
- package/core/{VueTemplatePoint.d.ts → vue-template-point/VueTemplatePoint.d.ts} +1 -1
- package/core/{VueTemplatePoint.js → vue-template-point/VueTemplatePoint.js} +4 -4
- package/core/vue-template-point/index.d.ts +1 -0
- package/core/vue-template-point/index.js +1 -0
- package/docs/.vitepress/config.mts +57 -57
- package/docs/ConfigManager.md +71 -71
- package/docs/ErrorHandler.md +106 -106
- package/docs/EventManager.md +142 -142
- package/docs/Line.md +215 -187
- package/docs/MapBaseLayers.md +198 -198
- package/docs/MapTools.md +172 -172
- package/docs/MeasureHandler.md +87 -87
- package/docs/MyOl.md +247 -247
- package/docs/Point.md +136 -136
- package/docs/Polygon.md +241 -241
- package/docs/RiverLayerManager.md +187 -187
- package/docs/SelectHandler.md +147 -147
- package/docs/ValidationUtils.md +83 -83
- package/docs/VueTemplatePoint.md +214 -214
- package/docs/index.md +73 -73
- package/index.d.ts +10 -15
- package/index.js +7 -13
- package/package.json +11 -1
- package/types/base.d.ts +47 -0
- package/types/base.js +1 -0
- package/types/common.d.ts +59 -0
- package/types/common.js +1 -0
- package/types/index.d.ts +9 -0
- package/types/index.js +1 -0
- package/types/line.d.ts +41 -0
- package/types/line.js +1 -0
- package/types/map.d.ts +77 -0
- package/types/map.js +1 -0
- package/types/point.d.ts +54 -0
- package/types/point.js +1 -0
- package/types/polygon.d.ts +8 -0
- package/types/polygon.js +1 -0
- package/types/select.d.ts +25 -0
- package/types/select.js +1 -0
- package/types/vue-template-point.d.ts +54 -0
- package/{types.js → types/vue-template-point.js} +0 -3
- package/utils/ProjectionUtils.d.ts +28 -0
- package/utils/ProjectionUtils.js +34 -0
- package/utils/ValidationUtils.d.ts +33 -86
- package/utils/ValidationUtils.js +60 -165
- package/core/Line.d.ts +0 -49
- package/core/Line.js +0 -114
- package/core/Point.js +0 -560
- package/core/Polygon.js +0 -646
- package/docs/.vitepress/dist/404.html +0 -22
- package/docs/.vitepress/dist/ConfigManager.html +0 -46
- package/docs/.vitepress/dist/ErrorHandler.html +0 -52
- package/docs/.vitepress/dist/EventManager.html +0 -58
- package/docs/.vitepress/dist/Line.html +0 -92
- package/docs/.vitepress/dist/MapBaseLayers.html +0 -52
- package/docs/.vitepress/dist/MapTools.html +0 -81
- package/docs/.vitepress/dist/MeasureHandler.html +0 -32
- package/docs/.vitepress/dist/MyOl.html +0 -62
- package/docs/.vitepress/dist/Point.html +0 -81
- package/docs/.vitepress/dist/Polygon.html +0 -102
- package/docs/.vitepress/dist/RiverLayerManager.html +0 -66
- package/docs/.vitepress/dist/SelectHandler.html +0 -46
- package/docs/.vitepress/dist/ValidationUtils.html +0 -47
- package/docs/.vitepress/dist/VueTemplatePoint.html +0 -112
- package/docs/.vitepress/dist/assets/ConfigManager.md.BOMdGTaa.js +0 -22
- package/docs/.vitepress/dist/assets/ConfigManager.md.BOMdGTaa.lean.js +0 -1
- package/docs/.vitepress/dist/assets/ErrorHandler.md.yUiuJ9w9.js +0 -28
- package/docs/.vitepress/dist/assets/ErrorHandler.md.yUiuJ9w9.lean.js +0 -1
- package/docs/.vitepress/dist/assets/EventManager.md.BhCUVy1f.js +0 -34
- package/docs/.vitepress/dist/assets/EventManager.md.BhCUVy1f.lean.js +0 -1
- package/docs/.vitepress/dist/assets/Line.md.BAQOzmSt.js +0 -68
- package/docs/.vitepress/dist/assets/Line.md.BAQOzmSt.lean.js +0 -1
- package/docs/.vitepress/dist/assets/MapBaseLayers.md.Bw0L_m0b.js +0 -28
- package/docs/.vitepress/dist/assets/MapBaseLayers.md.Bw0L_m0b.lean.js +0 -1
- package/docs/.vitepress/dist/assets/MapTools.md.DaYgiDPe.js +0 -57
- package/docs/.vitepress/dist/assets/MapTools.md.DaYgiDPe.lean.js +0 -1
- package/docs/.vitepress/dist/assets/MeasureHandler.md.7Sf4ymRv.js +0 -8
- package/docs/.vitepress/dist/assets/MeasureHandler.md.7Sf4ymRv.lean.js +0 -1
- package/docs/.vitepress/dist/assets/MyOl.md.D-14Gzjy.js +0 -38
- package/docs/.vitepress/dist/assets/MyOl.md.D-14Gzjy.lean.js +0 -1
- package/docs/.vitepress/dist/assets/Point.md.Bi9juuuv.js +0 -57
- package/docs/.vitepress/dist/assets/Point.md.Bi9juuuv.lean.js +0 -1
- package/docs/.vitepress/dist/assets/Polygon.md.-JIqEvzD.js +0 -78
- package/docs/.vitepress/dist/assets/Polygon.md.-JIqEvzD.lean.js +0 -1
- package/docs/.vitepress/dist/assets/RiverLayerManager.md.CfUu2RxH.js +0 -42
- package/docs/.vitepress/dist/assets/RiverLayerManager.md.CfUu2RxH.lean.js +0 -1
- package/docs/.vitepress/dist/assets/SelectHandler.md.COR4ez_p.js +0 -22
- package/docs/.vitepress/dist/assets/SelectHandler.md.COR4ez_p.lean.js +0 -1
- package/docs/.vitepress/dist/assets/ValidationUtils.md.ReTVWa73.js +0 -23
- package/docs/.vitepress/dist/assets/ValidationUtils.md.ReTVWa73.lean.js +0 -1
- package/docs/.vitepress/dist/assets/VueTemplatePoint.md.CtxSb5Pm.js +0 -88
- package/docs/.vitepress/dist/assets/VueTemplatePoint.md.CtxSb5Pm.lean.js +0 -1
- package/docs/.vitepress/dist/assets/app.YvjVuxaB.js +0 -1
- package/docs/.vitepress/dist/assets/chunks/framework.C_W0ODpn.js +0 -18
- package/docs/.vitepress/dist/assets/chunks/theme.Bf87fILP.js +0 -1
- package/docs/.vitepress/dist/assets/index.md.BJz6tHSr.js +0 -26
- package/docs/.vitepress/dist/assets/index.md.BJz6tHSr.lean.js +0 -1
- package/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
- package/docs/.vitepress/dist/assets/style.C2pAQzDq.css +0 -1
- package/docs/.vitepress/dist/hashmap.json +0 -1
- package/docs/.vitepress/dist/index.html +0 -50
- package/docs/.vitepress/dist/vp-icons.css +0 -1
- package/types.d.ts +0 -431
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="zh-CN" dir="ltr">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
6
|
-
<title>My OpenLayers | MyOpenLayer</title>
|
|
7
|
-
<meta name="description" content="基于 OpenLayers 的现代地图组件库">
|
|
8
|
-
<meta name="generator" content="VitePress v1.6.4">
|
|
9
|
-
<link rel="preload stylesheet" href="/my-openlayer/assets/style.C2pAQzDq.css" as="style">
|
|
10
|
-
<link rel="preload stylesheet" href="/my-openlayer/vp-icons.css" as="style">
|
|
11
|
-
|
|
12
|
-
<script type="module" src="/my-openlayer/assets/app.YvjVuxaB.js"></script>
|
|
13
|
-
<link rel="preload" href="/my-openlayer/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
|
|
14
|
-
<link rel="modulepreload" href="/my-openlayer/assets/chunks/theme.Bf87fILP.js">
|
|
15
|
-
<link rel="modulepreload" href="/my-openlayer/assets/chunks/framework.C_W0ODpn.js">
|
|
16
|
-
<link rel="modulepreload" href="/my-openlayer/assets/index.md.BJz6tHSr.lean.js">
|
|
17
|
-
<script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
|
|
18
|
-
<script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
|
|
19
|
-
</head>
|
|
20
|
-
<body>
|
|
21
|
-
<div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0b0ada53></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0b0ada53>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-1168a8e4><a class="title" href="/my-openlayer/" data-v-1168a8e4><!--[--><!--]--><!----><span data-v-1168a8e4>MyOpenLayer</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!----></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/my-openlayer/" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>首页</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/my-openlayer/MyOl.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>指南</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/my-openlayer/MyOl.html" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>API</span><!--]--></a><!--]--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://github.com/cuteyuchen/my-openlayer" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-e56f3d57><!--[--><span data-v-e56f3d57>GitHub</span><!--]--></a><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-6aa21345 data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/cuteyuchen/my-openlayer" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-github"></span></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-cf11d7a2><span class="vpi-more-horizontal icon" data-v-cf11d7a2></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><!----><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Appearance</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/cuteyuchen/my-openlayer" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-bd121fe5><span class="vpi-social-github"></span></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-8a42e2b4><button data-v-8a42e2b4>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>核心类库</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/MyOl.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>MyOl 地图入口</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/MapBaseLayers.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>MapBaseLayers 底图管理</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/ConfigManager.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>ConfigManager 配置管理</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/EventManager.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>EventManager 事件管理</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/ErrorHandler.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>ErrorHandler 错误处理</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>要素操作</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/Point.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>Point 点要素</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/Line.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>Line 线要素</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/Polygon.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>Polygon 面要素</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/VueTemplatePoint.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>VueTemplatePoint Vue点位</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/RiverLayerManager.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>RiverLayerManager 河流图层</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0" data-v-c40bc020 data-v-b3fd67f8><div class="item" role="button" tabindex="0" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><h2 class="text" data-v-b3fd67f8>交互与工具</h2><!----></div><div class="items" data-v-b3fd67f8><!--[--><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/SelectHandler.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>SelectHandler 要素选择</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/MeasureHandler.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>MeasureHandler 测量工具</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/MapTools.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>MapTools 地图工具</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b3fd67f8 data-v-b3fd67f8><div class="item" data-v-b3fd67f8><div class="indicator" data-v-b3fd67f8></div><a class="VPLink link link" href="/my-openlayer/ValidationUtils.html" data-v-b3fd67f8><!--[--><p class="text" data-v-b3fd67f8>ValidationUtils 验证工具</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>On this page</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _my-openlayer_" data-v-39a288b8><div><h1 id="my-openlayers" tabindex="-1">My OpenLayers <a class="header-anchor" href="#my-openlayers" aria-label="Permalink to "My OpenLayers""></a></h1><p>My OpenLayers 是一个基于 OpenLayers 的轻量级地图封装库,旨在简化地图开发流程,提供开箱即用的常用功能。它集成了点、线、面绘制,测量工具,选择交互,Vue 组件覆盖物等功能,特别优化了 Vue 项目的集成体验。</p><h2 id="特性" tabindex="-1">特性 <a class="header-anchor" href="#特性" aria-label="Permalink to "特性""></a></h2><ul><li><strong>开箱即用</strong>: 封装了常用的地图功能,减少样板代码。</li><li><strong>Vue 集成</strong>: 支持使用 Vue 组件作为地图覆盖物,轻松创建复杂的交互式标记。</li><li><strong>TypeScript</strong>: 完全使用 TypeScript 编写,提供完整的类型定义。</li><li><strong>工具丰富</strong>: 内置测量、选择、裁剪、遮罩等实用工具。</li><li><strong>高性能闪烁点</strong>: 基于 <code>VectorLayer</code> 和单个 <code>requestAnimationFrame</code> 渲染大量预警点位,避免 DOM 动画卡顿。</li><li><strong>扩展性强</strong>: 提供基础类和接口,方便二次封装和扩展。</li></ul><h2 id="安装" tabindex="-1">安装 <a class="header-anchor" href="#安装" aria-label="Permalink to "安装""></a></h2><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-openlayer</span></span>
|
|
22
|
-
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 或者</span></span>
|
|
23
|
-
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">yarn</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> add</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-openlayer</span></span>
|
|
24
|
-
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;"># 或者</span></span>
|
|
25
|
-
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">pnpm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> add</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> my-openlayer</span></span></code></pre></div><h2 id="快速开始" tabindex="-1">快速开始 <a class="header-anchor" href="#快速开始" aria-label="Permalink to "快速开始""></a></h2><div class="language-typescript vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">typescript</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> { MyOl } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'my-openlayer'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">;</span></span>
|
|
26
|
-
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> 'ol/ol.css'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">; </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 引入 OpenLayers 样式</span></span>
|
|
27
|
-
<span class="line"></span>
|
|
28
|
-
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 初始化地图</span></span>
|
|
29
|
-
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> map</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> MyOl</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'map-container'</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, {</span></span>
|
|
30
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> center: [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">120.2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">30.3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">],</span></span>
|
|
31
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> zoom: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">12</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
|
|
32
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> projection: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'EPSG:4326'</span></span>
|
|
33
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">});</span></span>
|
|
34
|
-
<span class="line"></span>
|
|
35
|
-
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 获取原生 Map 实例</span></span>
|
|
36
|
-
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> olMap</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> map.map;</span></span>
|
|
37
|
-
<span class="line"></span>
|
|
38
|
-
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 添加一个点</span></span>
|
|
39
|
-
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> point</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> map.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">getPoint</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">();</span></span>
|
|
40
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">point.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">addPoint</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">([{</span></span>
|
|
41
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> lgtd: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">120.2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
|
|
42
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> lttd: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">30.3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">,</span></span>
|
|
43
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> style: {</span></span>
|
|
44
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> icon: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'path/to/icon.png'</span></span>
|
|
45
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> }</span></span>
|
|
46
|
-
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}]);</span></span></code></pre></div><h2 id="核心模块" tabindex="-1">核心模块 <a class="header-anchor" href="#核心模块" aria-label="Permalink to "核心模块""></a></h2><ul><li><strong><a href="./MyOl.html">MyOl</a></strong>: 核心入口类,负责地图初始化和模块管理。</li><li><strong><a href="./Point.html">Point</a></strong>: 点位管理,支持图标、文本、聚合、高性能闪烁点等。</li><li><strong><a href="./Line.html">Line</a></strong>: 线条绘制,支持不同样式和动画。</li><li><strong><a href="./Polygon.html">Polygon</a></strong>: 多边形绘制,支持遮罩、热力图等。</li><li><strong><a href="./VueTemplatePoint.html">VueTemplatePoint</a></strong>: 使用 Vue 组件作为地图点位覆盖物。</li></ul><h2 id="工具模块" tabindex="-1">工具模块 <a class="header-anchor" href="#工具模块" aria-label="Permalink to "工具模块""></a></h2><ul><li><strong><a href="./MapTools.html">MapTools</a></strong>: 通用地图工具,如裁剪、定位、导出图片等。</li><li><strong><a href="./MeasureHandler.html">MeasureHandler</a></strong>: 距离和面积测量工具。</li><li><strong><a href="./SelectHandler.html">SelectHandler</a></strong>: 要素选择交互工具。</li><li><strong><a href="./MapBaseLayers.html">MapBaseLayers</a></strong>: 底图切换和管理。</li></ul><h2 id="基础设施" tabindex="-1">基础设施 <a class="header-anchor" href="#基础设施" aria-label="Permalink to "基础设施""></a></h2><ul><li><strong><a href="./ConfigManager.html">ConfigManager</a></strong>: 全局配置管理。</li><li><strong><a href="./EventManager.html">EventManager</a></strong>: 统一事件管理系统。</li><li><strong><a href="./ErrorHandler.html">ErrorHandler</a></strong>: 错误处理和日志系统。</li><li><strong><a href="./ValidationUtils.html">ValidationUtils</a></strong>: 参数验证工具。</li></ul><h2 id="贡献" tabindex="-1">贡献 <a class="header-anchor" href="#贡献" aria-label="Permalink to "贡献""></a></h2><p>欢迎提交 Issue 和 Pull Request!</p><h2 id="许可证" tabindex="-1">许可证 <a class="header-anchor" href="#许可证" aria-label="Permalink to "许可证""></a></h2><p>MIT License</p></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><!----></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/my-openlayer/MyOl.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Next page</span><span class="title" data-v-e257564d>MyOl 地图入口</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Released under the MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024-present</p></div></footer><!--[--><!--]--></div></div>
|
|
47
|
-
<script>window.__VP_HASH_MAP__=JSON.parse("{\"configmanager.md\":\"BOMdGTaa\",\"errorhandler.md\":\"yUiuJ9w9\",\"eventmanager.md\":\"BhCUVy1f\",\"index.md\":\"BJz6tHSr\",\"line.md\":\"BAQOzmSt\",\"mapbaselayers.md\":\"Bw0L_m0b\",\"maptools.md\":\"DaYgiDPe\",\"measurehandler.md\":\"7Sf4ymRv\",\"myol.md\":\"D-14Gzjy\",\"point.md\":\"Bi9juuuv\",\"polygon.md\":\"-JIqEvzD\",\"riverlayermanager.md\":\"CfUu2RxH\",\"selecthandler.md\":\"COR4ez_p\",\"validationutils.md\":\"ReTVWa73\",\"vuetemplatepoint.md\":\"CtxSb5Pm\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"MyOpenLayer\",\"description\":\"基于 OpenLayers 的现代地图组件库\",\"base\":\"/my-openlayer/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"nav\":[{\"text\":\"首页\",\"link\":\"/\"},{\"text\":\"指南\",\"link\":\"/MyOl\"},{\"text\":\"API\",\"link\":\"/MyOl\"},{\"text\":\"GitHub\",\"link\":\"https://github.com/cuteyuchen/my-openlayer\"}],\"sidebar\":[{\"text\":\"核心类库\",\"items\":[{\"text\":\"MyOl 地图入口\",\"link\":\"/MyOl\"},{\"text\":\"MapBaseLayers 底图管理\",\"link\":\"/MapBaseLayers\"},{\"text\":\"ConfigManager 配置管理\",\"link\":\"/ConfigManager\"},{\"text\":\"EventManager 事件管理\",\"link\":\"/EventManager\"},{\"text\":\"ErrorHandler 错误处理\",\"link\":\"/ErrorHandler\"}]},{\"text\":\"要素操作\",\"items\":[{\"text\":\"Point 点要素\",\"link\":\"/Point\"},{\"text\":\"Line 线要素\",\"link\":\"/Line\"},{\"text\":\"Polygon 面要素\",\"link\":\"/Polygon\"},{\"text\":\"VueTemplatePoint Vue点位\",\"link\":\"/VueTemplatePoint\"},{\"text\":\"RiverLayerManager 河流图层\",\"link\":\"/RiverLayerManager\"}]},{\"text\":\"交互与工具\",\"items\":[{\"text\":\"SelectHandler 要素选择\",\"link\":\"/SelectHandler\"},{\"text\":\"MeasureHandler 测量工具\",\"link\":\"/MeasureHandler\"},{\"text\":\"MapTools 地图工具\",\"link\":\"/MapTools\"},{\"text\":\"ValidationUtils 验证工具\",\"link\":\"/ValidationUtils\"}]}],\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/cuteyuchen/my-openlayer\"}],\"footer\":{\"message\":\"Released under the MIT License.\",\"copyright\":\"Copyright © 2024-present\"}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
|
|
48
|
-
|
|
49
|
-
</body>
|
|
50
|
-
</html>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.vpi-social-github{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}
|
package/types.d.ts
DELETED
|
@@ -1,431 +0,0 @@
|
|
|
1
|
-
import BaseLayer from "ol/layer/Base";
|
|
2
|
-
import TileLayer from "ol/layer/Tile";
|
|
3
|
-
import { WMTS } from "ol/source";
|
|
4
|
-
import View from "ol/View";
|
|
5
|
-
import Feature, { FeatureLike } from "ol/Feature";
|
|
6
|
-
import { Style } from "ol/style";
|
|
7
|
-
import VectorLayer from "ol/layer/Vector";
|
|
8
|
-
import VectorSource from "ol/source/Vector";
|
|
9
|
-
import MapBrowserEvent from "ol/MapBrowserEvent";
|
|
10
|
-
import { Units } from "ol/proj/Units";
|
|
11
|
-
export interface FeatureData {
|
|
12
|
-
type: string;
|
|
13
|
-
properties: any;
|
|
14
|
-
geometry: {
|
|
15
|
-
type: "Polygon" | "MultiPolygon" | "Point" | "LineString" | "MultiLineString" | "MultiPoint" | "GeometryCollection";
|
|
16
|
-
coordinates: any[];
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
export interface MapJSONData {
|
|
20
|
-
type: string;
|
|
21
|
-
name?: string;
|
|
22
|
-
features: FeatureData[];
|
|
23
|
-
}
|
|
24
|
-
type LayerItem = BaseLayer | TileLayer<WMTS>;
|
|
25
|
-
export interface MapInitType {
|
|
26
|
-
layers?: LayerItem[] | {
|
|
27
|
-
[key: string]: LayerItem[];
|
|
28
|
-
};
|
|
29
|
-
zoom?: number;
|
|
30
|
-
center?: number[];
|
|
31
|
-
view?: View;
|
|
32
|
-
minZoom?: number;
|
|
33
|
-
maxZoom?: number;
|
|
34
|
-
extent?: number[];
|
|
35
|
-
mapClipData?: MapJSONData;
|
|
36
|
-
token?: string;
|
|
37
|
-
annotation?: boolean;
|
|
38
|
-
enableLog?: boolean;
|
|
39
|
-
logLevel?: 'debug' | 'info' | 'warn' | 'error';
|
|
40
|
-
projection?: {
|
|
41
|
-
code: string;
|
|
42
|
-
def?: string;
|
|
43
|
-
extent?: number[];
|
|
44
|
-
worldExtent?: number[];
|
|
45
|
-
units?: Units;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
export type AnnotationType = 'cva_c' | 'cia_c' | 'cta_c';
|
|
49
|
-
export type TiandituType = 'vec_c' | 'img_c' | 'ter_c';
|
|
50
|
-
export interface MapLayers {
|
|
51
|
-
vec_c?: BaseLayer[];
|
|
52
|
-
img_c?: BaseLayer[];
|
|
53
|
-
ter_c?: BaseLayer[];
|
|
54
|
-
[key: string]: BaseLayer[] | undefined;
|
|
55
|
-
}
|
|
56
|
-
export interface MapLayersOptions {
|
|
57
|
-
layers?: BaseLayer[] | MapLayers;
|
|
58
|
-
zIndex?: number;
|
|
59
|
-
mapClip?: boolean;
|
|
60
|
-
mapClipData?: MapJSONData;
|
|
61
|
-
token?: string;
|
|
62
|
-
annotation?: boolean;
|
|
63
|
-
}
|
|
64
|
-
export interface AnnotationLayerOptions {
|
|
65
|
-
type: AnnotationType;
|
|
66
|
-
token: string;
|
|
67
|
-
zIndex?: number;
|
|
68
|
-
visible?: boolean;
|
|
69
|
-
}
|
|
70
|
-
export interface HeatMapOptions {
|
|
71
|
-
layerName?: string;
|
|
72
|
-
radius?: number;
|
|
73
|
-
blur?: number;
|
|
74
|
-
gradient?: string[];
|
|
75
|
-
opacity?: number;
|
|
76
|
-
visible?: boolean;
|
|
77
|
-
zIndex?: number;
|
|
78
|
-
valueKey?: string;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* 基础选项接口 - 所有图层的公共配置
|
|
82
|
-
*/
|
|
83
|
-
export interface BaseOptions {
|
|
84
|
-
/** 图层名称 */
|
|
85
|
-
layerName?: string;
|
|
86
|
-
/** 图层层级 */
|
|
87
|
-
zIndex?: number;
|
|
88
|
-
/** 图层可见性 */
|
|
89
|
-
visible?: boolean;
|
|
90
|
-
/** 图层透明度 */
|
|
91
|
-
opacity?: number;
|
|
92
|
-
/** 是否适应视图 */
|
|
93
|
-
fitView?: boolean;
|
|
94
|
-
/** 地图裁剪 */
|
|
95
|
-
mapClip?: boolean;
|
|
96
|
-
/** 地图裁剪数据 */
|
|
97
|
-
mapClipData?: MapJSONData;
|
|
98
|
-
/** 投影选项 */
|
|
99
|
-
projectionOptOptions?: any;
|
|
100
|
-
/** 自定义样式函数 */
|
|
101
|
-
style?: Style | Style[] | ((feature: FeatureLike) => Style | Style[]);
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* 样式选项接口 - 图形样式相关配置
|
|
105
|
-
*/
|
|
106
|
-
export interface StyleOptions {
|
|
107
|
-
/** 描边颜色 */
|
|
108
|
-
strokeColor?: string | number[];
|
|
109
|
-
/** 描边宽度 */
|
|
110
|
-
strokeWidth?: number;
|
|
111
|
-
/** 线条虚线样式 */
|
|
112
|
-
lineDash?: number[];
|
|
113
|
-
/** 线条虚线偏移 */
|
|
114
|
-
lineDashOffset?: number;
|
|
115
|
-
/** 填充颜色 */
|
|
116
|
-
fillColor?: string;
|
|
117
|
-
/** 填充颜色回调函数 */
|
|
118
|
-
fillColorCallBack?: (feature: Feature) => string;
|
|
119
|
-
/** 是否使用默认描边 */
|
|
120
|
-
withDefaultStroke?: boolean;
|
|
121
|
-
/** 是否使用默认填充 */
|
|
122
|
-
withDefaultFill?: boolean;
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* 文本选项接口 - 文本标注相关配置
|
|
126
|
-
*/
|
|
127
|
-
export interface TextOptions {
|
|
128
|
-
/** 文本可见性 */
|
|
129
|
-
textVisible?: boolean;
|
|
130
|
-
/** 文本内容回调函数 */
|
|
131
|
-
textCallBack?: (feature: Feature) => string;
|
|
132
|
-
/** 文本字体 */
|
|
133
|
-
textFont?: string;
|
|
134
|
-
/** 文本填充颜色 */
|
|
135
|
-
textFillColor?: string;
|
|
136
|
-
/** 文本描边颜色 */
|
|
137
|
-
textStrokeColor?: string;
|
|
138
|
-
/** 文本描边宽度 */
|
|
139
|
-
textStrokeWidth?: number;
|
|
140
|
-
/** 文本Y轴偏移 */
|
|
141
|
-
textOffsetY?: number;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* 点位选项接口 - 点位图层专用配置
|
|
145
|
-
*/
|
|
146
|
-
export interface PointOptions extends BaseOptions, StyleOptions, TextOptions {
|
|
147
|
-
/** 文本字段键 */
|
|
148
|
-
textKey?: string;
|
|
149
|
-
/** 图标图片 */
|
|
150
|
-
img?: string;
|
|
151
|
-
/** 图标缩放比例 */
|
|
152
|
-
scale?: number;
|
|
153
|
-
/** 图标颜色 */
|
|
154
|
-
iconColor?: string;
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* 线条选项接口 - 线条图层专用配置
|
|
158
|
-
*/
|
|
159
|
-
export interface LineOptions extends BaseOptions, StyleOptions, TextOptions {
|
|
160
|
-
/** 线条类型 */
|
|
161
|
-
type?: string;
|
|
162
|
-
}
|
|
163
|
-
/**
|
|
164
|
-
* 多边形选项接口 - 多边形图层专用配置
|
|
165
|
-
*/
|
|
166
|
-
export interface PolygonOptions extends BaseOptions, StyleOptions, TextOptions {
|
|
167
|
-
/** 文本字段键 */
|
|
168
|
-
textKey?: string;
|
|
169
|
-
/** 是否为蒙版 */
|
|
170
|
-
mask?: boolean;
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* 兼容性类型别名 - 保持向后兼容
|
|
174
|
-
* @deprecated 请使用具体的选项接口:PointOptions, LineOptions, PolygonOptions
|
|
175
|
-
*/
|
|
176
|
-
export type OptionsType = BaseOptions & StyleOptions & TextOptions & {
|
|
177
|
-
textKey?: string;
|
|
178
|
-
img?: string;
|
|
179
|
-
scale?: number;
|
|
180
|
-
iconColor?: string;
|
|
181
|
-
type?: string;
|
|
182
|
-
mask?: boolean;
|
|
183
|
-
};
|
|
184
|
-
/**
|
|
185
|
-
* 图片图层数据接口
|
|
186
|
-
*/
|
|
187
|
-
export interface ImageLayerData {
|
|
188
|
-
img?: string;
|
|
189
|
-
extent?: number[];
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* 蒙版图层配置接口
|
|
193
|
-
*/
|
|
194
|
-
export interface MaskLayerOptions {
|
|
195
|
-
extent?: any;
|
|
196
|
-
fillColor?: string;
|
|
197
|
-
strokeWidth?: number;
|
|
198
|
-
strokeColor?: string;
|
|
199
|
-
zIndex?: number;
|
|
200
|
-
opacity?: number;
|
|
201
|
-
visible?: boolean;
|
|
202
|
-
layerName?: string;
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* 要素颜色更新选项接口
|
|
206
|
-
*/
|
|
207
|
-
export interface FeatureColorUpdateOptions extends BaseOptions, StyleOptions, TextOptions {
|
|
208
|
-
/** 文本字段键 */
|
|
209
|
-
textKey?: string;
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* 点位数据接口
|
|
213
|
-
*/
|
|
214
|
-
export interface PointData {
|
|
215
|
-
lgtd: number;
|
|
216
|
-
lttd: number;
|
|
217
|
-
[key: string]: any;
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* 线数据接口
|
|
221
|
-
*/
|
|
222
|
-
export interface LineData {
|
|
223
|
-
type: string;
|
|
224
|
-
coordinates: number[][];
|
|
225
|
-
[key: string]: any;
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* 聚合选项接口
|
|
229
|
-
*/
|
|
230
|
-
export interface ClusterOptions extends PointOptions {
|
|
231
|
-
/** 聚合距离 */
|
|
232
|
-
distance?: number;
|
|
233
|
-
/** 最小聚合距离 */
|
|
234
|
-
minDistance?: number;
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* 高性能闪烁点图层图标配置。
|
|
238
|
-
*/
|
|
239
|
-
export interface PulsePointIconOptions {
|
|
240
|
-
/** 图标地址 */
|
|
241
|
-
src?: string;
|
|
242
|
-
/** 图标缩放比例 */
|
|
243
|
-
scale?: number;
|
|
244
|
-
/** 图标染色 */
|
|
245
|
-
color?: string;
|
|
246
|
-
/** 未使用图片时的矢量圆点半径,默认 5 */
|
|
247
|
-
radius?: number;
|
|
248
|
-
/** 未使用图片时的矢量圆点填充色,默认 #06b7fd */
|
|
249
|
-
fillColor?: string;
|
|
250
|
-
/** 未使用图片时的矢量圆点描边色,默认 #ffffff */
|
|
251
|
-
strokeColor?: string;
|
|
252
|
-
/** 未使用图片时的矢量圆点描边宽度,默认 2 */
|
|
253
|
-
strokeWidth?: number;
|
|
254
|
-
}
|
|
255
|
-
/**
|
|
256
|
-
* 高性能闪烁点图层配置。
|
|
257
|
-
*/
|
|
258
|
-
export interface PulsePointOptions extends PointOptions {
|
|
259
|
-
/** 点位等级字段,默认 lev */
|
|
260
|
-
levelKey?: string;
|
|
261
|
-
/** 点位中心图标。优先使用与 addPoint 一致的 img/scale/iconColor;该字段用于高级兜底配置 */
|
|
262
|
-
icon?: PulsePointIconOptions;
|
|
263
|
-
/** 闪烁圈配置 */
|
|
264
|
-
pulse?: {
|
|
265
|
-
/** 是否启用闪烁圈,默认 true */
|
|
266
|
-
enabled?: boolean;
|
|
267
|
-
/** 单轮动画时长,单位 ms,默认 2400 */
|
|
268
|
-
duration?: number;
|
|
269
|
-
/** 闪烁圈最小/最大半径,默认 [8, 26] */
|
|
270
|
-
radius?: [number, number];
|
|
271
|
-
/** 等级颜色映射 */
|
|
272
|
-
colorMap?: Record<string | number, string>;
|
|
273
|
-
/** 描边颜色映射 */
|
|
274
|
-
strokeColorMap?: Record<string | number, string>;
|
|
275
|
-
/** 描边宽度,默认 0 */
|
|
276
|
-
strokeWidth?: number;
|
|
277
|
-
/** 动画分帧缓存数量,默认 24 */
|
|
278
|
-
frameCount?: number;
|
|
279
|
-
};
|
|
280
|
-
}
|
|
281
|
-
/**
|
|
282
|
-
* 高性能闪烁点图层句柄。
|
|
283
|
-
*/
|
|
284
|
-
export interface PulsePointLayerHandle {
|
|
285
|
-
layer: VectorLayer<VectorSource>;
|
|
286
|
-
source: VectorSource;
|
|
287
|
-
start: () => void;
|
|
288
|
-
stop: () => void;
|
|
289
|
-
setVisible: (visible: boolean) => void;
|
|
290
|
-
updateData: (data: PointData[]) => void;
|
|
291
|
-
remove: () => void;
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* 闪烁点数据接口
|
|
295
|
-
*/
|
|
296
|
-
export interface TwinkleItem extends PointData {
|
|
297
|
-
className?: string;
|
|
298
|
-
/** 自定义DOM元素,可以是HTMLElement或者返回HTMLElement的函数 */
|
|
299
|
-
element?: HTMLElement | ((item: TwinkleItem) => HTMLElement);
|
|
300
|
-
[key: string]: any;
|
|
301
|
-
}
|
|
302
|
-
/**
|
|
303
|
-
* 测量处理器类型
|
|
304
|
-
*/
|
|
305
|
-
export type MeasureHandlerType = 'LineString' | 'Polygon';
|
|
306
|
-
/**
|
|
307
|
-
* 事件类型
|
|
308
|
-
*/
|
|
309
|
-
export type EventType = 'click' | 'hover' | 'moveend';
|
|
310
|
-
/**
|
|
311
|
-
* Vue实例接口
|
|
312
|
-
*/
|
|
313
|
-
export interface VueInstance {
|
|
314
|
-
mount(element: Element | string): VueInstance;
|
|
315
|
-
unmount?(): void;
|
|
316
|
-
$destroy?(): void;
|
|
317
|
-
[key: string]: any;
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* Vue应用接口
|
|
321
|
-
*/
|
|
322
|
-
export interface VueApp {
|
|
323
|
-
mount(element: Element | string): VueInstance;
|
|
324
|
-
unmount(): void;
|
|
325
|
-
[key: string]: any;
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* Vue 2.x 实例接口
|
|
329
|
-
*/
|
|
330
|
-
export interface VueLegacyInstance {
|
|
331
|
-
$mount(element?: Element | string): VueLegacyInstance;
|
|
332
|
-
$destroy(): void;
|
|
333
|
-
[key: string]: any;
|
|
334
|
-
}
|
|
335
|
-
/**
|
|
336
|
-
* DOM点位状态枚举
|
|
337
|
-
*/
|
|
338
|
-
export declare enum VueTemplatePointState {
|
|
339
|
-
CREATED = "created",
|
|
340
|
-
MOUNTED = "mounted",
|
|
341
|
-
VISIBLE = "visible",
|
|
342
|
-
HIDDEN = "hidden",
|
|
343
|
-
DESTROYED = "destroyed"
|
|
344
|
-
}
|
|
345
|
-
/**
|
|
346
|
-
* Vue模板点位选项接口
|
|
347
|
-
*/
|
|
348
|
-
export interface VueTemplatePointOptions {
|
|
349
|
-
Template: any;
|
|
350
|
-
lgtd: number;
|
|
351
|
-
lttd: number;
|
|
352
|
-
props?: any;
|
|
353
|
-
styleType?: 'default' | 'custom';
|
|
354
|
-
positioning?: 'bottom-left' | 'bottom-center' | 'bottom-right' | 'center-left' | 'center-center' | 'center-right' | 'top-left' | 'top-center' | 'top-right';
|
|
355
|
-
stopEvent?: boolean;
|
|
356
|
-
visible?: boolean;
|
|
357
|
-
className?: string;
|
|
358
|
-
zIndex?: number;
|
|
359
|
-
}
|
|
360
|
-
/**
|
|
361
|
-
* Vue模板点位实例接口
|
|
362
|
-
*/
|
|
363
|
-
export interface VueTemplatePointInstance {
|
|
364
|
-
id: string;
|
|
365
|
-
dom: HTMLElement;
|
|
366
|
-
anchor: any;
|
|
367
|
-
app: VueApp | VueLegacyInstance | null;
|
|
368
|
-
state: VueTemplatePointState;
|
|
369
|
-
position: number[];
|
|
370
|
-
options: VueTemplatePointOptions;
|
|
371
|
-
setVisible(visible: boolean): void;
|
|
372
|
-
updatePosition(lgtd: number, lttd: number): void;
|
|
373
|
-
updateProps(newProps: Record<string, any>): void;
|
|
374
|
-
setStyle(styles: Partial<CSSStyleDeclaration>): void;
|
|
375
|
-
addClass(className: string): void;
|
|
376
|
-
removeClass(className: string): void;
|
|
377
|
-
remove(): void;
|
|
378
|
-
getState(): VueTemplatePointState;
|
|
379
|
-
getOptions(): Readonly<VueTemplatePointOptions>;
|
|
380
|
-
isDestroyed(): boolean;
|
|
381
|
-
}
|
|
382
|
-
/**
|
|
383
|
-
* 选择模式类型
|
|
384
|
-
*/
|
|
385
|
-
export type SelectMode = 'click' | 'hover' | 'ctrl';
|
|
386
|
-
/**
|
|
387
|
-
* 选择回调事件接口
|
|
388
|
-
*/
|
|
389
|
-
export interface SelectCallbackEvent {
|
|
390
|
-
/** 新选中的要素数组 */
|
|
391
|
-
selected: FeatureLike[];
|
|
392
|
-
/** 取消选中的要素数组 */
|
|
393
|
-
deselected: FeatureLike[];
|
|
394
|
-
/** 地图浏览器事件 */
|
|
395
|
-
mapBrowserEvent: MapBrowserEvent<any>;
|
|
396
|
-
}
|
|
397
|
-
/**
|
|
398
|
-
* 要素选择配置选项
|
|
399
|
-
*/
|
|
400
|
-
export interface SelectOptions {
|
|
401
|
-
/** 是否支持多选,默认 false */
|
|
402
|
-
multi?: boolean;
|
|
403
|
-
/** 图层过滤器,指定可选择的图层名称列表 */
|
|
404
|
-
layerFilter?: string[];
|
|
405
|
-
/** 要素过滤器函数 */
|
|
406
|
-
featureFilter?: (feature: FeatureLike) => boolean;
|
|
407
|
-
/** 点击容差(像素),默认为 0 */
|
|
408
|
-
hitTolerance?: number;
|
|
409
|
-
/** 选中要素的样式 */
|
|
410
|
-
selectStyle?: Style | Style[] | ((feature: FeatureLike) => Style | Style[]);
|
|
411
|
-
/** 选中要素时的回调函数 */
|
|
412
|
-
onSelect?: (event: SelectCallbackEvent) => void;
|
|
413
|
-
/** 取消选中要素时的回调函数 */
|
|
414
|
-
onDeselect?: (event: SelectCallbackEvent) => void;
|
|
415
|
-
}
|
|
416
|
-
/**
|
|
417
|
-
* 编程式选择选项接口
|
|
418
|
-
*/
|
|
419
|
-
export interface ProgrammaticSelectOptions {
|
|
420
|
-
/** 图层名称,指定在哪个图层中选择要素 */
|
|
421
|
-
layerName?: string;
|
|
422
|
-
/** 自定义选中样式(仅作用于此次选择) */
|
|
423
|
-
selectStyle?: Style | Style[] | ((feature: FeatureLike) => Style | Style[]);
|
|
424
|
-
/** 是否定位至选中要素,默认 false */
|
|
425
|
-
fitView?: boolean;
|
|
426
|
-
/** 定位动画持续时间(毫秒),默认 500 */
|
|
427
|
-
fitDuration?: number;
|
|
428
|
-
/** 定位时的边距(像素),默认 100 */
|
|
429
|
-
fitPadding?: number;
|
|
430
|
-
}
|
|
431
|
-
export {};
|