1.背景

最近在做天地图的项目,要基于MapBox添加CGCS2000矢量切片数据,但是 Mapbox 只支持web 墨卡托(3857)坐标系的数据。Github有专业用户修改了mapbox-gl的相关代码,支持CGCS2000的切片数据加载,并且修改了相关的mapbox-gl的配套代码,详情请见github网址。https://github.com/cgcs2000

2.将MapBox部署到本地

npm i @cgcs2000/mapbox-gl
<!DOCTYPE html>
<html><head><meta charset='utf-8' /><title>Mapbox加载天地图CGCS2000矢量瓦片地图服务</title><meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' /><style>body {margin: 0;padding: 0;}#map {position: absolute;top: 0;bottom: 0;width: 100%;}</style>
</head><body><div id='map'></div>
</body>
<script type="module">
import '@cgcs2000/mapbox-gl/dist/mapbox-gl.css'
import mapboxgl from '@cgcs2000/mapbox-gl';mapboxgl.accessToken = 'YourToken';
//添加天地图
var mapStyle = {"version": 8,"name": "Map","sources": {"world-vec": {"type": "raster","tiles": ["http://t0.tianditu.gov.cn/vec_c/wmts?tk=......"],"scheme": "xyz","maxzoom": 9,"tileSize": 256},"layers": [{"id": "world-vec","source": "world-vec","type": "raster","layout": {"visibility": "visible"}},],"glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf","transition": {"duration": 300,"delay": 0}
}var map = new mapboxgl.Map({container: 'map',zoom: 7,center: [118.8, 36.3],style: mapStyle,
});/**CGCS2000投影坐标系(4490)**/
map.on('load', function loaded() {//添加geoserver矢量切片map.addSource('custom-go-vector-tile-source', {type: 'vector',scheme: 'tms',tiles: ['http://localhost:8080/geoserver/gwc/service/tms/1.0.0/MyWork%3Acounty@EPSG%3A4490@pbf/{z}/{x}/{y}.pbf'], //GeoServer发布的矢量切片地图zoomOffset: -1});//配置矢量切片图层样式map.addLayer({"id": "custom-go-vector-tile-layer","type": "circle",       // 符号化样式 [fill,line,symbol,circle,heatmap]"source": "custom-go-vector-tile-source","source-layer": "county",  //添加矢量图层名"minzoom": 5,"maxzoom": 13,paint: {'circle-radius': 1,'circle-color': "#000000",'circle-opacity': 0.8}});});</script>
</html>

3.GeoServer发布CGCS2000的矢量瓦片服务

1.安装过程自行百度,Tomcat下面部署Geoserver可能会遇到跨域访问问题。将geoserver部署到tomcat之后,打开tomcat下webapps\geoserver\WEB-INF目录下的web.xml文件,添加一下内容,重启tomcat即可。

    <filter><filter-name>CORS</filter-name> <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class><init-param> <param-name>cors.tagRequests</param-name> <param-value>true</param-value> </init-param></filter><filter-mapping> <filter-name>CORS</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

2.发布矢量瓦片服务
GeoServer默认只有84的坐标系,我们需要自己定义CGCS2000的坐标系。
首先,点击Tile Caching下的Gridsets,创建一个新的坐标系

在框选的地方搜索4490,选择为CGCS2000坐标系,其他数据按图填写(279,541,132.0143589),级别自定义。

设置完成后在矢量切片设置页,将新设置坐标系添加进来

在TMS页就可以看到服务地址

4.效果展示

Mapbox加载天地图CGCS2000矢量瓦片地图服务相关推荐

  1. 高德地图 sdk 加载 geoserver 发布的瓦片地图服务

    前言 最近,碰到了需求,想要在高德 sdk 中使用在 geoserver 里面发布的瓦片地图. 还好经过一番研究,在其官方文档中发现,从新版本(v1.4.3开始)的高德 sdk 开始,已经支持加载第三 ...

  2. ios 高德地图加载瓦片地图_OpenLayers加载谷歌地球离线瓦片地图

    本文使用OpenLayers最新版本V5.3.0演示:如何使用OpenLayer加载谷歌地球离线瓦片地图.OpenLayers 5.3.0下载地址为:https://github.com/openla ...

  3. osgearth加载本地离线影像瓦片地图

    osgearth加载本地离线影像瓦片地图案例 说明 本实例演示重新编译bing驱动直接加载本地离线影像瓦片地图. 本实例使用软件版本:osg3.3.1和osgEarth2.5 VC10编译环境(参考o ...

  4. OpenLayers加载谷歌地球离线瓦片地图

    本文使用OpenLayers最新版本V5.3.0演示:如何使用OpenLayer加载谷歌地球离线瓦片地图.OpenLayers 5.3.0下载地址为:https://github.com/openla ...

  5. Mission planner加载天地图(混合卫星地图含标注)

    国内某些地方,高德卫星地图更新的时间比较慢,例如郊区(城区还是很新的,跟google地图一样),天地图,卫星地图整体更新很慢,但是**郊区会同步更新.两个地图各有千秋(虽然最好的还是谷歌地图,基本上都 ...

  6. arcgis加载天地图_【arcgis地图实战】之天地图在线服务加载

    经常用arcgis的童鞋都知道,元数据是基础也是数据分析的根本.而在线地图能够快速的显示数据所在的位置,是数据校验不可多得的工具.arcgis地图实战系列教程将就各种在线地图进行介绍和分享. 在线地图 ...

  7. mapbox加载4490(CGCS2000)坐标系

    1.下载资源包 npm install @cgcs2000/mapbox-gl 2.引入mapbox-gl import '@cgcs2000/mapbox-gl/dist/mapbox-gl.css ...

  8. Cesium加载geoserver发布的wms地图服务-设置BBOX参数无效

    一.问题描述: 地图服务是geoserver发布的wms地图服务,使用cesium加载渲染,加载代码如下. // Cesium加载wms var wms = new Cesium.WebMapServ ...

  9. 基于mapbox搭建可离线的矢量切片地图服务-3.Mapbox个性化地图定制入门

    作者:ATtuing 出处:http://www.cnblogs.com/ATtuing 最近在做关于mapbox的项目,看到这篇文章感觉特别好,特此转载记录一下. 先不说废话直接上地址:(所有东西都 ...

最新文章

  1. 0066-若干个数求和问题
  2. Cpp / 通用引用、引用折叠与完美转发问题
  3. hdu 1286 找新朋友 欧拉函数模版题
  4. 整理你的个人IT资料库
  5. 如何用SAP WebIDE的Fiori创建向导基于ABAP OData service快速创建UI5应用
  6. 解决:redis.clients.jedis.exceptions.JedisDataExceptionERR This instance has cluster support disabled
  7. ndarray python 映射_在Matlab的delsq演示中,用numpy方法对向量映射进行ndarray处理?...
  8. 百度人脸识别 人脸识别模型_当我说人脸识别很容易时,他们笑了。 但是可以。...
  9. linux怎么启动打印服务,Linux打印服务管理
  10. Spark Streaming之容错性
  11. android 壁纸尺寸,常见手机壁纸的尺寸是多少
  12. 慕课秒杀项目seckill
  13. 第三方android 模拟器哪个好用吗,安卓模拟器哪个好 哪个电脑安卓模拟器好用...
  14. RocketMQ5.0.0事务消息
  15. Webots学习笔记 1.创建自己的仿真机器人模型
  16. 特斯拉和拼多多,到底在「较真儿」什么?
  17. 360 android 应用市场,360手机助手在安卓应用市场占大份额
  18. http状态码查询表(转载)
  19. html5--2.9新的布局元素(5)-hgroup/address
  20. 约瑟夫·寇德卡:成为一个吉普赛人

热门文章

  1. 国际禁毒日 | 和TcaplusDB向毒品说不!
  2. 在matlab中如何把两个txt文件合并到一起
  3. 智能,服务,生态:华为调制的AIOps,味道有何不同?
  4. 【原创】(进阶)VMware16.1.2通过PE+Dism++绕过TPM限制安装Win11首个正式原版镜像
  5. 二字动词 复盘赋能_【格格读书成长营】用复盘来为自己赋能
  6. 用Python代码来下载任意指定网易云歌曲
  7. 关于Navicat 连接 RDS数据库
  8. Ubuntu桌面卡成狗,如何有效解决卡顿问题
  9. GC日志中sys时间比user时间长该如何处理?
  10. Hadoop基础之《(6)—Hadoop单机伪集群安装》