原帖地址

洒家废物 - 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矢量切片的更多相关文章

  1. ArcGIS JS 4加载第三方矢量切片

        现在矢量切片越来越普及,对于地图渲染能更轻更快.ArcGIS JS 4.13可以实现加载第三方矢量切片,以下为代码示例,最下方是我之前切的建筑物数据.     当切片大小在1M左右,加载效果还 ...

  2. 开源方案搭建可离线的精美矢量切片地图服务-2.PostGIS+GeoServer矢量切片

    项目成果展示(所有项目文件都在阿里云的共享云虚拟主机上,访问地图可以会有点慢,请多多包涵). 01:中国地图:http://test.sharegis.cn/mapbox/html/3china.ht ...

  3. 【ArcGis for javascript从零开始】之一 ArcGis加载天地图

    最近做项目需要用到ArcGis来进行数据展示和数据分析.以前从来没有接触过与Gis有关的东西,一切需要从头开始学.没有时间从头系统地学习了,只能用到哪个学习哪里了,本系列只是对学习的路径进行记录.Ar ...

  4. arcgis 加载高德地图 es6的方式

    目前很多arcgis 加载高德地图是dojo的方式 外部引入文件,现在改成这种方式 /** * Created by Administrator on 2018/5/14 0014. */ impor ...

  5. openlayer3 加载geoserver发布的WFS服务

    转自原文 openlayer3加载geoserver发布的WFS服务 openlayers3调用GeoServer发布的wfs 1 参考一 1.1 问题 openlayer3加载WFS存在跨域问题,需 ...

  6. ArcGIS加载高德、OSM和谷歌等地图

    1. 引言 网络地图对于我们来说已经不是什么新鲜事了,上面有各大互联网公司收集的海量的地理空间数据.一般网络地图的地图是以切片形式存在的,因此,本文重点讲述如何将这些网络切片地图加载并显示再ArcGI ...

  7. Leaflet加载GeoServer发布的WMTS地图服务

    leaflet本身并不支持WMTS服务,需要借助leaflet-tilelayer-wmts插件实现,但是插件是为通用WMTS服务实现的.在使用的过程中出现了无法调用的问题,这里进行了稍微修改. 加载 ...

  8. OpenLayers 3加载本地Google切片地图

    OpenLayers  提供了ol.source.XYZ 接口用以加载切片地图. 本地切片地图是用地图切片下载器下载的Google道路图层,由于软件未激活,所以每张切片地图上都有软件作者的联系方式,请 ...

  9. 关于如何使用ehcarts2加载svg矢量地图并自定义县级内部乡镇轮廓

    项目需求:显示县级内部的乡镇一级地图的轮廓! 效果预览: 阻碍因素:echarts不提供县级以下乡镇级轮廓. 解决思路: 1.根据资料查找相关县的行政区域图(百度搜索),如本人所制作的浙江省宁波市宁海 ...

  10. arcgis 加载png图片实现图片跟随地图缩放 和图片的动态播放

    效果图: 主要原理: png加载到地图上是不可能的, 图像本身是没有地理信息的. 这里采用一种办法, 在地图上创建一个图形图层, 图形图层放一个矩形,给这个矩形用一个图片填充符号填充. 关键技术点: ...

随机推荐

  1. house of stom

    完成事项 house of stom学习 未完成事项 wmctf的blineless没打通 如何解决未完成事项 下周待做事项 house of orange house of lore 本周学习的知识 ...

  2. Docker 自定义镜像Dockerfile使用详细教程

    认识 Dockerfile 文件 Dockerfile 用于构建 Docker 镜像,Dockerfile 文件是由一行行命令语句 组成,基于这些命令即可以构建一个镜像 比如下面就是一个Dockefi ...

  3. PCI 设备 RTX 驱动开发方法 -5565反射内存

    PCI 设备 RTX 驱动开发方法 RTX 下操作外设时, 需要把设备从 Windows 移动到 RTX 下面,具体移植方法可以参考 RTX Help 文档中间 Converting a Window ...

  4. mysql 触发器阻止不合理数据插入

    今天看到有人问如何判断处理有不符合的数据阻止插入.比如这个数据只能在90天内存在一条,如果有了就拒绝插入. 当然大家都说用代码判断,判断一下90天内是否有数据,有就拒绝. 我这里说一个使用触发器的思路 ...

  5. Linux中vim快捷键+vim报错解决

    vim快捷键+vim报错解决 vim 快捷键 编辑器 ​ yum -y install vim ​ 快捷键: 视图模式: 0 Home ^ 快速移动光标到行首 $ End 快速移动光标到行尾 u 撤销 ...

  6. javascript数组合并效率对比

    1.数组元素量级大而合并次数少时,性能对比: concat() > push() > [-array1,-array2] 2.数组元素少但合并次数多时,性能对比: push() > ...

  7. JVM性能优化, Part 3 —— 垃圾回收

    ImportNew注:本文是JVM性能优化 系列-第3篇-<JVM性能优化, Part 3 -- 垃圾回收> 第一篇 <JVM性能优化, Part 1 ―― JVM简介 > 第 ...

  8. 九、FreeRTOS学习笔记-列表和列表项

    列表和列表项的简介 列表是 FreeRTOS 中的一个数据结构,概念上和链表有点类似,列表被用来跟踪 FreeRTOS中的任务. 列表项就是存放在列表中的项目 列表相当于链表,列表项相当于节点,Fre ...

  9. highcharts中的环形图

    环形图如下效果: 代码: that.options = { chart: { type: 'pie', backgroundColor: 'transparent', color: '#fff', / ...

  10. Redis集群搭建-多服务器

    条件 l 基于redis5.0.*版本进行集群的搭建 l 集群要求至少六个节点,即每个主节点配置1个从节点,本集群是使用了3个主节点并每个下面挂一个从节点,三个主节点分布在3台服务器上 l 集群配置信 ...