Arcgis加载Geoserver矢量切片
原帖地址
准备点线面图层并发布图层组
此处我准备了石家庄市的县界名称(点)、高速公路(线)、县界(面),依次发布geoserver服务,创建图层组(过程不赘述了),把准备好的三个图层组成一个图层组,效果如下。


图层组发布矢量切片
矢量切片主要用到了geoserver 的 vector Tiles 插件,下载对应版本的插件压缩包,解压到geoserver的lib目录下,重启server,查看图层组的Tile Caching页面,出现如下,则安装成功,勾选需要的Tile Image Format即可。

查看webcache
进入浏览器/geoserver/gwc/demo路径,查看缓存服务是否有相应的各式。

代码加载
先贴参考文档
VectorTileLayer | ArcGIS API for JavaScript
Style Specification | Mapbox GL JS | Mapbox
Mapbox Style 规范 - 初晓之博的个人空间 - OSCHINA - 中文开源技术交流社区
代码
filter,circleColor,fillColor为自定义的几个条件
filter:只有鹿泉区和长安区显示,其他不显示。
circleColor:长安区颜色#FFD273,鹿泉区颜色#E86D68,其他#f28cb1
fillColor:颜色线性分布,人口10000#FFD273, 500000#E86D68,1000000#9BFF69,中间值的颜色会自动生成。
style.source.osm.tiles的url请求路径可以在geoserver预览页面的控制台网络查看(进入浏览器/geoserver/gwc/demo路径,找到相应的地图服务,点击openlayer["pdf","xxx","xxx"])。

关于layers节点,根据实例代码和文档自行理解。
若文字不显示,很有可能是字体设置的问题,可以自行搜索mapbox glyphs的相关介绍。
定义字体文件请求路径模板 "glyphs": "./glyphs/{fontstack}/{range}.pbf"
layer使用的字体 'text-font' : ['Microsoft YaHei Regular']
//自定义条件
var filter = [
"match",
["get", "DATA"],
["鹿泉区", "长安区"],
true,
false
];
var circleColor = [
"match",
["get", "DATA"],
"长安区", '#FFD273',
"鹿泉区", '#E86D68',
"#f28cb1" // other
]
var fillColor = [
'interpolate',
['linear'],
['get', '人口'],
10000, '#FFD273',
500000, '#E86D68',
1000000, '#9BFF69'
];
//定义style
var geo_layer = 'test:sjz1'
var epsg = '900913';
var style = {
"version": 8,
"sources": {
"osm": {
"tiles": ["http://****/geoserver/gwc/service/wmts?REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&LAYER="+geo_layer+"&STYLE=&TILEMATRIX=EPSG:"+epsg+":{z}&TILEMATRIXSET=EPSG:"+epsg+"&FORMAT=application/vnd.mapbox-vector-tile&TILECOL={x}&TILEROW={y}"],
"type": "vector"
}
},
"glyphs": "./glyphs/{fontstack}/{range}.pbf",
"layers": [
{
id: "xj",
type: "fill",
source: "osm",
"source-layer": "xj",
paint: {
"fill-color": fillColor
},
// filter: filter
},
{
id: "line_xj",
type: "line",
source: "osm",
"source-layer": "xj",
paint: {
"line-color": '#000000',
}
},
{
id: "line_gslg",
type: "line",
source: "osm",
"source-layer": "gslg",
"minzoom": 6,
paint: {
"line-color": '#6495ED',
"line-width": 2,
"line-gap-width": 10
}
},
{
id: "text_gslg",
type: "symbol",
source: "osm",
"source-layer": "gslg",
"minzoom": 7,
layout: {
"symbol-placement" : 'line',
'text-field': ['get', "DATA"],
'text-font' : ['Microsoft YaHei Regular']
}
},
{
id: "text_xjs",
type: "symbol",//circle symbol
source: "osm",
"source-layer": "xjs",
"minzoom": 6,
layout: {
'text-field': ['get', "DATA"],
'text-font' : ['hwxk'],
"text-size": {
"base": 1,
"defaul": 10,
//字体默认大小为1,10-16级字体为大小为 11.5
//大于16级字体大小为18
"stops": [
[
10,
15
],
[
16,
40
]
]
}
}
}
],
"id": "test"
}
//初始化地图并加载
const map = new Map({
basemap: "topo-vector"
});
const view = new MapView({
container: "viewDiv", // Reference to the view div created in step 5
map: map, // Reference to the map object created before the view
zoom: 8, // Sets zoom level based on level of detail (LOD)
center: [114.4, 38.2]
});
var tileLyr = new VectorTileLayer({
style: style
});
map.add(tileLyr)
效果图




