tip:2022.11.18更新

发现大家对这个需求还是蛮大的,特意回来整理一下,前面格式有点乱,方便大伙快速定位自己所需要的。

说在前面:

        相信能找到这里的,基本的安装下包等等操作是没有问题的,所以先把特别需要注意的点讲一下,大部分人都踩了这个坑。

请不要同时安装iclient-ol和ol

          为什么不同时安装?

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,这样装的都是最新版,所以版本不一致起冲突。

具体操作步骤

1.环境准备

我的环境是:

  • vuecli-3x 也就是  vue create projectname方式
  • 包管理工具是yarn  yarn add  xxx
  • webpack 5+(这个关系到后面的一个包)

如果你和我的不一样也无妨,这一点也不重要,我说的!

2.安装@supermap/iclient-ol

yarn add  @supermap/iclient-ol

3.引入polyfill库解析语法

这一步请取舍,取决于你的webpack版本,webpack5+请执行下面命令,不是webpack5+的不用装哈,webpack5+的如果不装会报错

因为webpack5以后走轻量路线了朋友们,隔壁的vite太猛了,导致webpack危机感不是一点点,也走轻量路线,取消了nodejs核心模块的polyfill自动引入,所以需要手动引入。

yarn add node-polyfill-webpack-plugin -D

4.引入超图样式

在写之前在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' />

5.测试代码

代码直接贴上

这里简单提一下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接触较多,有问题可以多提问多交流。

vue加载supermap iclcent-ol (iclient for openlayer)相关推荐

  1. Vue 加载 SVG 图片文件

    Vue 加载 SVG 图片文件 /svg/icons.js export default {// LOGOlogo: require('./logo.svg'),logo_content: requi ...

  2. vue 加载image图片不显示解决

    vue 加载image图片不显示解决------------写了个vue的demo(自己做一个表格,可以横向增加列也可以纵向增加行)想给demo加图片怎么都出不来,,,,,查图片太大?加载位置不对?配 ...

  3. vue加载视频流,实现直播功能

    文章目录 前言 一.视频流是什么? 二.vue加载rtmp视频流 1.方法一:video.js 2.方法二:ckplayer 三.vue加载hls视频流 1.index.html中 2.video-p ...

  4. vue.js 动态加载 html,Vue加载组件、动态加载组件的几种方式

    什么是组件: 组件是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.在较高层面上,组件是自定义的元素,Vue.js的编译器为它添加特殊功能.在有些情况下,组件也可以是原生HT ...

  5. electron+vue加载本地wav音频资源失败

    解决electron+vue加载本地音频失败 1.下载electron-vue程序 vue init simulatedgreg/electron my-project cd my-project n ...

  6. vue加载服务器json文件,Vue加载json文件的方法简单示例

    本文实例讲述了Vue加载json文件的方法.分享给大家供大家参考,具体如下: 一.在build/dev-server.js文件里 var app = express() 这句代码后面添加如下(旧版): ...

  7. vue 加载页面时触发时间_解析Vue项目的四个方面优化

    在本篇文章里我们给大家整理了一篇关于优化VUE项目的四个总要点,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. 运行时优化 1.使用v-if代替v ...

  8. dom vue 加载完 执行_前端面试题——Vue

    前言 前几天整理了一些 html + css + JavaScript 常见的面试题(https://segmentfault.com/u/youdangde_5c8b208a23f95/articl ...

  9. vue 加载体验优化

    2019独角兽企业重金招聘Python工程师标准>>> 网络查询收集: 1.路由懒加载 // 需要ES6支持 const HelloWorld = () => import(' ...

最新文章

  1. 【Android基础】 Launch Mode
  2. Linux 系统调用(二)——使用内核模块添加系统调用(无需编译内核)
  3. Appium+python的单元测试框架unittest(2)——fixtures(转)
  4. BZOJ3110: [Zjoi2013]K大数查询(整体二分)
  5. PingingLab传世经典系列《CCNA完全配置宝典》-2.7 EIGRP基本配置
  6. javascript-练习-数组数据存li中
  7. css阵列,CSS3简单的圆点阵列旋转加载动画
  8. 计算机右键管理快捷键,鼠标右键菜单管理
  9. 离散数学 —— 二元关系(恒等关系、关系图与关系矩阵、复合关系、自反与反自反、对称与反对称、传递性、闭包、等价类、商集、集合的划分、序关系、哈斯图、上下界函数)
  10. 将两个字符串连接起来,不要用strcat函数
  11. 记录mysql中如何统计日周月季度年
  12. Thrift交流(二)thrift服务端和客户端实现 Nifty
  13. 关于出现Merge remote-tracking branch ‘origin/develop‘ into develop这种commit记录的原因
  14. Deepin双系统找不到Windows启动项
  15. 推荐这三款亲测好用的ai工具
  16. html正则表达式判断手机号,js正则表达式根据手机号判断校验运营商
  17. 【读书笔记】《能力陷阱》——改变思想从行动开始
  18. 手动实现promise基础功能代码并测试自己写的promise库是否符合规范
  19. [HCTF 2018] WarmUp
  20. (九十三) Android O 连接WiFi AP流程梳理续——保存网络

热门文章

  1. 分析了 6000 款 App,竟有这么多佳软神器没用过
  2. es不建议模糊搜索_工作中的Elasticsearch-模糊检索
  3. 微信小程序如何获取附近停车场位置信息
  4. 阿里重磅开源在线分析诊断工具Arthas(阿尔萨斯)
  5. 兔子繁殖问题,兔子有寿命限制
  6. 乐高机器人走进图书馆活动方案_乐高机器人进校园 ——科技实践活动方案
  7. js单击、双击、连续多次点击
  8. IDEA如何打war包
  9. 手绘图说电子元器件-晶体管
  10. 婚恋交友app源码,如何自定义线程池