SlideShare una empresa de Scribd logo
1 de 49
MapServer入門

FOSS4G 2012 Hokkaido
ハンズオンセッション
             北海道地図株式会社 原田英夫
セッションの内容



                 インストール
                 MapServerとは?
                 演習



    MapServer入門 - FOSS4G 2012 Hokkaido -
2
インストール




    MapServer入門 - FOSS4G 2012 Hokkaido -
3
インストールの前に…
     Apacheがサービスとしてインストールされます
        サービス名は[Apache MS4W Web Server]なので被らないはず。
        インストール先はMS4Wのフォルダ内なので被らないはず。
        Webブラウザで http://localhost/ を開く
         →つながってしまったら…ひとまず停める。またはMS4Wインストール時にポートを変える。


     テキストエディタはUTF8対応を使いましょう
        Windows付属のメモ帳はちょっと…(BOMが付く)
        TeraPad,Vim,Emacsなどがお勧め




    MapServer入門 - FOSS4G 2012 Hokkaido -
4
MS4W(MapServer for Windows)を使いま
    す
    Windows版Mapserverと関連するアプリケーションのパッケージ
        学習用途にオススメ(実運用も出来ます)


    MS4W 3.0.6(2012/05/26リリース)の標準コンポーネント
       Apache HTTP Server version 2.2.22
       PHP version 5.4.3
       MapServer CGI 6.0.3
       MapScript 6.0.3 (CSharp, Java, PHP, Python)
       Includes support for Oracle 11g, and SDE data (if you have associated client/dlls)
       MrSID support built-in
       GDAL/OGR 1.9.1 and Utilities
       MapServer Utilities
       PROJ Utilities
       Shapelib Utilities
       Shp2tile Utility
       Shpdiff Utility
       AVCE00 Utilities
       OGR/PHP Extension 1.0.0
       OWTChart 1.2.0




    MapServer入門 - FOSS4G 2012 Hokkaido -
5
MS4Wのダウンロード
    1. 公式サイト : http://www.maptools.org/ms4w/
       (ms4wでググればOK!)

    2. Download(or Latest Version)からインストーラをダウン
       ロード
       setup.exe installer(142KB)はオンラインインストーラ
         ↑今回はこちらを使います
         zip Archive(49MB)はオフラインインストーラ




                                           ms4w-3.0.6-setup.exe


    MapServer入門 - FOSS4G 2012 Hokkaido -
6
MS4Wのインストール-1
    注意事項
     管理者権限で実行する。
     「発行元」に関するセキュリティ警告が出るが実行する。
     基本的には全てデフォルトでインストール。
      今回はコンポーネント構成にOpenLayersを追加

     インストールパスはCドライブ直下(c:)にする。
      少なくとも日本語パスやスペースを含むパスは避ける(安全策)

     他のWebサーバ(Apache/IIS, etc.)があればポートを変更する。




    MapServer入門 - FOSS4G 2012 Hokkaido -
7
MS4Wのインストール-2
    インストーラ実行画面の一覧




                                           右クリックで
                                           ログをクリップボード
                                           に
                                           コピーできる




    MapServer入門 - FOSS4G 2012 Hokkaido -
8
MS4Wのインストール-3
    インストール結果の確認
     http://localhost/
       をWebブラウザで開く




     http://localhost/cgi-bin/mapserv.exe
        CGIで動作します
        Linuxでは末尾の.exe不要




9   MapServer入門 - FOSS4G 2012 Hokkaido -
MS4Wのインストール 余談
      オフラインでインストールしたい
      既存Apache(Webサーバ)を使いたい
       オンラインインストーラはオフラインzipをダウンロード・展開して、Apacheの設定してるだけ。
       Apacheのインストール知識があれば、オンラインインストールの結果&ログファイルを参考にすると
       良い。

      OSGeo4Wを薦められたけど…
       現在(2012/7)はMapServerが一つ前のメジャーバージョン(5.x)、
       6.xと完全な互換性は無いので注意!!




     MapServer入門 - FOSS4G 2012 Hokkaido -
10
MapServerとは?




11   MapServer入門 - FOSS4G 2012 Hokkaido -
MapServerとは?
       公式サイト http://mapserver.org/
       2012/07/01現在のバージョンは6.0.3


      地図をWebページで表示するための「マッピングエンジ
       ン」の代表格。
      90年代中期から開発が始まり、2004年に国際化対応される。
      国内の官公庁・一般企業のサイトでの採用も進み、
       Mapionの地図描画にも採用されている。

      標準規格のOGC(Open GIS Consortium)仕様に対応。
      Linux(UNIX)、Mac OS X、Windowsバイナリが配布されてい
       る。
      もちろんオープンソースなのでソースからビルドできる。
12   MapServer入門 - FOSS4G 2012 Hokkaido -
MapServerが提供する機能
      地図描画機能
         地図表現に必要な点・線・塗り、注記、記号などの描画設定。
         縮尺による描画設定の切り替え。
         設定方法・・・Mapfileと呼ばれるテキストファイル。

      地図表示機能
         Shapefile、地理DBなどから地図データ(画像、ベクトル)を作成する。
         整飾(凡例、参照図、スケールバー画像など)も作成できる。
         On-the-flyに投影法変換もできる→I/Oそれぞれで投影法が混在できる。

      OGCに基づくWebサービスに対応
         WMS,WFS,GML,SLD etc…
         mapserver –v で確認する

      開発言語・環境への対応
         PHP,Python,Perl,Ruby,Java,.NET

      総合GIS環境ではない
         UI、解析、データ管理機能は外部ツールを使用する。




13   MapServer入門 - FOSS4G 2012 Hokkaido -
対応データ
      対応データフォーマット
         ベクトル・・・ ESRI Shapefile, PostGIS(DB), GML/KML,GPX,Spatilite, etc…
         ラスタ・・・TIFF/GeoTIFF, Erdas LAN/GIS, GIF/PNG/JPEG(world fileが必要)
         gdalinfo --formats、ogrinfo --formatsで確認する(環境変数を適用するためにMS4W-Shellを使用する)




14   MapServer入門 - FOSS4G 2012 Hokkaido -
MapServerで使用するGIS用語
     以下は押さえておきたい
      ESRI Shapefile (シェープファイル)
      GeoTIFF (ジオティフ)
      PostGIS (ポストジス、ポスジス)
      投影法、座標系、測地系、SRID(A Spatial Reference System Identifier)
      WMS、WFS




     英語ですが http://mapserver.org/glossary.html にも載ってます。




15   MapServer入門 - FOSS4G 2012 Hokkaido -
ESRI Shapefileとは
      地図情報を格納するためのベクター形式ファイル(点・
       線・面)。
      ArcGISでお馴染みのESRI社が設計・リリースし、GISではデ
       ファクトスタンダードになっている。
      ファイルは形状(.shp)、属性(.dbf)、インデクス(.shx)の3つ
       一組。
       投影定義の.projなどのオプションファイルもある

      MapServerの標準的なデータ形式の一つ。
      属性は固定長、2GBの壁、フィールド数制限があり、大規
       模データには向かない。




16   MapServer入門 - FOSS4G 2012 Hokkaido -
GeoTIFF
      地理情報向けラスタ形式の代表的フォーマット。
      TIFFフォーマットのタグに投影法・測地系、四隅座標など
       が記録されている。
         GIF/JPEG/PNGはworld fileを用いる→画像+world fileでは投影法・測地系は判らない。

      詳細はgdalinfoやlistgeo(libgeotiff lib utility)で確認する。
      公式サイト→http://trac.osgeo.org/geotiff/




