赞
踩
发现大家对这个需求还是蛮大的,特意回来整理一下,前面格式有点乱,方便大伙快速定位自己所需要的。
相信能找到这里的,基本的安装下包等等操作是没有问题的,所以先把特别需要注意的点讲一下,大部分人都踩了这个坑。
iclient-ol是超图对ol的封装,对ol库进行了超图数据源的适配,是基于百分之九十ol库基座的封装地图库,所以iclient-ol自带ol,再说的直白一些,安装iclient-ol,node_module里面会同时有ol文件夹以及iclient-ol超图资源文件夹。
因为iclient-ol自带版本号,每一个库都自带版本号,并且一旦稳定后不会做更新,而iclient-ol的稳定版必然是基于ol的某一个稳定版,也对应一个版本号,这个版本号会在iclient-ol库的lock锁文件中进行锁定。如果你再装一个ol,一般人装库都是yarn add ol,这样装的都是最新版,所以版本不一致起冲突。
我的环境是:
如果你和我的不一样也无妨,这一点也不重要,我说的!
yarn add @supermap/iclient-ol
这一步请取舍,取决于你的webpack版本,webpack5+请执行下面命令,不是webpack5+的不用装哈,webpack5+的如果不装会报错
因为webpack5以后走轻量路线了朋友们,隔壁的vite太猛了,导致webpack危机感不是一点点,也走轻量路线,取消了nodejs核心模块的polyfill自动引入,所以需要手动引入。
yarn add node-polyfill-webpack-plugin -D
在写之前在index.html加一下样式
- <link href='https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.4.3/css/ol.css'
- rel='stylesheet' />
-
- <link href='https://iclient.supermap.io/dist/ol/iclient-ol.min.css' rel='stylesheet' />
代码直接贴上
这里简单提一下ol的引入方式,有的小伙伴会对iclient-ol的按需导入有些疑问,其实完全不需要,ol的内容该怎么引入照旧,上面说了,装了iclient-ol等同于装了ol以及附加一个超图库(一些数据源适配对接)。以下面代码为例, 加载切片地图仍然是用new TileLayer的写法,但是source就有所变化,不再是ol带的ol.source.Tile,而是TileSuperMapRest,这里看似是新类,其实只是简单地对ol.source.Tile类进行超图切片信息适配封装,感兴趣的可以去看看源码,不知道在哪里或者说不知道怎么看的可以留言或者私信我。
- <template>
- <div id="map"></div>
- </template>
-
- <script>
- import Map from "ol/Map";
- import View from "ol/View";
- import TileLayer from "ol/layer/Tile";
- import * as control from "ol/control";
- import { Logo, TileSuperMapRest } from "@supermap/iclient-ol";
- export default {
- mounted() {
- var url =
- "https://iserver.supermap.io/iserver/services/map-world/rest/maps/World";
- var map = new Map({
- target: "map",
- controls: control
- .defaults({ attributionOptions: { collapsed: false } })
- .extend([new Logo()]),
- view: new View({
- center: [0, 0],
- zoom: 2,
- projection: "EPSG:4326",
- }),
- });
- var layer = new TileLayer({
- source: new TileSuperMapRest({
- url: url,
- wrapX: true,
- }),
- projection: "EPSG:4326",
- });
- map.addLayer(layer);
- },
- };
- </script>
-
- <style>
- #map{
- height: 100%;
- }
- </style>
最后希望国产GIS能越做越好,一枚成长型GISer,对supermap接触较多,有问题可以多提问多交流。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。