p.mapper-4.2 [Chaper 1]
前回のms4wでp.mapper-4.2.0のデモが動いたので、今回は、手持ちのshapeファイルを表示してみたいと思います。
最終的には
な感じで日本語環境にしていきます。
また、p.mapperのマニュアルは必ず目を通して、不明点があればマニュアルを読みましょう。 何となくわかる英語ですので。。。
準備
まずは、簡単にすませるために、ms4w¥apps¥pmapper¥pmapper-4.2.0を丸ごとms4w¥Apsche¥htdocs¥にコピーして、pmapper42_mieとfolderの名前を変更しておきます。
pmapper42_mie内のconfigフォルダーをconfig_originalとして万一のためにコピーしておきます。
データをこちらからダウンロードして、解凍します。 解凍後mie_dataフォルダーをpmapper42_mieにコピーしておきます。
configファイルの編集
pmapper42_mie¥config¥config_default.xmlを編集します。
今回は、単純にshapeファイルを表示させるのではなく、日本語表示も合わせてやってみたいと思います。
config_default.xmlは、tagを記述して、設定をしていくことが基本となります。
一つ一つのtagの説明については、p.mapperのマニュアルを見てください。
修正点は、mie_city.shpとmie_railroad.shpとmie_river.shpをcategoryごとに表示することにします。
config_default.xmlは、最終的には、
<pmapper> <ini> <pmapper> <pmTitle>p.mapper - A MapServer PHP/MapScript Framework</pmTitle> <debugLevel>3</debugLevel> <plugins>export</plugins> <plugins>scalebar</plugins> <plugins>transparency</plugins> </pmapper> <config> <pm_config_location>default</pm_config_location> <pm_javascript_location>javascript</pm_javascript_location> <pm_javascript_optional>optional/ui</pm_javascript_optional> <pm_print_configfile>common/print.xml</pm_print_configfile> <pm_search_configfile>inline</pm_search_configfile> </config> <map> <mapFile>mie.map</mapFile> <tplMapFile>common/template.map</tplMapFile> <categories> <!-- <category name="cat_admin"> --> <category name="主題図"> <group>行政界</group> <group>鉄道</group> </category> <!-- <category name="cat_nature"> --> <category name="自然環境図"> <group>河川</group> </category> <!-- <category name="cat_raster"> <group>dem</group> <group>jpl_wms_global_mosaic</group> </category> --> </categories> <allGroups> <group>行政界</group> <group>鉄道</group> <group>河川</group> </allGroups> <defGroups> <group>行政界</group> <group>河川</group> </defGroups> <layerAutoRefresh>1</layerAutoRefresh> <!-- <imgFormat> png8</imgFormat> --> <imgFormat>png</imgFormat> <altImgFormat>jpeg</altImgFormat> <!-- <altImgFormatLayers> <layer>jpl_wms_global_mosaic</layer> <layer>dem</layer> </altImgFormatLayers> --> <sliderMax>max</sliderMax> <sliderMin>5000</sliderMin> </map> <query> <limitResult>300</limitResult> <highlightColor>0 255 255</highlightColor> <highlightSelected>1</highlightSelected> <autoZoom>nquery</autoZoom> <autoZoom>search</autoZoom> <zoomAll>search</zoomAll> <zoomAll>nquery</zoomAll> <infoWin>dynwin</infoWin> <alignQueryResults>1</alignQueryResults> <pointBuffer>10000</pointBuffer> <shapeQueryBuffer>0.02</shapeQueryBuffer> </query> <ui> <tocStyle>tree</tocStyle> <legendStyle>attached</legendStyle> <useCategories>1</useCategories> <catWithCheckbox>1</catWithCheckbox> <scaleLayers>1</scaleLayers> <icoW>18</icoW> <icoH>14</icoH> <legendKeyimageRewrite>0</legendKeyimageRewrite> </ui> <locale> <defaultLanguage>ja</defaultLanguage> <defaultCharset>UTF-8</defaultCharset> <!-- <map2unicode> 1</map2unicode> --> <map2unicode>0</map2unicode> </locale> <print> <printImgFormat>png</printImgFormat> <printAltImgFormat>jpeg</printAltImgFormat> <pdfres>2</pdfres> </print> <download> <dpiLevels>150</dpiLevels> <dpiLevels>200</dpiLevels> <dpiLevels>300</dpiLevels> </download> <php> <pearDbClass>MDB2</pearDbClass> <defaultTimeZone>Asia/Tokyo</defaultTimeZone> </php> <pluginsConfig> <export> <formats>XLS</formats> <formats>CSV</formats> <formats>PDF</formats> </export> <transparency2> <useOpacity>off</useOpacity> </transparency2> </pluginsConfig> </ini> <!-- searchlist内の記述は開発途中です。--> <searchlist version="1.0"> <dataroot>$</dataroot> <searchitem name="市町村名" description="行政界"> <layer type="shape" name="行政界"> <field type="s" name="CN2" description="mie_city" wildcard="2"> <definition type="options" connectiontype="ms" sort="asc" firstoption="*"> <mslayer encoding="UTF-8"/> </definition> </field> </layer> </searchitem> </searchlist> </pmapper>
のようになります。
保存する際は、UTF-8で保存してください。私は、editorはTeraPadを使わせてもらっています。 保存時に文字コードを変更して保存できるので、非常に便利です。TeraPadでは、文字コードをUTF-8Nとして保存します。
主題図カテゴリーの中に、行政界と鉄道をグループとして登録、自然環境に河川をグループとして登録しています。
<searchlist>については、私自身が完全に理解できていないので、開発中としています。
map fileの作成
p.mapperのデモでも修正をしましたが、map fileを作成します。
pmapper42_mie¥config¥default¥内に、mie.mapをエディターで作成します。
今回使うmie.mapは、最終的には、
#################################################### # Start of map file (pmapper-4.2.0) #################################################### MAP # The ShapeFile access is available in MapServer5.6.5 # Projection of PROJ4 # mie shpfile # editer:TYS update:2012.04.03 #################################################### # Start of output projection definition #################################################### PROJECTION 'proj=longlat' 'ellps=WGS84' 'datum=WGS84' 'no_defs' END #CONFIG "PROJ_LIB" "C:/ms4w/proj/nad/" # End of output projection EXTENT 135.347801 33.682544 137.491510 35.305096 STATUS ON UNITS DD INTERLACE OFF SIZE 400 400 IMAGETYPE jpeg IMAGECOLOR 255 255 255 #################################################### #linux #FONTSET "../common/fonts/msfontset.txt" #SYMBOLSET "../common/symbols/symbols-pmapper.sym" #SHAPEPATH "../../mie_data" #windows FONTSET "../common/fonts/msfontset.txt" SYMBOLSET "../common/symbols/symbols-pmapper.sym" SHAPEPATH "../../mie_data" #################################################### #DEBUG ON OUTPUTFORMAT NAME png DRIVER "GD/PNG" MIMETYPE "image/png" IMAGEMODE RGB FORMATOPTION INTERLACE=OFF TRANSPARENT OFF END OUTPUTFORMAT NAME png8 DRIVER "GD/PNG" MIMETYPE "image/png" IMAGEMODE PC256 FORMATOPTION INTERLACE=OFF TRANSPARENT OFF END OUTPUTFORMAT NAME GTiff DRIVER "GDAL/GTiff" MIMETYPE "image/tiff" IMAGEMODE RGB #FORMATOPTION "TFW=YES" #FORMATOPTION "COMPRESS=PACKBITS" END OUTPUTFORMAT NAME imagemap MIMETYPE "text/html" FORMATOPTION SKIPENDTAG=OFF DRIVER imagemap END #################################################### # Start of web interface definition #################################################### WEB TEMPLATE "map.html" #Linux #IMAGEPATH "/var/www/html/tmp/ms_tmp/" #IMAGEURL "/tmp/ms_tmp/" #Windows IMAGEPATH "/ms4w/tmp/ms_tmp/" IMAGEURL "/ms_tmp/" QUERYFORMAT text/html MAXSCALE 1000000 MINSCALE 5000 END #################################################### # Start of Reference map definition #################################################### REFERENCE EXTENT 135.347801 33.682544 137.491510 35.305096 IMAGE "../../images/reference.png" SIZE 200 150 COLOR -1 -1 -1 OUTLINECOLOR 255 0 0 STATUS ON MARKER 0 MARKERSIZE 0 MINBOXSIZE 3 MAXBOXSIZE 0 COLOR -1 -1 -1 OUTLINECOLOR 255 0 0 END # Reference #################################################### # Start of layer definitions #################################################### # mie_city LAYER NAME "行政界" TYPE POLYGON STATUS ON DATA "mie_city" METADATA "DESCRIPTION" "行政界" #"RESULT_FIELDS" "mie_city" END TRANSPARENCY 100 CLASS NAME "行政界" STYLE #SYMBOL 1 SIZE 7.0 COLOR -1 -1 -1 #255 255 255 OUTLINECOLOR 255 0 0 END TEMPLATE "ttt_query.html" END TOLERANCE 5 END # Layer #################################################### # mie_river LAYER NAME "河川" METADATA "DESCRIPTION" "河川" END TYPE LINE STATUS ON DATA "mie_river" CLASS NAME "河川" STYLE SYMBOL 1 SIZE 1.0 WIDTH 1 #0.5 COLOR 0 170 255 END #TEMPLATE void END END # layer #################################################### # mie_railroad LAYER NAME "鉄道" METADATA "DESCRIPTION" "鉄道" END TYPE LINE STATUS OFF DATA "mie_railroad" CLASS NAME "鉄道" STYLE SYMBOL 1 COLOR 0 0 0 END #TEMPLATE void END END # Layer END #Map
となります。
保存する際は、UTF-8で保存してください。
ここで、config_default.xmlとmie.mapを見比べてください。
LAYERのNAMEがそれぞれの<group>tagと一致しています。
また、LAYER内で行政界は、mie_city.shpであると定義しています。このように、config_default.xmlとmie.mapを2つのファイルで整合をとらなければなりません。
せっかくですので、mie.mapの定義が正しく記述されて作図できるか試してみましょう。
ディスクトップ上MS4W-Shellを起動して、cmdで以下mie.mapがある場所にcdします。
shp2img -m mie.map -o test.jpg
と入力後実行すると、ms4w¥Apsche¥htdocs¥pmapper42_mie¥config¥default内にtest.jpgで三重県の画像が作成されます。
こんな、
感じです。
エラーがでたり、何もない画像だとmap fileの記述に誤りがあることになります。
reference map作成
pmapper42_mieを表示した際に、画面右下の概観図を作成します。
mie.mapをそのまま使っても良いのですが、行政界だけで作成します。
mie.mapのLAYERの”行政界”以外を STATUS OFFにして、保存します。
shp2img -m mie.map -o reference.png
でreference.pngを作成して、ms4w¥Apsche¥htdocs¥pmapper42_mie¥images¥内に上書きコピーします。
php.iniの修正
最後に、php.iniの修正をして日本語が表示できるようにします。
ms4w¥Apsche¥cgi-bin¥php.iniを修正します。
修正箇所は、
mbstring.language = Japanese; デフォルト言語を日本語に設定 mbstring.internal_encoding = UTF-8 ; 内部エンコーディングを UTF-8 に設定 mbstring.encoding_translation = On mbstring.http_input = auto ; HTTP 入力を auto に設定 mbstring.http_output = UTF-8 ; HTTP出力エンコーディングを mbstring.detect_order = auto ; デフォルトの順番を auto に設定 mbstring.substitute_character = none ; 文字を出力しない
修正後は、Apacheを再起動をしておきます。
pmapper42_mieの表示
後はWEB ブラウザーで、http://127.0.0.1/pmapper42_mie/ を入力すれば、
のように表示されます。
Pluginを追加していないので、はじめに表示したものと若干違いますね。Pluginについては次回に説明します。
表示されない場合は、文字コードを再度確認してください。
また、操作していると検索画面が文字化けしていますが、これも修正する必要がありますね。
順番にVersion upしていきます。
それでは、今日はここまで。
最近のコメント