17   MapServer入門 - FOSS4G 2012 Hokkaido -
PostGIS
      OSSのデータベース、PostgreSQLの地理空間情報拡張。
      データ格納だけではなく、各種演算機能が豊富に提供され
       ている。
      空間計測・関係、ジオメトリの構築・変換、フォーマット
       変換。
      基本的なSQLを覚える必要はあるが、大規模データやネッ
       トワーク共有(DBサーバを分ける)を考えているなら必携。
      公式サイト→http://postgis.refractions.net/
      日本語に翻訳されたマニュアル(農研機構)
       →http://www.finds.jp/docs/pgisman/




18   MapServer入門 - FOSS4G 2012 Hokkaido -
投影法、座標系、測地系、SRID
      球体の地球を平面に投影する方法(メルカトル、正距方位
       など)
      数値(座標)の組み合わせの意味
         地理座標系(緯度経度)
         平面直角座標系(日本全国に19原点、メートル単位のXY座標)
         UTM/ユニバーサルメルカトル(地球を南北方向の帯で分割、メートル単位のXY座標)

      ある位置を経緯度・標高により表すときの前提条件
         日本測地系(旧日本測地系、Tokyo Datum)
         世界測地系(新日本測地系、JGD2000)



      ↑のパラメータをIDで管理・指定するのがSRID(EPSGコード
       )
         4301:緯度経度       日本測地系(Tokyo)
         4326:緯度経度 世界測地系(WGS84)
         4612:緯度経度 世界測地系(JGD2000)
         3857 or 900913:Webメルカトル、Google投影
         日本でよく使われるコード→ http://www.finds.jp/docs/pgisman/2.0.0/postgis.html#srs_in_japan
19   MapServer入門 - FOSS4G 2012 Hokkaido -
WMS・WFS
      OGC(Open GIS Consortium)の定めるWeb標準プロトコル
         OGCの定める規格に対応することで、異なるアプリケーション、データベース間での地理空間情
          報を交換できる。

      WMS(Web Map Service)
         ベクトル/ラスター形式の地図データをラスター形式で生成、取得する。
         WebブラウザではWMSでの利用が一般的。

      WFS(Web Feature Service)
         ベクトル形式の地図データをGML(Geography Markup Language)形式で生成、取得。
         デスクトップGISや属性取得・表示用途に使用される。
         Webブラウザでもレンダリングできるが、現段階では重い→HTML5,WebGL/MapGL普及に期待。
         GMLもOGCが仕様策定。




20   MapServer入門 - FOSS4G 2012 Hokkaido -
演習




21   MapServer入門 - FOSS4G 2012 Hokkaido -
演習データの配置
     1. 演習データ一式(mapserverフォルダ)を
        c:ms4wapachehtdocs にコピー。
     2. http://localhost/mapserver.html をWebブラウザで開く。
     3. example01/index.htmlをエディタで開き、<img>タグのsrc
        パラメータを確認する。
      src=“/cgi-bin/mapserv.exe?map=../htdocs/mapserver/example01/example.map&mode=map”

     •    mapパラメータ・・・Mapfileのパス。MapServer CGIからの相対パス指定。
     •    modeパラメータ・・・生成するファイル種別。”map”は地図画像を生成する。
     •    詳しくは http://mapserver.org/cgi/controls.html




22   MapServer入門 - FOSS4G 2012 Hokkaido -
使用するデータ
      今回の講習ではOpenStreetMapのベクトルデータを使用し
       ています。
      QGISのOpenStreetMapプラグインで表示範囲のベクトルデ
       ータをダウンロードし、Shapefileに変換しました。




23   MapServer入門 - FOSS4G 2012 Hokkaido -
例1)レイヤーを表示する
      線形上の道路を単一シンボルで表示する
         Mapfileの基本的要素で構成してみる



      example01/index.htmlとexample01/example.mapをテキスト
       エディタで開く




24   MapServer入門 - FOSS4G 2012 Hokkaido -   Map data © OpenStreetMap contributors, CC BY-SA
Mapfile解説 - 例1)レイヤーを表示する
               MAP
                # データフォルダを相対パスで指定                        MAP,LAYER,CLASSなどのオブジェクトから構成されて
                SHAPEPATH "../data"                       いる。オブジェクトはENDで閉じられる。
               PROJECTION                                SHAPEPATH・・・データフォルダのパス。絶対パス、
                "init=epsg:4326" # WGS84                  あるいはマップファイルからの相対パス指定
               END
               EXTENT 141.330 43.040 141.380 43.080      PROJECTION・・・地図の投影法
                                                         EXTENT・・・地図の出力範囲
               IMAGETYPE PNG
               IMAGECOLOR 255 255 240                    IMAGETYPE・・・画像形式
               SIZE  500 400
                                                         IMAGECOLOR・・・背景色
               LAYER
                NAME "道路"                                SIZE・・・画像サイズ(px)
                # osm_line_road.shpでも良い
                DATA osm_line_road                       MAP・・・MAPオブジェクトは必須であり、常に最も
                STATUS DEFAULT                            外側になる。
                TYPE LINE
                                                         LAYER・・・データソース、スタイルから構成される
                 CLASS
                  STYLE
                                                          。
                   COLOR 255 128 0                       NAME・・・省略可だが、なるべく付ける。
                   WIDTH 2.0
                  END                                    DATA・・・データソース(ファイル名)。拡張子を省略
                 END
                END                                       するとShapefileと見なす。
               END
                                                         TYPE・・・ジオメトリタイプ。POINT/LINE/POLYGON、
                                                          RASTER。
                                                         CLASS・・・LAYERを分類するための構成要素。
                                                         STYLE・・・視覚的設定の項目。
25   MapServer入門 - FOSS4G 2012 Hokkaido -
Mapfileの基本
      オブジェクト名は大文字小文字の区別無し
      オブジェクトの順序は自由だが、階層関係は重要
      インデントはタブでも空白でも良い。
       無くてもエラーにはならないがバグの元!
      文字列はダブルクォート推奨
      コメントは # で始める




26   MapServer入門 - FOSS4G 2012 Hokkaido -
デバッグテクニック
      画像が表示されない…(意図したとおりにならない)
         画像だけ表示してみる(Webブラウザのコンテキストメニューから)
          http://localhost/cgi-bin/mapserv.exe?map=../htdocs/mapserver/example01/example.map&mode=map




         Mapfileにデバッグ設定を加える(パフォーマンスチューニングにも使える)
             MAP
              DEBUG 2
              CONFIG "MS_ERRORFILE" "/ms4w/tmp/ms_error.txt"

              # データフォルダを相対パスで指定
              SHAPEPATH "../data"


           DEBUG ・・・ 0-5で出力レベルを変更する
           CONFIG “MS_ERRORFILE” ・・・ログファイルを指定。絶対パス or Mapfileからの相対パス。累積
           されるので長期運用時は注意!




27   MapServer入門 - FOSS4G 2012 Hokkaido -
演習1)Mapfileの編集とデバッグ
     1. DATAパラメータの文字列(ファイル名)を適当に変えてみ
        る。
     2. 前ページのデバッグテクニックを試してみる。
     3. DEBUGレベルを変更して、ログファイルの内容を観察す
        る。




