geoserver 发布 矢量切片(pbf)并用openlayers 6.14 /leaflet 1.8 加载展示 (二)(小白必备:超详细教程)
上一篇讲了 如何利用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 加载展示 (二)(小白必备:超详细教程)相关推荐
- geoserver 发布 矢量切片(pbf)并用openlayers 6.14 /leaflet 1.8 加载展示 (三)(小白必备:超详细教程)
前两篇分别讲了 如何利用geoserver 发布矢量切片和openlayers 加载.接下来我们说 如何用leaflet 展示,既然做我们就作全面吧,谁让我们gis 就是这么苦逼呢,哈哈. 环境: g ...
- geoserver 发布 矢量切片(pbf)并用openlayers 6.14 /leaflet 1.8 加载展示 (一)(小白必备:超详细教程)
环境: geoserver 2.21 vue 2.0 openlayers 6.14 leaflet 1.8 第二篇地址:openlayers 加载矢量切片 geoserver 发布 矢量切片(pbf ...
- 【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结...
[超详细教程]使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结 原文 http://www.cnblogs.com/liuxianan/ ...
- (转)【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结...
去年就知道有这个功能,不过没去深究总结过,最近有写网络博客的欲望了,于是又重新拾起这玩意儿. 具体到底是用Windows Live Writer 2012还是用Word 2013,个人觉得看个人,因为 ...
- cesium 入门开发系列矢量瓦片加载展示(附源码下载)
前言 cesium 入门开发系列环境知识点了解: cesium api文档介绍,详细介绍 cesium 每个类的函数以及属性等等 cesium 在线例子 内容概览 cesium 实现矢量瓦片加载效果 ...
- arcgis pro发布矢量切片服务及利用arcgis api for javascript进行调用
该文章已迁移至微信公众号,地址见: https://mp.weixin.qq.com/s/IDhD0JctuZUgOLMOJIoYew
- Qt项目打包发布超详细教程
文章目录 前期准备工作 一.发布方式 (一)手动发布 (二)windeployqt发布 二.打包成.exe安装包 注意:后面的所有语句中涉及到编译器的,请大家自行替换成自己用的编译器,我这里使用的是M ...
- 【GeoServer + MapBox-GL 搭建离线矢量切片地图服务】多图详细流程 + 踩过的坑总结
文章目录 前言 Geoserver 安装 前期工作 JDK的安装 安装 GeoServer GeoServer 的使用 进入 GeoServer 界面 使用 GeoServer 发布矢量切片离线地图 ...
- GIS 矢量切片(Vector Tile)-地图定制化的时代已经悄悄来临
文中代码可以在我的GitHub中找到: https://github.com/QingyaFan/data-visualization 前言 切片技术的简单介绍,以及传统栅格图片切片的不足 现在最流行 ...
最新文章
- 吐血推荐:win下如何安装tensorflow?只需两步!!
- 【数据结构】之算法效率的度量
- 信号处理深度学习机器学习_机器学习与信号处理
- thinkphp跨库操作代码实例
- 产业链人士:台积电将同设备及原材料供应商谈判,希望明年降价15%
- Java的一个关于“星球”的枚举
- 发现极为好用的数据库连接工具,基本上包含所有数据库DBeaver
- RadAsm + OD 搭配编写和调试汇编程序
- css钢铁侠视角,css练习制作钢铁侠胸口的小型核反应堆
- linux下格式化SD卡
- OpenGL ES EGL eglDestroyContext
- robot_localization中EKF源码介绍
- 区块链溯源是什么?一文带您读懂! 1
- temp.....................
- 在职场如何应对他人的关注
- 【大学物理·恒定电流的磁场】恒定电流
- android即时通信和sns,基于Android平台的实时SNS系统设计与实现
- siesta swift_让我向您介绍我最喜欢的图书馆Siesta的Swift联网。
- cJSON库如何在KIEL4上使用?
- [Unity Mirror] TCP 和 UDP
热门文章
- 怎么查看电脑主板最大支持多大的内存
- Android 简单生成二维码名片
- android 评测软件,Android平台五款主流在线视频软件横向评测
- Android BLE 蓝牙开发指南(三)外围设备端开发详解
- python炒股学习软件_要炒股,学Python-LSTM学习
- OID科普:OID为什么被称为元标识?
- python 数据拟合 预测_GitHub - wanng-ide/Python-WeChat-Predict: 用现有的数据对微信公众号的一些数据做一个预测,主要采用多项式拟合来构建模型。...
- 分享:Java 开发精美艺术二维码
- Machine Learning Exercise 1.1
- CodeLite工具的使用