Mapbox加载天地图CGCS2000矢量瓦片地图

这篇具有很好参考价值的文章主要介绍了Mapbox加载天地图CGCS2000矢量瓦片地图。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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,创建一个新的坐标系
Mapbox加载天地图CGCS2000矢量瓦片地图,前端,javascript,Mapbox,vue.js
在框选的地方搜索4490,选择为CGCS2000坐标系,其他数据按图填写(279,541,132.0143589),级别自定义。
Mapbox加载天地图CGCS2000矢量瓦片地图,前端,javascript,Mapbox,vue.js
设置完成后在矢量切片设置页,将新设置坐标系添加进来
Mapbox加载天地图CGCS2000矢量瓦片地图,前端,javascript,Mapbox,vue.js
在TMS页就可以看到服务地址
Mapbox加载天地图CGCS2000矢量瓦片地图,前端,javascript,Mapbox,vue.js

4.效果展示

Mapbox加载天地图CGCS2000矢量瓦片地图,前端,javascript,Mapbox,vue.js文章来源地址https://www.toymoban.com/news/detail-641424.html

到了这里,关于Mapbox加载天地图CGCS2000矢量瓦片地图的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mapbox加载浙江省天地图服务和数据处理

    通过浙江省天地图官网申请所需服务,使用token获取服务数据 由于浙江省天地图使用的坐标系是 cgcs2000,需要使用 的框架对应为 @cgcs2000/mapbox-gl,通过cdn引入或npm下载 影像服务地址为: ‘https://ditu.zjzwfw.gov.cn:443/services/wmts/imgmap/default/oss?service=WMTSrequest=GetTileversion=1.0.0layer=im

    2024年01月23日
    浏览(44)
  • 050:cesium加载mapbox卫星地图、mapbox地形地图

    第050个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中加载mapbox卫星地图、mapbox地形地图。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 示例效果

    2023年04月18日
    浏览(86)
  • 切OSM数据矢量瓦片并前端可视化最完整流程

    本文提供了完整OSM数据切瓦片,并实现前端可视化的流程。参考了一些大佬的开源项目,在此感谢这些大佬,并在最后提供相关参考资料。话不多说,整起。 OSM数据下载链接为OSM数据下载链接,网站界面如下: 本文下载maldives PBF格式数据进行测试数据地址。 使用ogr2ogr工具,

    2024年02月19日
    浏览(44)
  • geoserver加载arcgis server瓦片地图显示异常问题处理

    1.全能地图下载的瓦片conf.xml格式有问题首先要修改格式,conf.cdi文件也需要修改格式,修改为UTF-8或者UTF-8无BOM编码(不同的notepadd++显示不同) 2. 下载的conf.xml坐标系默认从最小级别开始,一定要把前几级也补全,从0级开始    LODInfo xsi:type=\\\"typens:LODInfo\\\"                 LevelI

    2024年02月12日
    浏览(52)
  • QGIS-申请天地图key并加载在线地图,在线图源坐标系差异

    从2019年1月1日起,调用天地图的地图服务都需要申请开发接口,通过申请的key构建url地址并在QGIS加载。 在天地图官网(https://www.tianditu.gov.cn/)点击登录按钮登录天地图账号,如果没有账号可以点击注册,注册一个账号,登录账号之后,点击开发资源地图API,如下图所示。

    2024年02月08日
    浏览(41)
  • vue3+mapboxgl鼠标浮动显示cgcs2000

    鼠标在地图中浮动展示地图的经纬度,cgcs2000 xy 还有显示带号 展示经度,纬度,x值,y值显示的是带号和y值 初始化地图后.on方法中有个mousemove方法 可以看出方法的参数中有经纬度,我们可以通过经纬度获取他的cgcs2000 xy  我这边用的是proj4,添加依赖 引用proj4    wgs84的参数

    2024年02月16日
    浏览(38)
  • PostGIS 矢量瓦片

    title: PostGIS 矢量瓦片 date: 2023-08-07 author: ac tags: vector tile categories: Database Martin - 基于PostGIS的矢量瓦片服务器 1. 简介 目前流行的矢量瓦片的切图方案: mapbox gl + tippecanoe :v2收费,tippecanoe是mapbox官方推荐的矢量瓦片静态生成工具 ,适用于大数据量场景,且不频繁更新的空间数

    2024年02月13日
    浏览(39)
  • GIS数据格式坐标转换(地球坐标WGS84、GCJ-02、火星坐标、百度坐标BD-09、国家大地坐标系CGCS2000)

    地理信息系统 (GIS) 是一个创建、管理、分析和绘制所有类型数据的系统。GIS 将数据连接到地图,将位置数据(事物所在位置)与所有类型的描述性信息(事物在该位置的情况)集成到一起。这可以为适用于自然科学和几乎所有行业的制图和分析提供基础。GIS 帮助用户了解模

    2023年04月16日
    浏览(37)
  • mapbox-gl中mvt、pbf 矢量切片 feature id bug

    1.版本:mapbox-gl.js 2.13.0,pbf采用 postgis生成 2.调用矢量切片时,采用如下方法查询矢量切片要素,报错 map.on(\\\'mousemove\\\', function(e) {                     var bbox = [                         [e.point.x - 5, e.point.y - 5],                         [e.point.x + 5, e.point.y +

    2024年02月12日
    浏览(51)
  • Cesium:CGCS2000坐标系的xyz坐标转换成WGS84坐标系的经纬高度,再转换到笛卡尔坐标系的xyz坐标

    作者:CSDN @ _乐多_ 本文将介绍使用 Vue 、cesium、proj4 框架,实现将CGCS2000坐标系的xyz坐标转换成WGS84坐标系的经纬高度,再将WGS84坐标系的经纬高度转换到笛卡尔坐标系的xyz坐标的代码。并将输入和输出使用 Vue 前端框架展示了出来。代码即插即用。 网页效果如下图所示, 一、

    2024年02月06日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包