28   MapServer入門 - FOSS4G 2012 Hokkaido -
例2)属性によるスタイル設定
      道路種別属性によって描画設定を変えてみる
         一つのLAYERに複数のCLASSを定義する
         分類に使用する属性項目、属性値の指定を理解する




29   MapServer入門 - FOSS4G 2012 Hokkaido -   Map data © OpenStreetMap contributors, CC BY-SA
Mapfile解説 - 例2)属性によるスタイル設定
        LAYER                     CLASSITEM・・・LAYERを分類するためのフィールド名
         NAME "道路"
         DATA osm_line_road       EXPRESSION・・・CLASSITEMの属性値。各CLASSに一つ定義する。
         STATUS DEFAULT            LAYERの最後のCLASSでEXPRESSIONを定義しないことで「その他」を定
         TYPE LINE                 義できる。
         CLASSITEM "HIGHWAY"

         CLASS                    EXPRESSIONを宣言すると、そのLAYERではフィールド名を省略できる
          EXPRESSION "trunk"
          STYLE                    。
           COLOR 127 201 127
           WIDTH 3.0
                                       数値も文字列も引用符が必要。
          END                          複雑な条件は定義できない。
         END

         # else
         CLASS
          STYLE
           COLOR 128 128 128
           WIDTH 0.5
          END
         END

        END




30   MapServer入門 - FOSS4G 2012 Hokkaido -
演習2)属性によるスタイルの変更
      CLASSITEMとEXPRESSIONを使用して描画設定を拡張する
      パラメータは以下を使用(cf. http://wiki.openstreetmap.org/wiki/JA:Key:highway)
               種別    属性値(文字列)              色(RGB)           線幅

          国道        trunk          緑(127 201 127)     2.0

          主要道路      primary        赤(228 109 113)     1.5

          地方道       secondary      オレンジ(253 191 11)   1.5

          一般道       tertiary       青(65 105 125)      1.0

          その他                  -   灰(128 128 128)     0.5

       ※色と線幅は参考値です




31   MapServer入門 - FOSS4G 2012 Hokkaido -
演習2)解答
     LAYER                    CLASS
       NAME "道路"                NAME "地方道"
       DATA osm_line_road       EXPRESSION "secondary"
       STATUS DEFAULT           STYLE
       TYPE LINE                 COLOR 253 191 11
                                 WIDTH 1.0
      CLASSITEM "HIGHWAY"       END
                               END
      CLASS
       NAME "国道"               CLASS
       EXPRESSION "trunk"       NAME "一般道"
       STYLE                    EXPRESSION "tertiary"
        COLOR 127 201 127       STYLE
        WIDTH 1.5                COLOR 65 105 225
       END                       WIDTH 1.0
      END                       END
                               END
      CLASS
       NAME "主要道路"             # else
       EXPRESSION "primary"    CLASS
       STYLE                    NAME "その他"
        COLOR 228 109 113       STYLE
        WIDTH 1.5                COLOR 128 128 128
       END                       WIDTH 0.5
      END                       END
                               END

                              END




32        MapServer入門 - FOSS4G 2012 Hokkaido -           Map data © OpenStreetMap contributors, CC BY-SA
例3)複合条件
      CLASSITEMのメリット・デメリット
         メリット・・・EXPRESSIONのフィールド名を省略できる。
         デメリット・・・単一条件しか指定できない。数値の大小が指定できない。条件毎にCLASSが必
          要。


      EXPRESSION http://mapserver.org/mapfile/expressions.html
      複合条件を使う場合はCLASSITEMを使わずに、EXPRESSION
       にフィールド名も含めて記述する
      フィールド名を[]で囲む。文字列フィールドは”*フィール
       ド名+”。
      演算子は AND,OR,NOTあるいは&&,||,!の様に文字列・記号
       の両方が使える。



33   MapServer入門 - FOSS4G 2012 Hokkaido -
Mapfile解説 - 例3)複合条件の例
       # CLASSITEM "HIGHWAY"        CLASSITEM
                                        を
       CLASS
                                      無効に
        NAME "国道"
        EXPRESSION ("[HIGHWAY]" = "trunk")
        STYLE
                                 “*フィールド名+” = “属性
         COLOR 127 201 127
                                       値”
         WIDTH 1.5
        END
       END


       CLASS
        NAME "主要道路/地方道/一般道"
        EXPRESSION ("[HIGHWAY]" = "primary“ OR "[HIGHWAY]" eq "secondary“ || "[HIGHWAY]" = "tertiary“)
        STYLE
         COLOR 228 109 113
         WIDTH 1.5                                                                  条件を()で囲む
        END
       END




34   MapServer入門 - FOSS4G 2012 Hokkaido -                                                 Map data © OpenStreetMap contributors, CC BY-SA
演習3)複合条件
      道路名(フィールド名 NAME)が付与されている道路を赤、
       それ以外を全て同じ灰にする。
         マニュアルによると…
          length ( “String1” )
          returns the number of characters of “String1”



      上記に加えて道路種別が primary 且つ 道路名が付与されて
       いる道路は青にする。




35   MapServer入門 - FOSS4G 2012 Hokkaido -
演習3)解答
     CLASS
      NAME "名前付きの道路"
      EXPRESSION (length("[name]") > 0)
      STYLE
       COLOR 255 32 32
       WIDTH 2.0
      END
     END


     CLASS
      STYLE
       COLOR 128 128 128
       WIDTH 0.5
      END
     END




36           MapServer入門 - FOSS4G 2012 Hokkaido -   Map data © OpenStreetMap contributors, CC BY-SA
演習3)解答
     CLASS
       NAME "名前付きの主要道路"
       EXPRESSION (length("[name]") > 0 && "[HIGHWAY]" = "primary")
       STYLE
        COLOR 32 32 255
        WIDTH 2.0
       END
      END


      CLASS
       NAME "名前付きの道路(主要道路を除く)"
       EXPRESSION (length("[name]") > 0)
       STYLE
        COLOR 255 32 32
        WIDTH 2.0
       END
      END


       CLASS
       STYLE
        COLOR 128 128 128
        WIDTH 0.5
       END
      END




37           MapServer入門 - FOSS4G 2012 Hokkaido -                     Map data © OpenStreetMap contributors, CC BY-SA
例4)ラベル(注記)表示
      ラベル(注記)を表示する
         FONTSET・・・フォントのエイリアスとファイル名のリスト
         LABELITEM・・・表示するテキストのフィールド名
         LABEL・・・ラベル設定。CLASSにぶら下がり、STYLEと並列。




38   MapServer入門 - FOSS4G 2012 Hokkaido -   Map data © OpenStreetMap contributors, CC BY-SA
Mapfile解説 - 例4)ラベル(注記)表示
       FONTSET "../fonts/fonts.list“
      ~~~~~~
                                                 mincho ipaexm.ttf
       LAYER
                                                 gothic ipaexg.ttf
        NAME "注記"
        DATA osm_polygon
        STATUS DEFAULT
        TYPE POLYGON                   フィールド
                                         名
        LABELITEM "NAME"
      ~~~~~~
         LABEL                                       http://ossipedia.ipa.go.jp/ipafont/index.html
          TYPE TRUETYPE
          # FONT mincho
          FONT gothic                  データソースの
          #ENCODING SJIS                文字コード
          ENCODING CP932
          SIZE 8
          COLOR 255 0 0
         END
        END
       END




