これは非常に簡単な質問です。Mapnikを使用してSQL Serverに保持されているデータから直接タイルを正常にレンダリングしたことを誰かが確認できるかどうか知りたいだけです。(もしそうなら、それを機能させるために何をしましたか?)これが可能であることを個人的に確認しない限り、返信しないでください...単に可能であることだけではありません
次のようなスレッドでSQL ServerからのデータをレンダリングするためにMapnikを推奨する人を見たことがあります。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 Table構文でも試しました)。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の間にいくつかの問題があるようですが、どこにあるのか正確にはわかりません。他の誰かがこれをうまく達成できたことを示唆する証拠や例はまだ見つかりません...