MapScriptまつり#3 - ピンを差してみよう
gif画像でピンを立てるってのをやってみます。
まず、32 * 32 のピンの画像ファイルを作っておきます。
mapfileで、MAPオブジェクト直下に次のディレクティブを置きます。
SYMBOLSET ./symbols.txt
symbols.txt は次のようなかんじ。
SYMBOLSET SYMBOL NAME "pin-32x32" TYPE PIXMAP IMAGE "./pin-32x32.gif" END END
スクリプトには、次を挿入します。位置は…四角形の描画の後にしておきましょう。
# ======== 35.652, 139.742 にピンを立てる ==== ここから # レイヤ作成 $layerObj = new mapscript::layerObj($mapObj); $layerObj->STORE('name','PIN'); $layerObj->STORE('status',$mapscript::MS_ON); $layerObj->STORE('type',$mapscript::MS_LAYER_POINT); # class, style 作成 $classObj = new mapscript::classObj($layerObj); $styleObj = new mapscript::styleObj($classObj); # styleにsymbolを入れる $styleObj->setSymbolByName($mapObj,'pin-32x32'); # 中心(16,16)がポイントになるのを 22,28 に移動させたい $styleObj->STORE('offsetx',-6); $styleObj->STORE('offsety',-12); # FEATUREを付ける(POINTでも1つの端点を持つ1つの線からなるshapeObjを使用する必要あり) $lineObj = new mapscript::lineObj(); $lineObj->add(new mapscript::pointObj(139.742,35.652)); $shapeObj = new mapscript::shapeObj($mapscript::MS_LAYER_POINT); $shapeObj->add($lineObj); $layerObj->addFeature($shapeObj); # ======== 35.652, 139.742 にピンを立てる ==== ここまで
ここで、四角形を描く部分とピンを差す部分とを入れ替えてみると、せつない画像になった…。
MapScriptについては、とりあえずここまで、と思う。ネタ少ないにゃあ…。