上一篇讲了 如何利用geoserver 发布矢量切片,接下来我们说 如何去展示,既然做我们就作全面吧,谁让我们gis 就是这么苦逼呢,哈哈。

环境:

geoserver 2.21

vue 2.0

openlayers 6.14

leaflet 1.8

上一篇地址:geoserver 发布矢量切片流程geoserver 发布 矢量切片(pbf)并用openlayers 6.14 /leaflet 1.8 加载展示 (一)(小白必备:超详细教程)

下一篇地址:leaflet加载展示

geoserver 发布 矢量切片(pbf)并用openlayers 6.14 /leaflet 1.8 加载展示 (三)(小白必备:超详细教程)_Giser_往事随风的博客-CSDN博客

二、openlayers 加载geoserver 发布的矢量切片(pbf) 进行前端展示

这里使用的是vue 2的框架哈,老规矩先引入依赖,自己百度吧,我懒得写了。

然后直接放源码吧,懒得叙述了,没啥好说的,不过我看网上有的是直接拿我上一篇获得的地址

http://localhost:7777/geoserver/gwc/service/tms/1.0.0/testXXX%3Ahefei_xiang@EPSG%3A4326@pbf

进行加载的,如下图:

不过我测试的有点问题,等后面在说吧。这里我取了个巧,直接看geoserver 预览页面里面的源码去做的

找到上篇介绍的预览窗口页面,点击预览,打开控制台,就可以看到geoservre 是如何用openlayers 加载的了。然后拿过来自己改成vue 的加载方式,搞定。下面放源码。

<template><div id="olMap"></div>
</template><script>
import "ol/ol.css";
import { Map, View } from "ol";
import TileLayer from "ol/layer/Tile";
import OSM from "ol/source/OSM";
import WMTSTileGrid from 'ol/tilegrid/WMTS'
import {Projection} from 'ol/proj'
import MVT from 'ol/format/MVT';
import VectorTileLayer from 'ol/layer/VectorTile';
import VectorTileSource from "ol/source/VectorTile";
export default {name: 'OlVectorTiles',data() {return {map: null,baseUrl: 'http://localhost:7777/geoserver/gwc/service/wmts',params: null,gridsetName: null};},mounted() {     //可以出来结果this.gridsetName = 'EPSG:4326',this.params = {'REQUEST': 'GetTile','SERVICE': 'WMTS','VERSION': '1.0.0','LAYER': 'testXXX:hefei_xiang','STYLE': '','TILEMATRIX': this.gridsetName + ':{z}','TILEMATRIXSET': this.gridsetName,'FORMAT': 'application/vnd.mapbox-vector-tile','TILECOL': '{x}','TILEROW': '{y}'};//切片名let matrixIds = ['EPSG:4326:0', 'EPSG:4326:1', 'EPSG:4326:2', 'EPSG:4326:3','EPSG:4326:4', 'EPSG:4326:5', 'EPSG:4326:6', 'EPSG:4326:7', 'EPSG:4326:8','EPSG:4326:9', 'EPSG:4326:10', 'EPSG:4326:11', 'EPSG:4326:12', 'EPSG:4326:13','EPSG:4326:14', 'EPSG:4326:15', 'EPSG:4326:16', 'EPSG:4326:17', 'EPSG:4326:18','EPSG:4326:19', 'EPSG:4326:20', 'EPSG:4326:21'];//分辨率let resolutions = [0.703125, 0.3515625, 0.17578125, 0.087890625, 0.0439453125,0.02197265625, 0.010986328125, 0.0054931640625, 0.00274658203125, 0.001373291015625,6.866455078125E-4, 3.4332275390625E-4, 1.71661376953125E-4, 8.58306884765625E-5,4.291534423828125E-5, 2.1457672119140625E-5, 1.0728836059570312E-5, 5.364418029785156E-6,2.682209014892578E-6, 1.341104507446289E-6, 6.705522537231445E-7, 3.3527612686157227E-7];//底图let tileOSM = new TileLayer({source: new OSM()});//切片策略let tileGrid = new WMTSTileGrid({tileSize: [256,256],extent: [-180.0,-90.0,180.0,90.0],  //范围origin: [-180.0, 90.0],   //切片原点resolutions: resolutions,   //分辨率matrixIds: matrixIds    //层级标识列表,与地图级数保持一致});//设置地图投影let projection = new Projection({code: 'EPSG:4326',units: 'degrees',axisOrientation: 'neu'});let vectorSource = new VectorTileSource({url: this.urlConstruct(),format: new MVT({}),projection: projection,tileGrid: tileGrid});let vectorLayer = new VectorTileLayer({source: vectorSource,wrapX:false,});let views = new View({center: [117.28, 31.86],projection: projection,zoom: 6,resolutions: resolutions,extent: [-180.0,-90.0,180.0,90.0]});this.map = new Map({layers: [tileOSM, vectorLayer],view: views,target: 'olMap',});},methods:{urlConstruct(){let url = this.baseUrl + '?';for (let param in this.params){url = url + param + '=' + this.params[param] + '&';}url = url.slice(0, -1);return url;}}
};
</script><style>
#olMap{height:100%;width: 100%;
}
/*隐藏ol的一些自带元素*/
.ol-attribution,.ol-zoom { display: none;}</style>

