然后就可以了,项目里面就成功的添加了 SuperMap。

但是有一个问题哈,就是项目ES6的语法能不能转为ES5的,这个可能需要配置一下,不然后期的项目在使用超图加载数据的时候会哐哐报错。

在 webpack.base.conf.js 文件中加入 supermap 的转换。

{

test: /.js$/,

loader: ‘babel-loader’,

include: [resolve(‘src’), resolve(‘test’), resolve(‘node_modules/webpack-dev-server/client’), resolve(‘node_modules/@supermap’)]

},

这样应该就没有问题了,然后二维的相对简单,我们简单来一个案例。

超图二维案例


引库

首先在需要使用超图的页面引入一些库。

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’;

这些库是根据官网文档里面给的引入的,也就是OpenLayers API文档

具体引入什么库,我们可以根据需要,从官网上去抄几个案例,然后案例上面用到的库,我们就可以去 OpenLayers API文档里面对应的去查。

比如说在官网的案例里面有这样一段代码, var layer = new ol.layer.Tile 不知道转换成vue应该引入什么库的时候,我们可以去opealayers查一下。

在这里插入图片描述

就是类似这样查。

HTML

接来编写一个html用来展示地图。

TS

然后是 ts 代码。

var url = “https://iserver.supermap.io/iserver/services/map-world/rest/maps/World”;

this.map = new Map({

target: ‘map’,

controls: control.defaults({ attributionOptions: { collapsed: false } }).extend([new Logo()]),

view: new View({

center: [106.86, 39.71],

// maxZoom: 18,

// minZoom: 2,

zoom: 5,

projection: ‘EPSG:4326’,

})

});

var layer = new TileLayer({

source: new TileSuperMapRest({

url: url,

wrapX: true

}),

projection: ‘EPSG:4326’

});

this.map.addLayer(layer);

然后二维的就可以正常显示出来了。

在这里插入图片描述

如果需要其他的功能可以去官网案例查看,直接拿过来使用,但是需要将js代码转换成vue的语法,ok!

vue 引入 3D 超图


3D的话稍微费劲一些,可以参考一下超图3D文档。官网上使用的都是js的方式,vue安装的话需要一个包,这个自己可以找时间下载一下子。

包的下载位置

在这里插入图片描述

下载下来之后,我把他放进了 static 文件夹下面。

在这里插入图片描述

然后在 index.html 中引入 widgets.css、Cesium.js 和 zlib.min.js 文件。

在这里插入图片描述

然后就没有了,直接在需要使用超图3D的界面编写就可以了,同样,可以参照超图3D官网提供的3D案例进行测试,需要将js代码转换为vue的代码。

这里呢,我就简单介绍几个图层引入的demo吧,还是需要一个div用来展示地图,忘记说了, 这个div一定要记得设置宽度和高度哈,不然的话可能显示不出来,切记切记!

然后是ts代码,这个不需要像二维一样引入这种各样的库,直接编码就行。

简单的,创建一个三维的地球

var viewer = new Cesium.Viewer(‘map’)

就这一行代码,如果可以显示一个三维地球的话,就说明引入的成功,没有问题,可以继续向下开发了。

在这里插入图片描述

然后详细的代码我就不分享了,需要的话从案例上面找着转换。

我分享一下常见的几种图层的引入吧,其实官网也有说过,我都测试过,所以说直接给大家看一下。

第一种导入地形图和影像

比如说我要导入北京某一个地方的GIS信息,想百度只能看平面图,那是二维的,看不到高度,但是超图引入地形图之后可以看到地势信息,比如说高度之类的,这个时候我们需要一个某区域地形的链接,还有这个区域的影像链接,然后地形在下面,具有高度,把铺在上面的影像地图给支棱起来,我应该说明白了是吧?代码如下:

添加地形图

var viewer = new Cesium.Viewer(‘map’, {

//创建地形服务提供者的实例,url为SuperMap iServer发布的TIN地形服务

terrainProvider: new Cesium.CesiumTerrainProvider({

url: ‘http://localhost:8090/iserver/services/3D-DiXing/rest/realspace/datas/地形_Terrain’, // 加载地形图,是datas下面的链接

isSct: true,//地形服务源自SuperMap iServer发布时需设置isSct为true

invisibility: true

}),

});

添加影像

// 添加底层影像

var layer = new Cesium.SuperMapImageryProvider({

url: ‘http://localhost:8090/iserver/services/YingXiang/rest/maps/影像底图’ //影像服务的地址 rest格式

});

var imgLayer = this.viewer.imageryLayers.addImageryProvider(layer)

这样的话,地形和影像就加载进去了。

然后可以定位一下相机位置,就是我们一加载时候看哪个部分,不然看到的是一个地球,需要我们自己放大找。

// 简单定义相机视角位置

this.scene.camera.setView({

destination: Cesium.Cartesian3.fromDegrees(108.19, 40.39, 1000000)

});

然后第一种地图加载就可以了。

加载 S3M 图层

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。

《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》PDF完整版点击这里领取

前端面试题宝典

前端校招面试题详解

https://i-blog.csdnimg.cn/blog_migrate/757b97aaea22516bda47b7a98ff77f8f.jpeg" />

最后

整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。

《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》PDF完整版点击这里领取

[外链图片转存中…(img-vtgw9PNQ-1712508679331)]

[外链图片转存中…(img-pb3xM814-1712508679332)]

[外链图片转存中…(img-nLDhHo2k-1712508679332)]

GitHub 加速计划 / vu / vue
100
18
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:18 天前 )
9e887079 [skip ci] 11 个月前
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 1 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