私は数日間取り組んできた興味深い問題を抱えています。Windowsでは空白のpng応答が返されますが、Linuxではほぼ同じマップファイルがあり、期待される出力が得られます。WMS サーバーとして Apache を使用して Linux に MapServer をセットアップしましたが、完全に機能していましたが、残念ながら Windows と IIS に切り替える必要があります。
MapServerに表示させようとしているポイントがたくさんある小さなsqliteデータベースがあります。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
そして私が使用する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 サーバーでは機能しないのかについてのアイデアはありますか? 私は途方に暮れています。