我有一个有趣的问题,我已经研究了几天了,在 Windows 中,我得到一个空白的 png 响应,但是在具有几乎相同地图文件的 linux 中,我得到了预期的输出。我在 Linux 中使用 Apache 作为 WMS 服务器设置了 MapServer,它运行良好,但是我很遗憾需要切换到 Windows 和 IIS。
我有一个小型 sqlite 数据库,其中包含我试图让 MapServer 显示的一堆点。我在 linux 和 windows 中使用相同的 sqlite 数据库。
这是Linux设置:(有效)
sqlite db上的ogrinfo:
root@sweatshop:/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)
当我使用以下命令运行 shp2img 时,我得到了预期的 png:
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 设置:(不工作)
sqlite db上的ogrinfo:
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
和我使用的网址:
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 服务器上运行的任何想法?我不知所措。