Мапник не рендерит постгис мультиполигонзм?
Поэтому я загрузил кучу данных NHD, и геометрия оказалась в виде MultiPolygonZM (и pointZM и areaZM для других таблиц)
way geometry(MultiPolygonZM,900913)
Я проверил запрос и его возвращающие данные при непосредственном запуске с БД. Вот мой стиль:
<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), и все это просто непросто. Кто-нибудь еще испытывал что-то подобное? Это проблема геометрии или это просто красная сельдь? Есть ли способ заставить mapnik выдавать отладочную информацию любого типа при рендеринге?
ТИА!
- Рэнди
1 ответ
Несколько ГИС-программ, таких как 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 смотрите этот ответ.