39   MapServer入門 - FOSS4G 2012 Hokkaido -
例5)WMSサーバとして使う
      JavaScriptによるWebマップライブラリであるOpenLayersと
       の組み合わせによるWMSサーバの設定
      今までのMapfileにWMS設定を加える。
      OpenLayersの基礎も少しかじってみる。




40   MapServer入門 - FOSS4G 2012 Hokkaido -   Map data © OpenStreetMap contributors, CC BY-SA
Mapfile解説 -例5)WMSサーバとして使う
       WEB

       METADATA

        "wms_title" "WMS Server"

        "wms_onlineresource" "http://localhost/cgi-bin/mapserv.exe?map=../htdocs/mapserver/example05/example.map&"

        "wms_srs" "EPSG:4326"
                                                MapServer6.0から必要
        "ows_enable_request" "*"
                                                に
       END

       # IMAGEPATH "/ms4w/tmp/ms_tmp/"

       # IMAGEURL "/ms_tmp/"                     一時ファイルのディレクトリと
                                                 URL
       END
      ~~~~~~~~
       LAYER
                                    LAYER-NAMEは重要
       NAME "label“
       STATUS ON
      ~~~~~~~~
      LAYER             STATUSをDEFAULTからONに変更
       NAME “line“      DEFAULTは常に表示されてしま
       STATUS ON        う


41   MapServer入門 - FOSS4G 2012 Hokkaido -
OpenLayers解説 -例5)WMSサーバとして使う
      <script type="text/javascript">

         var lon = 141.360;                                      map = new OpenLayers.Map( 'map', {
                                                                 controls : controls,
         var lat = 43.060;
                                                                 maxScale : 1000,
         var zoom = 8;
                                                                 minScale : 500000
         var map;
                                                                });
                                 CGIに渡すパラメー                     var layer = new OpenLayers.Layer.WMS( "MapServer WMS",
         function init(){        タ                                     "/cgi-bin/mapserv.exe",
            var controls = [                                           {
             new OpenLayers.Control.MousePosition(),                       map : "../htdocs/mapserver/example05/example.map",
             new OpenLayers.Control.KeyboardDefaults(),                    layers: "line",
             new OpenLayers.Control.Navigation(),                          format: "image/jpeg“       表示するレイヤ
             new OpenLayers.Control.LayerSwitcher(),                   }, {
                                                                                                      LAYER
             new OpenLayers.Control.Scale(),                               isBaseLayer : true          NAME “line”
             new OpenLayers.Control.PanZoomBar()                       }
            ];                                                        );
                                                                map.addLayer(layer);
                                                                map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
                                 OpenLayersの
                                                            }
                                 レイヤパラメータ
                                                          </script>



42   MapServer入門 - FOSS4G 2012 Hokkaido -
OpenLayersとMapserver(WMS)の関係
                                                                                                WMS
                                                                                             (MapServer)


               JavaScript
             (Webブラウザ)

                       mapserver CGIに渡すパラメータ
     前ページで明示的に         MAP:../htdocs/mapserver/example05/example.map
     指定                LAYERS:line
                       FORMAT:image/jpeg
                       SERVICE:WMS
                       VERSION:1.1.1
                       REQUEST:GetMap
                       STYLES:
                       SRS:EPSG:4326
                       BBOX:141.33082992616,43.061780384578,141.3456030782,43.076553536614
     画像サイズのデフォ         WIDTH:256
     ルトは256x256        HEIGHT:256
                                                面倒な座標計算は
                                                OpenLayersが担当




43    MapServer入門 - FOSS4G 2012 Hokkaido -
OpenLayersとMapserver(WMS)の関係
     OpenLayersは前ページのMapServer呼び出しを繰り返し行い
     、
     タイリング表示する




44   MapServer入門 - FOSS4G 2012 Hokkaido -
演習5)WMSサーバとして使う
     ※例4)のMapfileをベースにします。

      エリア(とラベル)レイヤも表示されるように変更する。
      画像フォーマットを変えてみる。(jpeg/png/gif)
      OpenLayersのパラメータを変更してみる。(maxScale、
       Controlなど)
      MapSeverのレイヤを、OpenLayers上のレイヤで分離してみ
       る。




45   MapServer入門 - FOSS4G 2012 Hokkaido -
演習5)解答
         エリア(とラベル)レイヤも表示されるように変更する。
     lesson-1.html(JavaScript)
     var layer = new OpenLayers.Layer.WMS( "MapServer WMS - Road&Area",

             "/cgi-bin/mapserv.exe",
             {

                 map : "../htdocs/mapserver/example05/example.map",

                    layers: "line,label",
                 format: "image/jpeg"
             }, {
                                        LAYER-NAMEを
                 isBaseLayer : true
                                        カンマで列挙す
             } );                       る
                                                                          MapServerが生成する画像
                                                                          は
                                                                          複数レイヤが合成されてい
     予めlabel,lineレイヤは記述しておくが                                              る
     layersに指定しないと描画されない。(例5の状態)
     →Mapfileを変更しないでも描画レイヤを設定できる。


46       MapServer入門 - FOSS4G 2012 Hokkaido -
演習5)解答
            MapSeverのレイヤを、OpenLayers上のレイヤで分離してみる
            。
                                                                          var layerLine = new OpenLayers.Layer.WMS( "MapServer WMS - Road",
     lesson-2.html(JavaScript)
         (JavaScript修正のみでOK)
                                                                              "/cgi-bin/mapserv.exe",
     var layerLabel = new OpenLayers.Layer.WMS( "MapServer WMS - Area",
                                                                              {
        "/cgi-bin/mapserv.exe",
                                                                                  map : "../htdocs/mapserver/example05/example.map",
        {
                                                                                  layers: "line",
            map : "../htdocs/mapserver/example05/example.map",
                                                                                  format: "image/png",
            layers: "label",
                                                                                  transparent: true
            format: "image/png",
                                                                              }, {
            transparent: true
                                                                                  isBaseLayer : false
        }, {                         透過画像に変更
                                                                              } );                       どちらかのisBaseLayer
            isBaseLayer : true                                                                           をfalseにする
        } );

                                                                          map.addLayer(layerLabel);
                                                                          map.addLayer(layerLine);




47          MapServer入門 - FOSS4G 2012 Hokkaido -
演習5)解答
     MapSeverのレイヤを、OpenLayers上のレイヤで分離してみる
     。
                                  isBaseLayer:falseのレイヤは
                                  表示/非表示を切り替えられ
                                  る




                                    • MapServerは単一レイヤの透過画像を生成
                                    • OpenLayersがブラウザ上でレイヤを重ねる
                                    →画像を再取得しないで表示/非表示が切り替えられ
                                    る

48   MapServer入門 - FOSS4G 2012 Hokkaido -
謝辞

               お疲れ様でした!
      FOSS4G 2011 Tokyoで行われたMapServerハンズオン
       (株式会社オークニーさま)
       を参考に作成しました。

      OpenStreetMapのベクトルデータを使用しました。




49   MapServer入門 - FOSS4G 2012 Hokkaido -

Más contenido relacionado

La actualidad más candente

Cesiumマニアックス― Revenge ―
Cesiumマニアックス― Revenge ―Cesiumマニアックス― Revenge ―
Cesiumマニアックス― Revenge ―Ryousuke Wayama
 
