mapbox加载geoserver发布的WMS服务

贴个群号

WebGIS学习交流群461555818,欢迎大家。

geoserver发布服务流程请看以前的博客

https://blog.youkuaiyun.com/Sakura1998gis/article/details/130192062?spm=1001.2014.3001.5501

获取地址

服务发布之后,在图层预览这里,找到我们的服务,然后最右侧那个下拉框内选择WMS服务下的png
在这里插入图片描述
在跳出的新页面,复制网页地址,一般是这样的

http://你的地址/geoserver/services/wms?service=WMS&version=1.1.0&request=GetMap&layers=services%3Acity&bbox=119.24124334100009%2C39.919077609000055%2C123.80837139200003%2C45.654079341000056&width=611&height=768&srs=EPSG%3A4326&styles=&format=image%2Fpng

这个链接要把bbox换成{bbox-epsg-3857},就可以了。就是我们最终想要得到的WMS服务地址

WMS服务一般可以用一些样式文件,调用上面的链接的时候,可以把styles=的后面的换成这里的样式。
在这里插入图片描述

mapbox加载geoserver发布的WMS服务

wms服务在mapbox里面,类型是raster,基本参数写下面的就可以了,更加丰富的参数请参考官网。

        map.addSource('city', {
            'type': 'raster',
            'tiles': [
                    'http://你的地址/geoserver/services/wms?service=WMS&version=1.1.0&request=GetMap&layers=services%3Acity&bbox={bbox-epsg-3857}&width=611&height=768&srs=EPSG%3A3857&styles=city&format=image%2Fpng'
            ],
            'tileSize': 256
            });
        map.addLayer({
                'id': 'city',
                'type': 'raster',
                'source': 'city',
                'paint': {
                    'raster-opacity': 1
                }
            },
        );
### 配置和使用 GeoServer WMSMapbox 中进行地图渲染 #### 获取 GeoServer WMS URL 和参数设置 为了在 Mapbox 中成功调用并显示由 GeoServer 提供的 Web 制图服务 (WMS),需要先确认 GeoServer 已经正确配置好相应的数据源,并能够通过标准的 WMS 请求获取图像。通常情况下,这涉及到构建一个特定格式的请求链接[^1]。 例如,假设有一个名为 `topp:states` 的图层托管于本地运行的 GeoServer 实例上,则可以构造如下形式的基础 WMS 请求URL: ``` http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=topp%3Astates&styles=&bbox=-124.70959,24.54675,-66.92776,49.37173&width=780&height=330&srs=EPSG%3A4326&format=image/png ``` 此 URL 包含了多个重要参数用于指定所要查询的地图范围、比例尺以及输出格式等内容。 #### 创建自定义 Mapbox GL JS 样式来加载 WMS 图像 一旦拥有了有效的 WMS 请求地址之后,在前端应用中就可以利用 Mapbox GL JS 库创建一个新的样式对象并将上述 WMS 数据作为背景图层加入其中。下面给出了一段 JavaScript 代码片段展示如何实现这一点: ```javascript map.on('load', function () { map.addLayer({ 'id': 'wms-layer', 'type': 'raster', 'source': { 'type': 'raster', 'tiles': [ 'http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=topp%3Astates&styles=&bbox={bbox-epsg-3857}&width=256&height=256&srs=EPSG%3A3857&format=image/png' ], 'tileSize': 256, "minzoom": 0, "maxzoom": 22 } }); }); ``` 这段脚本会在地图完全加载完毕后添加一层新的栅格瓦片图层,该图层指向之前准备好的 GeoServer WMS 服务端点。注意这里采用了 EPSG:3857 投影坐标系下的边界框 `{bbox-epsg-3857}` 占位符以便动态适应不同视窗位置的变化需求[^2]。 #### 解决可能出现的问题 当尝试集成这两个平台时可能会遇到一些挑战,比如跨域资源共享(CORS)问题或是 PBF 文件解析失败等问题。对于 CORS 错误而言,可以在服务器端调整响应头允许外部访问;而对于后者则需确保客户端环境支持最新版本协议并且路径无误。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值