所以我加载了一堆NHD数据,几何结果最终为MultiPolygonZM(以及其他表格的pointZM和areaZM)
way geometry(MultiPolygonZM,900913)
我在直接针对db运行时测试了查询及其返回的数据。这是我的风格:
<Style name="waterways">
<Rule>
<LineSymbolizer stroke="blue" stroke-width="3" />
</Rule>
</Style>
<Layer name="waterways" status="on">
<StyleName>waterways</StyleName>
<Datasource>
<Parameter name="table">
(select way
from nhd_waterbody)
as waterway
</Parameter>
<Parameter name="type">postgis</Parameter>
<Parameter name="port">5432</Parameter>
<Parameter name="user">gisuser</Parameter>
<Parameter name="dbname">gis</Parameter>
<Parameter name="estimate_extent">false</Parameter>
<Parameter name="extent">-20037508,-19929239,20037508,19929239</Parameter>
</Datasource>
</Layer>
但我无法使用mapnik(版本2.10)来渲染它。 osm数据渲染得很好(它的标准MultiPolygon,而不是4d)来自mapnik和qgis(v1.8)映射所有它只是hunky dory。还有其他人经历过这样的事吗?这是一个几何问题还是只是一个红鲱鱼?反正有没有让mapnik在渲染时吐出任何类型的调试信息?
TIA!
- 兰迪
答案 0 :(得分:4)
几个GIS程序(如QGIS)在内部使用ST_Force_2D从较高维度的数据类型中进行2D绘图。我不确定Mapnik如何处理这些几何形状,但我怀疑它们可能不受支持。此外,请务必仔细检查范围,因为这经常被忽视。
如果您实际上没有使用更高的尺寸,请将它们移除!对于PostGIS 2.0:
ALTER TABLE my_table
ALTER COLUMN way TYPE geometry(MultiPolygon,900913) USING ST_Force_2D(way);
对于PostGIS 1.x,请参阅this answer。