こわくない Git
こわくない Gitこわくない Git
こわくない GitKota Saito
 
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組みモバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組みMorioImai
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢Masaki Yamakawa
 
無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろうakira6592
 
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装Ryuichi Sakamoto
 
分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~Hideki Tsunashima
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Yuki Gonda
 
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)NTT DATA Technology & Innovation
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか?
Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか?Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか?
Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか?Suguru Ito
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 
カッパ(妖怪)の生息適地マップ作成入門
カッパ(妖怪)の生息適地マップ作成入門カッパ(妖怪)の生息適地マップ作成入門
カッパ(妖怪)の生息適地マップ作成入門Mizutani Takayuki
 
ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくいARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくいwata2ki
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しようAmazon Web Services Japan
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについてkumake
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理Takuya ASADA
 

La actualidad más candente (20)

Cesiumマニアックス― Revenge ―
Cesiumマニアックス― Revenge ―Cesiumマニアックス― Revenge ―
Cesiumマニアックス― Revenge ―
 
こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組みモバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢
 
無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう
 
Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
 
仮想環境の設計手法
仮想環境の設計手法仮想環境の設計手法
仮想環境の設計手法
 
分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~分散学習のあれこれ~データパラレルからモデルパラレルまで~
分散学習のあれこれ~データパラレルからモデルパラレルまで~
 
Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-Hadoop -NameNode HAの仕組み-
Hadoop -NameNode HAの仕組み-
 
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
Kubernetes 疲れに Azure Container Apps はいかがでしょうか?(江東区合同ライトニングトーク 発表資料)
 
pg_bigmを用いた全文検索のしくみ(後編)
pg_bigmを用いた全文検索のしくみ(後編)pg_bigmを用いた全文検索のしくみ(後編)
pg_bigmを用いた全文検索のしくみ(後編)
 
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_bigmで全文検索するときに気を付けたい5つのポイント(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか?
Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか?Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか?
Azure Database for MySQL PostgreSQLを使って運用の手間を省きませんか?
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
カッパ(妖怪)の生息適地マップ作成入門
カッパ(妖怪)の生息適地マップ作成入門カッパ(妖怪)の生息適地マップ作成入門
カッパ(妖怪)の生息適地マップ作成入門
 
ARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくいARM LinuxのMMUはわかりにくい
ARM LinuxのMMUはわかりにくい
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについて
 
Ethernetの受信処理
Ethernetの受信処理Ethernetの受信処理
Ethernetの受信処理
 

Similar a Map server入門 - FOSS4G 2012 Hokkaido

Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてKazuki Ohta
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京Koichiro Sasaki
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...NTT DATA Technology & Innovation
 
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Tomoharu ASAMI
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)NTT DATA OSS Professional Services
 
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #520160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5Koichiro Sasaki
 
Foss4g2012 MapGuide Hands-On
Foss4g2012 MapGuide Hands-OnFoss4g2012 MapGuide Hands-On
Foss4g2012 MapGuide Hands-OnOsamu Inoue
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_FdwKohei KaiGai
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_TokyoKohei KaiGai
 
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~decode2016
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方linzhixing
 
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...NTT DATA Technology & Innovation
 

Similar a Map server入門 - FOSS4G 2012 Hokkaido (20)

SASとHadoopとの連携 2015
SASとHadoopとの連携 2015SASとHadoopとの連携 2015
SASとHadoopとの連携 2015
 
Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン Hadoopについて
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
 
Apache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATAApache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATA
 
Survey of Apache Spark
Survey of Apache SparkSurvey of Apache Spark
Survey of Apache Spark
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 
Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
 
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
Apache Spark超入門 (Hadoop / Spark Conference Japan 2016 講演資料)
 
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #520160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5
 
Foss4g2012 MapGuide Hands-On
Foss4g2012 MapGuide Hands-OnFoss4g2012 MapGuide Hands-On
Foss4g2012 MapGuide Hands-On
 
Scala on Hadoop
Scala on HadoopScala on Hadoop
Scala on Hadoop
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
 
Inside of Asakusa DSL
Inside of Asakusa DSLInside of Asakusa DSL
Inside of Asakusa DSL
 
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
DBP-011_Apache Spark for Azure HDInsight ~新世代の Big Data 処理基盤~
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
 
