Dies ist eine sehr einfache Frage. Ich möchte nur wissen, ob jemand bestätigen kann, dass er Mapnik erfolgreich verwendet hat, um Kacheln direkt aus Daten zu rendern, die in SQL Server gespeichert sind. (Und wenn ja, was haben Sie getan, damit es funktioniert?) Bitte antworten Sie nicht, es sei denn, Sie haben persönlich bestätigt, dass dies möglich ist ... nicht einfach, dass es möglich sein sollte
Ich habe gesehen, dass Leute Mapnik zum Rendern von Daten von SQL Server in Threads wie diesem empfehlen: Alle guten Map-Rendering-Engines für SqlGeometry / SqlGeography
Auf der mapnik-Website heißt es außerdem, dass "alle OGR-Formate unterstützt werden": http://mapnik.org/faq/#data
Ich konnte jedoch keine Verbindung zu meiner lokalen SQL Server-Datenbank als Datenquelle für eine Mapnik-Ebene verwenden. Als Test verwende ich einen einfachen Test-OGR-VRT, der eine SQL-Anweisung auf einem SQL Server ausführt, um ein einzelnes Inline-Geografie-Polygon als bekannten Text wie folgt auszuwählen:
<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>
(Hinweis: Ich habe dies auch mit konventionellerer SELECT * FROM-Tabellensyntax versucht.) OGRINFO öffnet diese VRT erfolgreich und meldet Folgendes:
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)
Wenn Sie jedoch dieselbe VRT-Datei als Datenquelle für eine Mapnik-Ebene festlegen, wird der folgende Fehler gemeldet:
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;'.
Es scheint, dass es ein Problem zwischen der Art und Weise gibt, wie der OGR-Treiber die SQL Server-Verbindung erstellt, und Mapnik, aber ich weiß nicht genau, wo es sich befindet. Ich habe noch keine Beweise oder Beispiele gefunden, die darauf hindeuten, dass dies auch jemand anderem erfolgreich gelungen ist ...
quelle
Sie können das virtuelle Format (GDAL) verwenden , um Daten aus Ihrer MSSQL-Datenbank abzurufen
http://www.gdal.org/ogr/drv_vrt.html
Quelle: http://alastaira.wordpress.com/2011/06/16/tile-rendering-with-mapnik-part-1-of-n-where-n-is-large/
Obwohl Postgres PostGIS empfehlen (hat bessere Geometriefunktionen auf der Datenbankseite)
quelle