如果你是geojson数据,先引入格式

import {GeoJSON} from 'ol/format'

然后把下面的地方改下就行

改为下面这个。

  'FORMAT': 'application/json;type=geojson',
  format: new GeoJSON({}),    //切片格式

我发现我这种方式加载的有点意思,更好扩展呢,只要改这两个参数就行了,网上写的可能更有针对性吧。哈哈。

下一篇:leaflet 加载 geoserver 发布的矢量切片(pbf)

geoserver 发布 矢量切片(pbf)并用openlayers 6.14 /leaflet 1.8 加载展示 (二)(小白必备:超详细教程)相关推荐

  1. geoserver 发布 矢量切片(pbf)并用openlayers 6.14 /leaflet 1.8 加载展示 (三)(小白必备:超详细教程)

    前两篇分别讲了 如何利用geoserver 发布矢量切片和openlayers 加载.接下来我们说 如何用leaflet 展示,既然做我们就作全面吧,谁让我们gis 就是这么苦逼呢,哈哈. 环境: g ...

  2. geoserver 发布 矢量切片(pbf)并用openlayers 6.14 /leaflet 1.8 加载展示 (一)(小白必备:超详细教程)

    环境: geoserver 2.21 vue 2.0 openlayers 6.14 leaflet 1.8 第二篇地址:openlayers 加载矢量切片 geoserver 发布 矢量切片(pbf ...

  3. 【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结...

    [超详细教程]使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结 原文 http://www.cnblogs.com/liuxianan/ ...

  4. (转)【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结...

    去年就知道有这个功能,不过没去深究总结过,最近有写网络博客的欲望了,于是又重新拾起这玩意儿. 具体到底是用Windows Live Writer 2012还是用Word 2013,个人觉得看个人,因为 ...

  5. cesium 入门开发系列矢量瓦片加载展示(附源码下载)

    前言 cesium 入门开发系列环境知识点了解: cesium api文档介绍,详细介绍 cesium 每个类的函数以及属性等等 cesium 在线例子 内容概览 cesium 实现矢量瓦片加载效果 ...

  6. arcgis pro发布矢量切片服务及利用arcgis api for javascript进行调用

    该文章已迁移至微信公众号,地址见: https://mp.weixin.qq.com/s/IDhD0JctuZUgOLMOJIoYew

  7. Qt项目打包发布超详细教程

    文章目录 前期准备工作 一.发布方式 (一)手动发布 (二)windeployqt发布 二.打包成.exe安装包 注意:后面的所有语句中涉及到编译器的,请大家自行替换成自己用的编译器,我这里使用的是M ...

  8. 【GeoServer + MapBox-GL 搭建离线矢量切片地图服务】多图详细流程 + 踩过的坑总结

    文章目录 前言 Geoserver 安装 前期工作 JDK的安装 安装 GeoServer GeoServer 的使用 进入 GeoServer 界面 使用 GeoServer 发布矢量切片离线地图 ...

  9. GIS 矢量切片(Vector Tile)-地图定制化的时代已经悄悄来临

    文中代码可以在我的GitHub中找到: https://github.com/QingyaFan/data-visualization 前言 切片技术的简单介绍,以及传统栅格图片切片的不足 现在最流行 ...

最新文章

  1. 吐血推荐:win下如何安装tensorflow?只需两步!!
  2. 【数据结构】之算法效率的度量
  3. 信号处理深度学习机器学习_机器学习与信号处理
  4. thinkphp跨库操作代码实例
  5. 产业链人士:台积电将同设备及原材料供应商谈判,希望明年降价15%
  6. Java的一个关于“星球”的枚举
  7. 发现极为好用的数据库连接工具,基本上包含所有数据库DBeaver
  8. RadAsm + OD 搭配编写和调试汇编程序
  9. css钢铁侠视角,css练习制作钢铁侠胸口的小型核反应堆
  10. linux下格式化SD卡
  11. OpenGL ES EGL eglDestroyContext
  12. robot_localization中EKF源码介绍
  13. 区块链溯源是什么?一文带您读懂! 1
  14. temp.....................
  15. 在职场如何应对他人的关注
  16. 【大学物理·恒定电流的磁场】恒定电流
  17. android即时通信和sns,基于Android平台的实时SNS系统设计与实现
  18. siesta swift_让我向您介绍我最喜欢的图书馆Siesta的Swift联网。
  19. cJSON库如何在KIEL4上使用?
  20. [Unity Mirror] TCP 和 UDP

热门文章

  1. 怎么查看电脑主板最大支持多大的内存
  2. Android 简单生成二维码名片
  3. android 评测软件,Android平台五款主流在线视频软件横向评测
  4. Android BLE 蓝牙开发指南(三)外围设备端开发详解
  5. python炒股学习软件_要炒股,学Python-LSTM学习
  6. OID科普:OID为什么被称为元标识?
  7. python 数据拟合 预测_GitHub - wanng-ide/Python-WeChat-Predict: 用现有的数据对微信公众号的一些数据做一个预测,主要采用多项式拟合来构建模型。...
  8. 分享:Java 开发精美艺术二维码
  9. Machine Learning Exercise 1.1
  10. CodeLite工具的使用