Esta es una pregunta muy simple: solo quiero saber si alguien puede confirmar que ha utilizado con éxito Mapnik para representar mosaicos directamente de los datos almacenados en SQL Server. (Y, si es así, ¿qué hizo para que funcione?) No responda a menos que haya confirmado personalmente que esto es posible ... no simplemente que debería ser posible
He visto a personas recomendar Mapnik para representar datos de SQL Server en subprocesos como este: Cualquier buen motor de representación de mapas para SqlGeometry / SqlGeography
Además, el sitio web de mapnik afirma que "todos los formatos de OGR son compatibles": http://mapnik.org/faq/#data
Sin embargo, no he podido utilizar una conexión a mi base de datos local de SQL Server como fuente de datos para una capa Mapnik. Como prueba, estoy usando una prueba sencilla OGR VRT, que ejecuta una instrucción SQL en un servidor SQL para seleccionar un único polígono de geografía en línea como texto conocido, como sigue:
<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>
(Tenga en cuenta que también he intentado esto con la sintaxis SELECT * FROM Table más convencional). OGRINFO abre con éxito este VRT e informa lo siguiente:
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)
Sin embargo, la configuración de este mismo archivo VRT como fuente de datos para una capa Mapnik informa el siguiente error:
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 hay algún problema entre la forma en que el controlador OGR crea la conexión de SQL Server y Mapnik, pero no sé exactamente dónde está. Todavía no he encontrado ninguna evidencia o ejemplo que sugiera que alguien más haya podido lograr esto con éxito ...
fuente
Puede usar el formato virtual (GDAL) para extraer datos de su base de datos MSSQL
http://www.gdal.org/ogr/drv_vrt.html
fuente: http://alastaira.wordpress.com/2011/06/16/tile-rendering-with-mapnik-part-1-of-n-where-n-is-large/
Aunque recomiendo Postgres PostGIS (tiene mejores funciones de Geometría en el lado de la base de datos)
fuente