geoserver中styles引用外部png图片不显示问题解决

在尝试使用GeoServer显示自定义图标时遇到问题,原本将png图片放在styles目录下,但点层仍显示默认符号。问题在于未考虑工作组的影响,图片应位于工作空间对应的styles子目录下。解决方案是将图片移动到GeoServer 2.15.5data_dirworkspaces【工作组名称】styles,之后配置styles文件引用该路径,外部图形成功显示。

        【问题描述】 最近有个业务要求需要用到geoserver图层,需要显示指定的图标,于是从geoserver用户手册——PointSymbolizer中了解到只需在PointSymbolizer时候使用ExternalGraphic标签,其使用说明如下:

 网上有些博客说png图片存储GeoServer 2.0.2\data_dir\styles下,于是我将指定图片上传到该目录下后,styles中按官网配置如下以后,发现我的点层外部图形没有显示(它们恢复为默认的灰色矩形符号)。

<PointSymbolizer>
    <Graphic>
        <ExternalGraphic>
            <OnlineResource xlink:type="simple" xlink:href="accident.png" />
            <Format>image/png</Format>
        </ExternalGraphic>
    </Graphic>
</PointSymbolizer>

 

### 使用 Mapbox 渲染 GeoServer 地图数据 要使用 Mapbox 渲染来自 GeoServer 的地图或地理空间数据,通常涉及几个关键步骤。这些步骤包括配置 GeoServer 以提供所需的数据服务以及设置 Mapbox 来消费这些服务。 #### 配置 GeoServer 提供 WMS 或 WFS 服务 GeoServer 支持通过 Web 地图服务 (WMS) 和 Web 特征服务 (WFS) 发布地理空间数据。对于大多数情况而言,WMS 是更常用的选择,因为它可以返回图像形式的地图切片,而需要客户端解析矢量数据[^1]。 - **启用 WMS/WFS 功能**: 确认 GeoServer 中已启用了相应的扩展模块。 - **发布图层**: 将目标数据库中的表作为新图层发布,并设定好样式(SLD),以便于后续显示效果良好。 #### 设置 Mapbox 访问远程 WMS 图源 一旦确认 GeoServer 正常工作并向外提供了有效的 WMS 接口,则可以在 Mapbox 应用程序里添加此外部资源: ```javascript // 初始化 map 对象 var map = new mapboxgl.Map({ container: 'map', // 容器 ID style: 'mapbox://styles/mapbox/streets-v11', center: [-74.5, 40], zoom: 9 }); // 添加 WMS 图层至现有地图 map.on('load', function () { map.addSource('geoserver-wms-source', { type: 'raster', tiles: [ `http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=topp%3Astates&bbox={bbox}&width=256&height=256&srs=EPSG%3A3857&format=image/png` ], tileSize: 256, attribution: "© OpenStreetMap contributors" }); map.addLayer({ id: 'wms-layer-id', type: 'raster', source: 'geoserver-wms-source' }); }); ``` 上述代码片段展示了如何向现有的 Mapbox 实例中引入由 GeoServer 托管的 WMS 资源。注意 URL 参数部分需根据实际部署环境做适当修改,特别是主机名 (`localhost`) 及端口号 (`8080`), 并确保路径指向正确的 GeoServer 工作区和图层名称[^2]。
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值