이것은 매우 간단한 질문입니다. SQL Server에 저장된 데이터에서 직접 타일을 렌더링하기 위해 Mapnik을 성공적으로 사용했는지 확인할 수 있는지 알고 싶습니다. (만약 그렇다면, 당신은 그것이 작동되도록 무엇을 했는가?)에 회신하지 마십시오 당신이 개인적이는 것을 단순히 ... 수 있음을 확인하지 않은 해야 가능
: 나는 사람들은이 하나의 스레드에서 SQL 서버에서 데이터를 렌더링 Mapnik을 권장 본 적이 SqlGeometry / SqlGeography에 대한 모든 좋은지도 렌더링 엔진
또한 mapnik 웹 사이트에는 "모든 OGR 형식이 지원됩니다"라고 표시되어 있습니다. http://mapnik.org/faq/#data
그러나 로컬 SQL Server 데이터베이스에 대한 연결을 Mapnik 계층의 데이터 소스로 완전히 사용할 수 없었습니다. 테스트로서, 다음과 같이 SQL Server에서 SQL 문을 실행하여 잘 알려진 텍스트로 단일 인라인 지리 다각형을 선택하는 간단한 테스트 OGR VRT를 사용하고 있습니다.
<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간에 약간의 문제가있는 것 같지만 정확히 어디에 있는지 모르겠습니다. 나는 다른 사람이 이것을 성공적으로 달성 할 수 있음을 암시하는 증거 나 예를 아직 찾지 못했습니다 ...