यह एक बहुत ही सरल सवाल है - मैं सिर्फ यह जानना चाहता हूं कि क्या कोई यह पुष्टि कर सकता है कि उन्होंने SQL सर्वर में रखे डेटा से सीधे टाइल रेंडर करने के लिए सफलतापूर्वक मैपनिक का उपयोग किया है। (और, यदि ऐसा है, तो आपने इसे काम करने के लिए क्या किया?) कृपया जवाब न दें जब तक कि आपने व्यक्तिगत रूप से पुष्टि नहीं की है कि यह संभव है ... बस यह नहीं कि यह संभव होना चाहिए
मैंने देखा है कि लोग Mapnik को SQL सर्वर से थ्रेड्स में डेटा रेंडर करने के लिए सुझाते हैं जैसे कि: SqlGeometry / SqlGeography के लिए कोई भी अच्छा मैप रेंडरिंग इंजन
इसके अलावा, Mapnik वेबसाइट बताती है कि "सभी OGR प्रारूप समर्थित हैं": http://mapnik.org/faq/#data
हालाँकि, मैं अपने स्थानीय SQL सर्वर डेटाबेस के लिए एक कनेक्शन का उपयोग करने में पूरी तरह से असमर्थ रहा हूँ एक 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>
(नोट मैंने इसे अधिक पारंपरिक चयन * टेबल सिंटैक्स से भी आज़माया है)। 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 सर्वर कनेक्शन और Mapnik बनाने के तरीके के बीच कुछ समस्या है, लेकिन मुझे नहीं पता कि यह कहाँ है। मुझे अभी तक कोई ऐसा सबूत या उदाहरण नहीं मिला है जिससे यह पता चले कि किसी और को भी इसे हासिल करने में सफलता मिली है ...