MapReduce解説
MapReduce解説MapReduce解説
MapReduce解説
 
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知るMapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
 
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
Apache Sparkの基本と最新バージョン3.2のアップデート(Open Source Conference 2021 Online/Fukuoka ...
 

Último

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Último (9)

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

Map server入門 - FOSS4G 2012 Hokkaido

  • 2. セッションの内容  インストール  MapServerとは?  演習 MapServer入門 - FOSS4G 2012 Hokkaido - 2
  • 3. インストール MapServer入門 - FOSS4G 2012 Hokkaido - 3
  • 4. インストールの前に…  Apacheがサービスとしてインストールされます  サービス名は[Apache MS4W Web Server]なので被らないはず。  インストール先はMS4Wのフォルダ内なので被らないはず。  Webブラウザで http://localhost/ を開く →つながってしまったら…ひとまず停める。またはMS4Wインストール時にポートを変える。  テキストエディタはUTF8対応を使いましょう  Windows付属のメモ帳はちょっと…(BOMが付く)  TeraPad,Vim,Emacsなどがお勧め MapServer入門 - FOSS4G 2012 Hokkaido - 4
  • 5. MS4W(MapServer for Windows)を使いま す Windows版Mapserverと関連するアプリケーションのパッケージ 学習用途にオススメ(実運用も出来ます) MS4W 3.0.6(2012/05/26リリース)の標準コンポーネント  Apache HTTP Server version 2.2.22  PHP version 5.4.3  MapServer CGI 6.0.3  MapScript 6.0.3 (CSharp, Java, PHP, Python)  Includes support for Oracle 11g, and SDE data (if you have associated client/dlls)  MrSID support built-in  GDAL/OGR 1.9.1 and Utilities  MapServer Utilities  PROJ Utilities  Shapelib Utilities  Shp2tile Utility  Shpdiff Utility  AVCE00 Utilities  OGR/PHP Extension 1.0.0  OWTChart 1.2.0 MapServer入門 - FOSS4G 2012 Hokkaido - 5
  • 6. MS4Wのダウンロード 1. 公式サイト : http://www.maptools.org/ms4w/ (ms4wでググればOK!) 2. Download(or Latest Version)からインストーラをダウン ロード setup.exe installer(142KB)はオンラインインストーラ ↑今回はこちらを使います zip Archive(49MB)はオフラインインストーラ ms4w-3.0.6-setup.exe MapServer入門 - FOSS4G 2012 Hokkaido - 6
  • 7. MS4Wのインストール-1 注意事項  管理者権限で実行する。  「発行元」に関するセキュリティ警告が出るが実行する。  基本的には全てデフォルトでインストール。 今回はコンポーネント構成にOpenLayersを追加  インストールパスはCドライブ直下(c:)にする。 少なくとも日本語パスやスペースを含むパスは避ける(安全策)  他のWebサーバ(Apache/IIS, etc.)があればポートを変更する。 MapServer入門 - FOSS4G 2012 Hokkaido - 7
  • 8. MS4Wのインストール-2 インストーラ実行画面の一覧 右クリックで ログをクリップボード に コピーできる MapServer入門 - FOSS4G 2012 Hokkaido - 8
  • 9. MS4Wのインストール-3 インストール結果の確認  http://localhost/ をWebブラウザで開く  http://localhost/cgi-bin/mapserv.exe  CGIで動作します  Linuxでは末尾の.exe不要 9 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 10. MS4Wのインストール 余談  オフラインでインストールしたい  既存Apache(Webサーバ)を使いたい オンラインインストーラはオフラインzipをダウンロード・展開して、Apacheの設定してるだけ。 Apacheのインストール知識があれば、オンラインインストールの結果&ログファイルを参考にすると 良い。  OSGeo4Wを薦められたけど… 現在(2012/7)はMapServerが一つ前のメジャーバージョン(5.x)、 6.xと完全な互換性は無いので注意!! MapServer入門 - FOSS4G 2012 Hokkaido - 10
  • 11. MapServerとは? 11 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 12. MapServerとは? 公式サイト http://mapserver.org/ 2012/07/01現在のバージョンは6.0.3  地図をWebページで表示するための「マッピングエンジ ン」の代表格。  90年代中期から開発が始まり、2004年に国際化対応される。  国内の官公庁・一般企業のサイトでの採用も進み、 Mapionの地図描画にも採用されている。  標準規格のOGC(Open GIS Consortium)仕様に対応。  Linux(UNIX)、Mac OS X、Windowsバイナリが配布されてい る。  もちろんオープンソースなのでソースからビルドできる。 12 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 13. MapServerが提供する機能  地図描画機能  地図表現に必要な点・線・塗り、注記、記号などの描画設定。  縮尺による描画設定の切り替え。  設定方法・・・Mapfileと呼ばれるテキストファイル。  地図表示機能  Shapefile、地理DBなどから地図データ(画像、ベクトル)を作成する。  整飾(凡例、参照図、スケールバー画像など)も作成できる。  On-the-flyに投影法変換もできる→I/Oそれぞれで投影法が混在できる。  OGCに基づくWebサービスに対応  WMS,WFS,GML,SLD etc…  mapserver –v で確認する  開発言語・環境への対応  PHP,Python,Perl,Ruby,Java,.NET  総合GIS環境ではない  UI、解析、データ管理機能は外部ツールを使用する。 13 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 14. 対応データ  対応データフォーマット  ベクトル・・・ ESRI Shapefile, PostGIS(DB), GML/KML,GPX,Spatilite, etc…  ラスタ・・・TIFF/GeoTIFF, Erdas LAN/GIS, GIF/PNG/JPEG(world fileが必要)  gdalinfo --formats、ogrinfo --formatsで確認する(環境変数を適用するためにMS4W-Shellを使用する) 14 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 15. MapServerで使用するGIS用語 以下は押さえておきたい  ESRI Shapefile (シェープファイル)  GeoTIFF (ジオティフ)  PostGIS (ポストジス、ポスジス)  投影法、座標系、測地系、SRID(A Spatial Reference System Identifier)  WMS、WFS 英語ですが http://mapserver.org/glossary.html にも載ってます。 15 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 16. ESRI Shapefileとは  地図情報を格納するためのベクター形式ファイル(点・ 線・面)。  ArcGISでお馴染みのESRI社が設計・リリースし、GISではデ ファクトスタンダードになっている。  ファイルは形状(.shp)、属性(.dbf)、インデクス(.shx)の3つ 一組。 投影定義の.projなどのオプションファイルもある  MapServerの標準的なデータ形式の一つ。  属性は固定長、2GBの壁、フィールド数制限があり、大規 模データには向かない。 16 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 17. GeoTIFF  地理情報向けラスタ形式の代表的フォーマット。  TIFFフォーマットのタグに投影法・測地系、四隅座標など が記録されている。  GIF/JPEG/PNGはworld fileを用いる→画像+world fileでは投影法・測地系は判らない。  詳細はgdalinfoやlistgeo(libgeotiff lib utility)で確認する。  公式サイト→http://trac.osgeo.org/geotiff/ 17 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 18. PostGIS  OSSのデータベース、PostgreSQLの地理空間情報拡張。  データ格納だけではなく、各種演算機能が豊富に提供され ている。  空間計測・関係、ジオメトリの構築・変換、フォーマット 変換。  基本的なSQLを覚える必要はあるが、大規模データやネッ トワーク共有(DBサーバを分ける)を考えているなら必携。  公式サイト→http://postgis.refractions.net/  日本語に翻訳されたマニュアル(農研機構) →http://www.finds.jp/docs/pgisman/ 18 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 19. 投影法、座標系、測地系、SRID  球体の地球を平面に投影する方法(メルカトル、正距方位 など)  数値(座標)の組み合わせの意味  地理座標系(緯度経度)  平面直角座標系(日本全国に19原点、メートル単位のXY座標)  UTM/ユニバーサルメルカトル(地球を南北方向の帯で分割、メートル単位のXY座標)  ある位置を経緯度・標高により表すときの前提条件  日本測地系(旧日本測地系、Tokyo Datum)  世界測地系(新日本測地系、JGD2000)  ↑のパラメータをIDで管理・指定するのがSRID(EPSGコード )  4301:緯度経度 日本測地系(Tokyo)  4326:緯度経度 世界測地系(WGS84)  4612:緯度経度 世界測地系(JGD2000)  3857 or 900913:Webメルカトル、Google投影  日本でよく使われるコード→ http://www.finds.jp/docs/pgisman/2.0.0/postgis.html#srs_in_japan 19 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 20. WMS・WFS  OGC(Open GIS Consortium)の定めるWeb標準プロトコル  OGCの定める規格に対応することで、異なるアプリケーション、データベース間での地理空間情 報を交換できる。  WMS(Web Map Service)  ベクトル/ラスター形式の地図データをラスター形式で生成、取得する。  WebブラウザではWMSでの利用が一般的。  WFS(Web Feature Service)  ベクトル形式の地図データをGML(Geography Markup Language)形式で生成、取得。  デスクトップGISや属性取得・表示用途に使用される。  Webブラウザでもレンダリングできるが、現段階では重い→HTML5,WebGL/MapGL普及に期待。  GMLもOGCが仕様策定。 20 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 21. 演習 21 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 22. 演習データの配置 1. 演習データ一式(mapserverフォルダ)を c:ms4wapachehtdocs にコピー。 2. http://localhost/mapserver.html をWebブラウザで開く。 3. example01/index.htmlをエディタで開き、<img>タグのsrc パラメータを確認する。 src=“/cgi-bin/mapserv.exe?map=../htdocs/mapserver/example01/example.map&mode=map” • mapパラメータ・・・Mapfileのパス。MapServer CGIからの相対パス指定。 • modeパラメータ・・・生成するファイル種別。”map”は地図画像を生成する。 • 詳しくは http://mapserver.org/cgi/controls.html 22 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 23. 使用するデータ  今回の講習ではOpenStreetMapのベクトルデータを使用し ています。  QGISのOpenStreetMapプラグインで表示範囲のベクトルデ ータをダウンロードし、Shapefileに変換しました。 23 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 24. 例1)レイヤーを表示する  線形上の道路を単一シンボルで表示する  Mapfileの基本的要素で構成してみる  example01/index.htmlとexample01/example.mapをテキスト エディタで開く 24 MapServer入門 - FOSS4G 2012 Hokkaido - Map data © OpenStreetMap contributors, CC BY-SA
  • 25. Mapfile解説 - 例1)レイヤーを表示する MAP # データフォルダを相対パスで指定  MAP,LAYER,CLASSなどのオブジェクトから構成されて SHAPEPATH "../data" いる。オブジェクトはENDで閉じられる。 PROJECTION  SHAPEPATH・・・データフォルダのパス。絶対パス、 "init=epsg:4326" # WGS84 あるいはマップファイルからの相対パス指定 END EXTENT 141.330 43.040 141.380 43.080  PROJECTION・・・地図の投影法  EXTENT・・・地図の出力範囲 IMAGETYPE PNG IMAGECOLOR 255 255 240  IMAGETYPE・・・画像形式 SIZE 500 400  IMAGECOLOR・・・背景色 LAYER NAME "道路"  SIZE・・・画像サイズ(px) # osm_line_road.shpでも良い DATA osm_line_road  MAP・・・MAPオブジェクトは必須であり、常に最も STATUS DEFAULT 外側になる。 TYPE LINE  LAYER・・・データソース、スタイルから構成される CLASS STYLE 。 COLOR 255 128 0  NAME・・・省略可だが、なるべく付ける。 WIDTH 2.0 END  DATA・・・データソース(ファイル名)。拡張子を省略 END END するとShapefileと見なす。 END  TYPE・・・ジオメトリタイプ。POINT/LINE/POLYGON、 RASTER。  CLASS・・・LAYERを分類するための構成要素。  STYLE・・・視覚的設定の項目。 25 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 26. Mapfileの基本  オブジェクト名は大文字小文字の区別無し  オブジェクトの順序は自由だが、階層関係は重要  インデントはタブでも空白でも良い。 無くてもエラーにはならないがバグの元!  文字列はダブルクォート推奨  コメントは # で始める 26 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 27. デバッグテクニック  画像が表示されない…(意図したとおりにならない)  画像だけ表示してみる(Webブラウザのコンテキストメニューから) http://localhost/cgi-bin/mapserv.exe?map=../htdocs/mapserver/example01/example.map&mode=map  Mapfileにデバッグ設定を加える(パフォーマンスチューニングにも使える) MAP DEBUG 2 CONFIG "MS_ERRORFILE" "/ms4w/tmp/ms_error.txt" # データフォルダを相対パスで指定 SHAPEPATH "../data" DEBUG ・・・ 0-5で出力レベルを変更する CONFIG “MS_ERRORFILE” ・・・ログファイルを指定。絶対パス or Mapfileからの相対パス。累積 されるので長期運用時は注意! 27 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 28. 演習1)Mapfileの編集とデバッグ 1. DATAパラメータの文字列(ファイル名)を適当に変えてみ る。 2. 前ページのデバッグテクニックを試してみる。 3. DEBUGレベルを変更して、ログファイルの内容を観察す る。 28 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 29. 例2)属性によるスタイル設定  道路種別属性によって描画設定を変えてみる  一つのLAYERに複数のCLASSを定義する  分類に使用する属性項目、属性値の指定を理解する 29 MapServer入門 - FOSS4G 2012 Hokkaido - Map data © OpenStreetMap contributors, CC BY-SA
  • 30. Mapfile解説 - 例2)属性によるスタイル設定 LAYER  CLASSITEM・・・LAYERを分類するためのフィールド名 NAME "道路" DATA osm_line_road  EXPRESSION・・・CLASSITEMの属性値。各CLASSに一つ定義する。 STATUS DEFAULT LAYERの最後のCLASSでEXPRESSIONを定義しないことで「その他」を定 TYPE LINE 義できる。 CLASSITEM "HIGHWAY" CLASS  EXPRESSIONを宣言すると、そのLAYERではフィールド名を省略できる EXPRESSION "trunk" STYLE 。 COLOR 127 201 127 WIDTH 3.0  数値も文字列も引用符が必要。 END  複雑な条件は定義できない。 END # else CLASS STYLE COLOR 128 128 128 WIDTH 0.5 END END END 30 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 31. 演習2)属性によるスタイルの変更  CLASSITEMとEXPRESSIONを使用して描画設定を拡張する  パラメータは以下を使用(cf. http://wiki.openstreetmap.org/wiki/JA:Key:highway) 種別 属性値(文字列) 色(RGB) 線幅 国道 trunk 緑(127 201 127) 2.0 主要道路 primary 赤(228 109 113) 1.5 地方道 secondary オレンジ(253 191 11) 1.5 一般道 tertiary 青(65 105 125) 1.0 その他 - 灰(128 128 128) 0.5 ※色と線幅は参考値です 31 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 32. 演習2)解答 LAYER CLASS NAME "道路" NAME "地方道" DATA osm_line_road EXPRESSION "secondary" STATUS DEFAULT STYLE TYPE LINE COLOR 253 191 11 WIDTH 1.0 CLASSITEM "HIGHWAY" END END CLASS NAME "国道" CLASS EXPRESSION "trunk" NAME "一般道" STYLE EXPRESSION "tertiary" COLOR 127 201 127 STYLE WIDTH 1.5 COLOR 65 105 225 END WIDTH 1.0 END END END CLASS NAME "主要道路" # else EXPRESSION "primary" CLASS STYLE NAME "その他" COLOR 228 109 113 STYLE WIDTH 1.5 COLOR 128 128 128 END WIDTH 0.5 END END END END 32 MapServer入門 - FOSS4G 2012 Hokkaido - Map data © OpenStreetMap contributors, CC BY-SA
  • 33. 例3)複合条件  CLASSITEMのメリット・デメリット  メリット・・・EXPRESSIONのフィールド名を省略できる。  デメリット・・・単一条件しか指定できない。数値の大小が指定できない。条件毎にCLASSが必 要。  EXPRESSION http://mapserver.org/mapfile/expressions.html  複合条件を使う場合はCLASSITEMを使わずに、EXPRESSION にフィールド名も含めて記述する  フィールド名を[]で囲む。文字列フィールドは”*フィール ド名+”。  演算子は AND,OR,NOTあるいは&&,||,!の様に文字列・記号 の両方が使える。 33 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 34. Mapfile解説 - 例3)複合条件の例 # CLASSITEM "HIGHWAY" CLASSITEM を CLASS 無効に NAME "国道" EXPRESSION ("[HIGHWAY]" = "trunk") STYLE “*フィールド名+” = “属性 COLOR 127 201 127 値” WIDTH 1.5 END END CLASS NAME "主要道路/地方道/一般道" EXPRESSION ("[HIGHWAY]" = "primary“ OR "[HIGHWAY]" eq "secondary“ || "[HIGHWAY]" = "tertiary“) STYLE COLOR 228 109 113 WIDTH 1.5 条件を()で囲む END END 34 MapServer入門 - FOSS4G 2012 Hokkaido - Map data © OpenStreetMap contributors, CC BY-SA
  • 35. 演習3)複合条件  道路名(フィールド名 NAME)が付与されている道路を赤、 それ以外を全て同じ灰にする。  マニュアルによると… length ( “String1” ) returns the number of characters of “String1”  上記に加えて道路種別が primary 且つ 道路名が付与されて いる道路は青にする。 35 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 36. 演習3)解答 CLASS NAME "名前付きの道路" EXPRESSION (length("[name]") > 0) STYLE COLOR 255 32 32 WIDTH 2.0 END END CLASS STYLE COLOR 128 128 128 WIDTH 0.5 END END 36 MapServer入門 - FOSS4G 2012 Hokkaido - Map data © OpenStreetMap contributors, CC BY-SA
  • 37. 演習3)解答 CLASS NAME "名前付きの主要道路" EXPRESSION (length("[name]") > 0 && "[HIGHWAY]" = "primary") STYLE COLOR 32 32 255 WIDTH 2.0 END END CLASS NAME "名前付きの道路(主要道路を除く)" EXPRESSION (length("[name]") > 0) STYLE COLOR 255 32 32 WIDTH 2.0 END END CLASS STYLE COLOR 128 128 128 WIDTH 0.5 END END 37 MapServer入門 - FOSS4G 2012 Hokkaido - Map data © OpenStreetMap contributors, CC BY-SA
  • 38. 例4)ラベル(注記)表示  ラベル(注記)を表示する  FONTSET・・・フォントのエイリアスとファイル名のリスト  LABELITEM・・・表示するテキストのフィールド名  LABEL・・・ラベル設定。CLASSにぶら下がり、STYLEと並列。 38 MapServer入門 - FOSS4G 2012 Hokkaido - Map data © OpenStreetMap contributors, CC BY-SA
  • 39. Mapfile解説 - 例4)ラベル(注記)表示 FONTSET "../fonts/fonts.list“ ~~~~~~ mincho ipaexm.ttf LAYER gothic ipaexg.ttf NAME "注記" DATA osm_polygon STATUS DEFAULT TYPE POLYGON フィールド 名 LABELITEM "NAME" ~~~~~~ LABEL http://ossipedia.ipa.go.jp/ipafont/index.html TYPE TRUETYPE # FONT mincho FONT gothic データソースの #ENCODING SJIS 文字コード ENCODING CP932 SIZE 8 COLOR 255 0 0 END END END 39 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 40. 例5)WMSサーバとして使う  JavaScriptによるWebマップライブラリであるOpenLayersと の組み合わせによるWMSサーバの設定  今までのMapfileにWMS設定を加える。  OpenLayersの基礎も少しかじってみる。 40 MapServer入門 - FOSS4G 2012 Hokkaido - Map data © OpenStreetMap contributors, CC BY-SA
  • 41. Mapfile解説 -例5)WMSサーバとして使う WEB METADATA "wms_title" "WMS Server" "wms_onlineresource" "http://localhost/cgi-bin/mapserv.exe?map=../htdocs/mapserver/example05/example.map&" "wms_srs" "EPSG:4326" MapServer6.0から必要 "ows_enable_request" "*" に END # IMAGEPATH "/ms4w/tmp/ms_tmp/" # IMAGEURL "/ms_tmp/" 一時ファイルのディレクトリと URL END ~~~~~~~~ LAYER LAYER-NAMEは重要 NAME "label“ STATUS ON ~~~~~~~~ LAYER STATUSをDEFAULTからONに変更 NAME “line“ DEFAULTは常に表示されてしま STATUS ON う 41 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 42. OpenLayers解説 -例5)WMSサーバとして使う <script type="text/javascript"> var lon = 141.360; map = new OpenLayers.Map( 'map', { controls : controls, var lat = 43.060; maxScale : 1000, var zoom = 8; minScale : 500000 var map; }); CGIに渡すパラメー var layer = new OpenLayers.Layer.WMS( "MapServer WMS", function init(){ タ "/cgi-bin/mapserv.exe", var controls = [ { new OpenLayers.Control.MousePosition(), map : "../htdocs/mapserver/example05/example.map", new OpenLayers.Control.KeyboardDefaults(), layers: "line", new OpenLayers.Control.Navigation(), format: "image/jpeg“ 表示するレイヤ new OpenLayers.Control.LayerSwitcher(), }, { LAYER new OpenLayers.Control.Scale(), isBaseLayer : true NAME “line” new OpenLayers.Control.PanZoomBar() } ]; ); map.addLayer(layer); map.setCenter(new OpenLayers.LonLat(lon, lat), zoom); OpenLayersの } レイヤパラメータ </script> 42 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 43. OpenLayersとMapserver(WMS)の関係 WMS (MapServer) JavaScript (Webブラウザ) mapserver CGIに渡すパラメータ 前ページで明示的に MAP:../htdocs/mapserver/example05/example.map 指定 LAYERS:line FORMAT:image/jpeg SERVICE:WMS VERSION:1.1.1 REQUEST:GetMap STYLES: SRS:EPSG:4326 BBOX:141.33082992616,43.061780384578,141.3456030782,43.076553536614 画像サイズのデフォ WIDTH:256 ルトは256x256 HEIGHT:256 面倒な座標計算は OpenLayersが担当 43 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 44. OpenLayersとMapserver(WMS)の関係 OpenLayersは前ページのMapServer呼び出しを繰り返し行い 、 タイリング表示する 44 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 45. 演習5)WMSサーバとして使う ※例4)のMapfileをベースにします。  エリア(とラベル)レイヤも表示されるように変更する。  画像フォーマットを変えてみる。(jpeg/png/gif)  OpenLayersのパラメータを変更してみる。(maxScale、 Controlなど)  MapSeverのレイヤを、OpenLayers上のレイヤで分離してみ る。 45 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 46. 演習5)解答 エリア(とラベル)レイヤも表示されるように変更する。 lesson-1.html(JavaScript) var layer = new OpenLayers.Layer.WMS( "MapServer WMS - Road&Area", "/cgi-bin/mapserv.exe", { map : "../htdocs/mapserver/example05/example.map", layers: "line,label", format: "image/jpeg" }, { LAYER-NAMEを isBaseLayer : true カンマで列挙す } ); る MapServerが生成する画像 は 複数レイヤが合成されてい 予めlabel,lineレイヤは記述しておくが る layersに指定しないと描画されない。(例5の状態) →Mapfileを変更しないでも描画レイヤを設定できる。 46 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 47. 演習5)解答 MapSeverのレイヤを、OpenLayers上のレイヤで分離してみる 。 var layerLine = new OpenLayers.Layer.WMS( "MapServer WMS - Road", lesson-2.html(JavaScript) (JavaScript修正のみでOK) "/cgi-bin/mapserv.exe", var layerLabel = new OpenLayers.Layer.WMS( "MapServer WMS - Area", { "/cgi-bin/mapserv.exe", map : "../htdocs/mapserver/example05/example.map", { layers: "line", map : "../htdocs/mapserver/example05/example.map", format: "image/png", layers: "label", transparent: true format: "image/png", }, { transparent: true isBaseLayer : false }, { 透過画像に変更 } ); どちらかのisBaseLayer isBaseLayer : true をfalseにする } ); map.addLayer(layerLabel); map.addLayer(layerLine); 47 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 48. 演習5)解答 MapSeverのレイヤを、OpenLayers上のレイヤで分離してみる 。 isBaseLayer:falseのレイヤは 表示/非表示を切り替えられ る • MapServerは単一レイヤの透過画像を生成 • OpenLayersがブラウザ上でレイヤを重ねる →画像を再取得しないで表示/非表示が切り替えられ る 48 MapServer入門 - FOSS4G 2012 Hokkaido -
  • 49. 謝辞 お疲れ様でした!  FOSS4G 2011 Tokyoで行われたMapServerハンズオン (株式会社オークニーさま) を参考に作成しました。  OpenStreetMapのベクトルデータを使用しました。 49 MapServer入門 - FOSS4G 2012 Hokkaido -