如何解决Openlayers矢量图块,边缘处的样式特征
我正在将简单样式应用于VectorTile图层。功能加载并以上述样式显示。
我所面临的问题是落入瓷砖边缘(或接近瓷砖边缘)的特征似乎在瓷砖极限处被“切割”了。
我尝试在declutter: true
定义中使用ol.layer.VectoTile
选项,这虽然有所帮助,但某些功能却消失了(好像正在进行集群),对于我的用例,我需要查看所有功能,即使这些图标一个出现在另一个之上。
我不太理解为什么会这样,因为样式是在客户端而不是在服务器上完成的。
有没有办法使用VectorTiles来完成这项工作?
我正在使用的代码:
const layer = new ol.layer.VectorTile({
style: vectorStyle,//declutter: true,source: new ol.source.VectorTile({
tileGrid: ol.tilegrid.createXYZ({maxZoom: 19}),format: new ol.format.MVT(),url: `https://<geoserver_host>/gwc/service/tms/1.0.0/${layer_name}@${matrix_set}@pbf/{z}/{x}/{-y}.pbf`,}),});
map.addLayer(layer);
其他信息: 源数据存储在具有PostGIS扩展名的PostgreSQL数据库中。然后,GeoServer生成矢量切片,并通过TMS服务将其提供给
编辑: 我发现此问题是由于图层的默认样式是使用图标使用外部图像的自定义样式造成的:
<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd"
xmlns="http://www.opengis.net/sld" xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NamedLayer>
<Name>icon</Name>
<UserStyle>
<!-- Styles can have names,titles and abstracts -->
<Title>Icon</Title>
<FeatureTypeStyle>
<Rule>
<PointSymbolizer>
<Graphic>
<ExternalGraphic>
<OnlineResource xlink:type="simple" xlink:href="https://<host_url>/${icon_type}/${level}.png" />
<Format>image/png</Format>
</ExternalGraphic>
<Size>24</Size>
</Graphic>
</PointSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
将默认样式设置为默认“点”解决了该问题。但是我不确定为什么为什么使用Vector Tiles时不会使用默认的服务器样式,而是使用客户端提供的样式 有人可以解释为什么GeoServer会发生这种情况吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。