Це дуже просте запитання - я просто хочу знати, чи хтось може підтвердити, що вони успішно використовували Mapnik для візуалізації плиток безпосередньо з даних, що зберігаються в SQL Server. (І якщо так, то що ви зробили, щоб це працювало?) Будь ласка, не відповідайте, якщо ви особисто не підтвердили, що це можливо ... не просто так, що це повинно бути можливим
Я бачив, як люди рекомендують Mapnik для візуалізації даних із SQL Server у таких темах, як ця: Будь-які хороші двигуни візуалізації карт для SqlGeometry / SqlGeography
Також веб-сайт mapnik зазначає, що "підтримуються всі формати OGR": http://mapnik.org/faq/#data
Однак я не зміг використати з'єднання зі своєю локальною базою даних SQL Server як джерело даних для шару Mapnik. В якості тесту я використовую прямий тест OGR VRT, який виконує оператор SQL на SQL сервері, щоб вибрати єдиний вбудований географічний полігон як добре відомий текст:
<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>
(Зверніть увагу, я також спробував це з більш звичайним синтаксисом таблиці SELECT * FROM). OGRINFO успішно відкриває цей VRT та повідомляє про таке:
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)
Однак, встановивши цей самий файл VRT як джерело даних для шару Mapnik, повідомляється про наступну помилку:
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;'.
Здається, що існує певна проблема між тим, як драйвер OGR створює з'єднання SQL Server, і Mapnik, але я не знаю, де саме він знаходиться. Я ще не знайшов жодних доказів чи прикладів, які б припустили, що хтось ще успішно міг цього досягти ...