Đây là một câu hỏi rất đơn giản - tôi chỉ muốn biết liệu có ai có thể xác nhận rằng họ đã sử dụng thành công Mapnik để kết xuất các ô trực tiếp từ dữ liệu được giữ trong SQL Server hay không. (Và, nếu vậy, bạn đã làm gì để nó hoạt động?) Xin vui lòng không trả lời trừ khi bạn đã xác nhận cá nhân rằng điều này là có thể ... không chỉ đơn giản là nó nên có thể
Tôi đã thấy mọi người đề xuất Mapnik để kết xuất dữ liệu từ SQL Server trong các luồng như thế này: Bất kỳ Công cụ kết xuất bản đồ tốt nào cho SqlGeometry / SqlGeography
Ngoài ra, trang web mapnik nói rằng "tất cả các định dạng OGR đều được hỗ trợ": http://mapnik.org/faq/#data
Tuy nhiên, tôi đã hoàn toàn không thể sử dụng kết nối đến cơ sở dữ liệu SQL Server cục bộ của mình làm nguồn dữ liệu cho lớp Mapnik. Để thử nghiệm, tôi đang sử dụng một thử nghiệm OGR VRT đơn giản, thực thi một câu lệnh SQL trên Máy chủ SQL để chọn một Đa giác địa lý nội tuyến duy nhất là Văn bản được biết đến như sau:
<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>
(Lưu ý tôi cũng đã thử điều này với cú pháp CHỌN * TỪ Bảng thông thường hơn). OGRINFO thành công mở VRT này và báo cáo như sau:
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)
Tuy nhiên, việc đặt cùng tệp VRT này làm nguồn dữ liệu cho lớp Mapnik báo cáo lỗi sau:
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;'.
Có vẻ như có một số vấn đề giữa cách trình điều khiển OGR tạo kết nối SQL Server và Mapnik, nhưng tôi không biết chính xác nó ở đâu. Tôi chưa tìm thấy bất kỳ bằng chứng hoặc ví dụ nào cho thấy rằng bất kỳ ai khác đã có thể thành công trong việc này ...