Arcgis加载Geoserver矢量切片的更多相关文章
- ArcGIS JS 4加载第三方矢量切片
现在矢量切片越来越普及,对于地图渲染能更轻更快.ArcGIS JS 4.13可以实现加载第三方矢量切片,以下为代码示例,最下方是我之前切的建筑物数据. 当切片大小在1M左右,加载效果还 ...
- 开源方案搭建可离线的精美矢量切片地图服务-2.PostGIS+GeoServer矢量切片
项目成果展示(所有项目文件都在阿里云的共享云虚拟主机上,访问地图可以会有点慢,请多多包涵). 01:中国地图:http://test.sharegis.cn/mapbox/html/3china.ht ...
- 【ArcGis for javascript从零开始】之一 ArcGis加载天地图
最近做项目需要用到ArcGis来进行数据展示和数据分析.以前从来没有接触过与Gis有关的东西,一切需要从头开始学.没有时间从头系统地学习了,只能用到哪个学习哪里了,本系列只是对学习的路径进行记录.Ar ...
- arcgis 加载高德地图 es6的方式
目前很多arcgis 加载高德地图是dojo的方式 外部引入文件,现在改成这种方式 /** * Created by Administrator on 2018/5/14 0014. */ impor ...
- openlayer3 加载geoserver发布的WFS服务
转自原文 openlayer3加载geoserver发布的WFS服务 openlayers3调用GeoServer发布的wfs 1 参考一 1.1 问题 openlayer3加载WFS存在跨域问题,需 ...
- ArcGIS加载高德、OSM和谷歌等地图
1. 引言 网络地图对于我们来说已经不是什么新鲜事了,上面有各大互联网公司收集的海量的地理空间数据.一般网络地图的地图是以切片形式存在的,因此,本文重点讲述如何将这些网络切片地图加载并显示再ArcGI ...
- Leaflet加载GeoServer发布的WMTS地图服务
leaflet本身并不支持WMTS服务,需要借助leaflet-tilelayer-wmts插件实现,但是插件是为通用WMTS服务实现的.在使用的过程中出现了无法调用的问题,这里进行了稍微修改. 加载 ...
- OpenLayers 3加载本地Google切片地图
OpenLayers 提供了ol.source.XYZ 接口用以加载切片地图. 本地切片地图是用地图切片下载器下载的Google道路图层,由于软件未激活,所以每张切片地图上都有软件作者的联系方式,请 ...
- 关于如何使用ehcarts2加载svg矢量地图并自定义县级内部乡镇轮廓
项目需求:显示县级内部的乡镇一级地图的轮廓! 效果预览: 阻碍因素:echarts不提供县级以下乡镇级轮廓. 解决思路: 1.根据资料查找相关县的行政区域图(百度搜索),如本人所制作的浙江省宁波市宁海 ...
- arcgis 加载png图片实现图片跟随地图缩放 和图片的动态播放
效果图: 主要原理: png加载到地图上是不可能的, 图像本身是没有地理信息的. 这里采用一种办法, 在地图上创建一个图形图层, 图形图层放一个矩形,给这个矩形用一个图片填充符号填充. 关键技术点: ...
随机推荐
- Nuxt.js 应用中的 imports:context 事件钩子详解
title: Nuxt.js 应用中的 imports:context 事件钩子详解 date: 2024/10/29 updated: 2024/10/29 author: cmdragon exc ...
- Sqlsugar调用Oracle的存储过程
前段时间在搬迁项目的时候,遇到一个问题,就是用sqlsugar调用oracle的存储过程的时候调用不了: 当时卡了一整天,现在有空了把这个问题记录分享一下. 先去nuget上安装一下sqlsugar的 ...
- 记录一个opencv的imread方法无法读取成功的问题,【设计到visual studio和静态库(lib)匹配的问题】
一.为什么会遇到这个问题 公司需要对多图进行拼接,经过多番查找发现了OpenStitching这个库.可以实现多图拼接.在python段尝试了之后感觉效果不错,所以使用Visual Studio进行C ...
- 快速量产低功耗 4G 定位方案?Air201 模组来搞定!
今天我们来了解的是Air201模组快速量产低功耗 4G 定位方案,希望大家有所收获. 寻寻觅觅低功耗4G定位方案? 一个Air201就够了! --定位准.体积小.功耗低,助力行业客户快速量产! 01 ...
- 合并具有文本框的Word文档:VBA代码批量操作
本文介绍基于VBA语言,对大量含有图片.文本框与表格的Word文档加以批量自动合并,并在每一次合并时添加分页符的方法. 在我们之前的文章中,介绍过基于Python语言的python-docx( ...
- IPC-7711/21D, IPC-7711D, IPC-7721D 电子组件的返工、修改和维修,验收标准。Rework, Modification and Repair of Electronic Assemblies
IPC-7711/21 - Revision D - Standard Only: Rework, Modification and Repair of Electronic Assemblies T ...
- antlr的使用
我从以下几个问题入手介绍ANTLR的相关知识. 1 ANTLR是什么? ANTLR, ANother Tool for Language Recognition, 是一个可以接受含有语法描述的语言描述 ...
- Python之解析配置文件
[.env] 1) 使用python-dotenv 安装: pip install python-dotenv 示例配置文件: ADMIN_HOST = https://uat-rm-gwaaa.cn ...
- 『玩转Streamlit』--可编辑表格
之前介绍过两个数据展示的组件,st.dataframe和st.table. 今天介绍的st.data_editor组件,除了展示数据的功能更加强大之外,还可以编辑数据. 1. 概要 st.data_e ...
- 【项目学习】Pendle 项目的简单调研
项目介绍 将 1 ETH 质押成 1 stETH,年利率为 5%,那么到期后 1 stETH 就能收回 1 ETH(本金)+ 0.05 ETH(收益).而 Pendle 所做的就是把 1 stETH ...