2014-08-28 14 views
0

我有一个有趣的问题,我一直在努力了几天,现在在Windows中,我得到一个空白的PNG响应,但在Linux中与几乎相同的地图文件,我得到了预期的输出。我使用Apache作为WMS服务器,在Linux中设置了MapServer,并且工作完美,但是我很遗憾需要切换到Windows和IIS。将MapServer从Apache与Apache切换到使用IIS的Windows。空白PNG响应

我有一个很小的sqlite数据库,我试图让MapServer显示一堆点。我在linux和windows中使用相同的sqlite数据库。

这里的Linux安装:(工程)

ogrinfo上的SQLite数据库:

[email protected]:/usr/lib/cgi-bin# ogrinfo CountiesAR.sqlite ArkPointGeo -summary 
INFO: Open of `CountiesAR.sqlite' using driver `SQLite' successful. 

Layer name: ArkPointGeo 
Geometry: Unknown (any) 
Feature Count: 1004 
Extent: (-94.515743, 33.069850) - (-89.870035, 36.495504) 
Layer SRS WKT: 
(unknown) 
FID Column = _rowid_ 
Geometry Column = GeoPoint 
PK_UID: Integer (0.0) 
PK_UID:1: Integer (0.0) 
DocumentID: String (0.0) 
Latitude: Real (0.0) 
Longitude: String (0.0) 

我得到预期的PNG时,我用命令运行shp2img:

shp2img -m Test.map -o test.png -all_debug 5 

地图文件:http://hastebin.com/iyerudipes.vhdl

和我用来访问的URL:

http://www.zachatrocity.com/cgi-bin/mapserv?mode=map&map=Test.map&layer=Points 

如果您按照该链接,您可以看到它显示。有了这个设置,一切都按预期工作。

在Windows设置:(不工作)

ogrinfo上的SQLite数据库:

C:\path\to\gdal-ogr>ogrinfo C:\pathto\data\CountiesAR.sqlite ArkPointGeo -summary 
INFO: Open of `C:\pathto\data\CountiesAR.sqlite' 
    using driver `SQLite' successful. 

Layer name: ArkPointGeo 
Geometry: Unknown (any) 
Feature Count: 1004 
Extent: (-94.515743, 33.069850) - (-89.870035, 36.495504) 
Layer SRS WKT: 
(unknown) 
FID Column = _rowid_ 
Geometry Column = GeoPoint 
PK_UID: Integer (0.0) 
PK_UID:1: Integer (0.0) 
DocumentID: String (0.0) 
Latitude: Real (0.0) 
Longitude: String (0.0) 

当我在Windows机器,我得到了我的分贝的每一个点以下运行shp2img:

msOGRFileNextShape: Rejecting feature (shapeid = 999, tileid=0) of incompatible type for this layer (feature wkbType 0, layer type 0) 

注意我没有在Linux的等效命令中出现任何错误。

地图文件:http://hastebin.com/subabefuxo.vhdl

和URL我用:

http://localhost:1020/cgi-bin/mapserv.exe?mode=map&map=C:\path\to\Test.map&layer=Points 

最后,调试文本:

[Thu Aug 28 09:19:31 2014].373000 CGI Request 1 on process 6584 
[Thu Aug 28 09:19:31 2014].380000 msDrawMap(): rendering using outputformat named png (AGG/PNG). 
[Thu Aug 28 09:19:31 2014].380000 msDrawMap(): WMS/WFS set-up and query, 0.000s 
[Thu Aug 28 09:19:31 2014].404000 msDrawMap(): Layer 0 (Points), 0.024s 
[Thu Aug 28 09:19:31 2014].404000 msDrawMap(): Drawing Label Cache, 0.000s 
[Thu Aug 28 09:19:31 2014].404000 msDrawMap() total time: 0.031s 
[Thu Aug 28 09:19:33 2014].103000 msSaveImage(stdout) total time: 1.699s 
[Thu Aug 28 09:19:33 2014].104000 mapserv request processing time (loadmap not incl.): 1.732s 
[Thu Aug 28 09:19:33 2014].105000 msFreeMap(): freeing map at 02A40048. 

任何想法,为什么会在我的Linux工作服务器,但不是我的Windows?我很茫然。

回答

0

解决此问题与Spatialite文档的第4.1节。我的数据中有一个无效的SRID,因为它是从shapefile导入的。我也认为这与GDAL/OGR的this错误有关,因为它仍然在linux中工作。无论如何,它可以通过SetSrid()函数修复。