C'est une question très simple - je veux juste savoir si quelqu'un peut confirmer qu'il a utilisé avec succès Mapnik pour rendre les tuiles directement à partir des données contenues dans SQL Server. (Et, si oui, qu'avez-vous fait pour le faire fonctionner?) Veuillez ne pas répondre à moins que vous n'ayez personnellement confirmé que cela est possible ... pas simplement que cela devrait être possible
J'ai vu des gens recommander Mapnik pour le rendu des données de SQL Server dans des threads comme celui-ci: tous les bons moteurs de rendu de carte pour SqlGeometry / SqlGeography
En outre, le site Web de mapnik indique que "tous les formats OGR sont pris en charge": http://mapnik.org/faq/#data
Cependant, j'ai été complètement incapable d'utiliser une connexion à ma base de données SQL Server locale comme source de données pour une couche Mapnik. À titre de test, j'utilise un test OGR VRT simple, qui exécute une instruction SQL sur un serveur SQL pour sélectionner un seul polygone de géographie en ligne comme texte bien connu, comme suit:
<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>
(Notez que j'ai également essayé cela avec une syntaxe SELECT * FROM de table plus conventionnelle). OGRINFO ouvre avec succès cette VRT et signale ce qui suit:
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)
Cependant, la définition de ce même fichier VRT comme source de données pour une couche Mapnik signale l'erreur suivante:
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;'.
Il semble qu'il y ait un problème entre la façon dont le pilote OGR crée la connexion SQL Server et Mapnik, mais je ne sais pas exactement où il se trouve. Je n'ai pas encore trouvé de preuves ou d'exemples suggérant que quelqu'un d'autre a réussi à y parvenir non plus ...
la source
Vous pouvez utiliser le format virtuel (GDAL) pour extraire des données de votre base de données MSSQL
http://www.gdal.org/ogr/drv_vrt.html
source: http://alastaira.wordpress.com/2011/06/16/tile-rendering-with-mapnik-part-1-of-n-where-n-is-large/
Bien que je recommande Postgres PostGIS (a de meilleures fonctions de géométrie du côté de la base de données)
la source