Essa é uma pergunta muito simples - eu só quero saber se alguém pode confirmar se usou o Mapnik com êxito para renderizar blocos diretamente dos dados mantidos no SQL Server. (E, em caso afirmativo, o que você fez para fazê-lo funcionar?) Por favor, não responda, a menos que tenha pessoalmente confirmado que isso é possível ... não apenas que deveria ser possível
Vi pessoas recomendando o Mapnik para renderizar dados do SQL Server em threads como este: Qualquer bom mecanismo de renderização de mapa para SqlGeometry / SqlGeography
Além disso, o site do mapnik afirma que "todos os formatos OGR são suportados": http://mapnik.org/faq/#data
No entanto, não consegui usar uma conexão com meu banco de dados local do SQL Server como fonte de dados para uma camada Mapnik. Como teste, estou usando um teste simples OGR VRT, que executa uma instrução SQL em um SQL Server para selecionar um único polígono de geografia embutida como texto conhecido, da seguinte maneira:
<OGRVRTDataSource>
<OGRVRTLayer name="test">
<SrcDataSource>MSSQL:server=zangief\DENALICTP3;database=TempDB;</SrcDataSource>
<SrcSQL>SELECT geography::STPolyFromText('POLYGON((0 50, 2 50, 2 53, 0 53, 0 50))', 4326).STAsText() AS geomWKT</SrcSQL>
<GeometryField encoding="WKT" field="geomWKT"/>
<LayerSRS>EPSG:4326</LayerSRS>
<GeometryType>wkbPolygon</GeometryType>
</OGRVRTLayer>
</OGRVRTDataSource>
(Observe que eu também tentei isso com a sintaxe SELECT * FROM Table mais convencional). O OGRINFO abre com êxito este VRT e relata o seguinte:
ogrinfo mssql.ovf -so -al
INFO: Open of `mssql.ovf'
using driver `VRT' successful.
Layer name: test
Geometry: Polygon
Feature Count: 1
Extent: (0.000000, 50.000000) - (2.000000, 53.000000)
Layer SRS WKT:
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.0174532925199433,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4326"]]
geomWKT: String (0.0)
No entanto, definir esse mesmo arquivo VRT como fonte de dados para uma camada Mapnik relata o seguinte erro:
ERROR 1: Failed to open datasource `MSSQL:server=zangief\DENALICTP3;database=Tem
pDB;'.
Traceback (most recent call last):
File "rundemo.py", line 48, in <module>
provlines_lyr.datasource = mapnik.Ogr(file="mssql.ovf", layer="test")
File "C:\OSGeo4W\apps\Python25\lib\site-packages\mapnik\__init__.py", line 418
, in Ogr
return CreateDatasource(keywords)
RuntimeError: Failed to open datasource `MSSQL:server=zangief\DENALICTP3;databas
e=TempDB;'.
Parece que há algum problema entre a maneira como o driver OGR cria a conexão do SQL Server e o Mapnik, mas não sei exatamente onde ele está. Ainda não encontrei nenhuma evidência ou exemplo que sugira que mais alguém tenha conseguido alcançar isso com êxito ...
fonte
Você pode usar o formato virtual (GDAL) para extrair dados do seu banco de dados MSSQL
http://www.gdal.org/ogr/drv_vrt.html
fonte: http://alastaira.wordpress.com/2011/06/16/tile-rendering-with-mapnik-part-1-of-n-where-n-is-large/
Embora recomende o Postgres PostGIS (possui melhores funções de geometria no lado do banco de dados)
fonte