MapBox加载GeoServer发布的WMS地图服务

使用MapBox加载GeoServer发布的WMS地图服务,测试一下成功,但是发现好像不支持4326坐标系,只支持3857坐标系,最终没有找到怎么加载4326坐标系的WMS服务。加载代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>MapBox加载WMS地图服务</title>
    <script src='https://api.mapbox.com/mapbox-gl-js/v0.50.0/mapbox-gl.js'></script>
    <link href='https://api.mapbox.com/mapbox-gl-js/v0.50.0/mapbox-gl.css' rel='stylesheet' />
    <style>
        body { margin:0; padding:0; }
        #map { position:absolute; top:0; bottom:0; width:100%; }
        /*隐藏logo*/
        .mapboxgl-ctrl.mapboxgl-ctrl-attrib{
            display: none !important;
        }
        .mapboxgl-ctrl-logo{
            display: none !important;
        }
    </style>
</head>
<body>
<div id='map'></div>
<script >
    mapboxgl.accessToken = 'pk.eyJ1IjoiaGFtYnVnZXJkZXZlbG9wIiwiYSI6ImNqNXJtZjF4ZzB3em4yd21pZmVqbHlleDAifQ.I9eqVjtotz7jaU7XcJm9pQ';
    var map = new mapboxgl.Map({
        container: 'map',
        style: 'mapbox://styles/mapbox/streets-v10',
        center: [108.438,34.431],
        zoom: 7
    });
    map.on("load",function () {
        map.addLayer({
            'id': 'wms-test-layer',
            'type': 'raster',
            'source': {
                'type': 'raster',
                'tiles': [
                    "http://localhost:8080/geoserver/word/wms?service=WMS&version=1.1.0&request=GetMap&layers=word:town3857&styles=&bbox={bbox-epsg-3857}&width=256&height=256&srs=EPSG:3857&format=image/png&TRANSPARENT=TRUE"
                ],
                'tileSize': 256
            },
            'paint': {}
        });
    })
</script>
</body>
</html>

效果图如下:

需要注意的是URL,连接WMS中的bbox参数用{bbox-epsg-3857}替换了,加载的时候,MapBox会自动替换成对应的参数,这样地图就可以加载了

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
加载Geoserver发布的PBF服务并定义线和点样式,您可以按照以下步骤进行操作: 1. 首先,确保您已经在Mapbox GL JS中创建了一个地图实例,比如`var map = new mapboxgl.Map({ ... });`。 2. 然后,使用`map.addSource()`方法添加PBF服务作为地图的源。请注意,PBF服务需要使用`vector`类型的源。 ```javascript map.addSource('geoserver-source', { type: 'vector', tiles: ['http://your-geoserver-url.com/{z}/{x}/{y}.pbf'], minzoom: 0, maxzoom: 14 }); ``` 3. 接下来,在`map.addLayer()`方法中添加线和点的样式图层。您可以使用`line-layer`和`symbol-layer`来定义线和点的样式。 ```javascript // 线样式图层 map.addLayer({ id: 'line-layer', type: 'line', source: 'geoserver-source', 'source-layer': 'name-of-pbf-layer', // PBF服务中的图层名称 paint: { 'line-color': '#ff0000', 'line-width': 2 }, filter: ['==', '$type', 'LineString'] // 过滤只显示线要素 }); // 点样式图层 map.addLayer({ id: 'point-layer', type: 'circle', source: 'geoserver-source', 'source-layer': 'name-of-pbf-layer', // PBF服务中的图层名称 paint: { 'circle-color': '#00ff00', 'circle-radius': 5 }, filter: ['==', '$type', 'Point'] // 过滤只显示点要素 }); ``` 在上述示例中,请将`'http://your-geoserver-url.com/{z}/{x}/{y}.pbf'`替换为您的Geoserver发布的PBF服务的URL。另外,请将`'name-of-pbf-layer'`替换为您在PBF服务中想要加载的图层名称。 通过以上步骤,您可以加载Geoserver发布的PBF服务,并定义线和点的样式。请根据您的需求调整样式属性,比如线的颜色、宽度,点的颜色、半径等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GIS开发者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值