Mac OS X 用 MapServer (KyngChaos) の Mapscript (ruby) を動作させる
Ruby 版 Mapscript を Mac OS X 上で使えるようにしてみました。
MapServer 導入
http://www.kyngchaos.com/software:mapserver より MapServer 5.4.2-1 を導入。私の場合には FreeType framework を新たに導入する必要がありました。その他の frameworks は QGIS 導入のときに導入済みだったようです。
Mapscript (ruby) 導入
MapServer の配布物の中の説明に従い、ソースを展開し、GD のヘッダファイルと mapscriptvars ファイルをコピーして、ruby extconf.rb , make しますが、ここで一点だけ細かい問題が生じて、次のメッセージで make が停止してしまいます。
ld: file not found: /Library/Frameworks//GDAL.framework/Libraries/libogdi.dylib
これに対しては、対症療法的に
ln -s /Library/Frameworks/GDAL.framework/Versions/Current/Libraries /Library/Frameworks/GDAL.framework/Libraries
で対応すれば十分です。このまま、make , sudo make install できます。
Mapscript (ruby) 動作確認
Mapscript 自体はじめて使うのですが、とりあえず次のように動作確認しました。
マップファイル mapfile.map:
map status on units dd imagecolor 0 0 0 imagetype gif layer name 'main' connectiontype postgis connection "dbname=fitter user=happier password=more_productive host=localhost" data "the_geom FROM gsi_fgd_blda" type polygon status on class color 255 255 255 outlinecolor 0 0 255 symbol 0 end end end
require 'mapscript' map = Mapscript::MapObj.new('mapfile.map') map.width = 500 map.height = 500 map.setExtent(140.9060, 38.2357, 140.9071, 38.2358) img = map.draw img.save('a.gif')
$ ruby mapscript.rb
これで建物データが描画された画像 a.gif が作成されました。
マップファイルは Ruby 系 DSL っぽい外見で書くこともできそうなので、Ruby 好きからみても、それほど抵抗感なく書けるかも知れません。
背後で動いている処理系が MapServer のものであるだけあって、生成処理がかなり速い気がします。
MapScript? Mapscript?
MapScript のはてなキーワードを作成しようとして気がついたのですが、http://mapserver.org/mapscript/ によると、MapServer のこの手のインタフェースは、正式には MapScript と、S を大文字にして記述するようです。
しかし、Ruby binding のモジュール名は Mapscript と S を大文字にしないものになっています。