システム覚書帳

システム開発、プログラミングについての覚書をメモメモ

地図

[openlayers]その5-表示している地図の情報を取得する(イベント)

イベントハンドラを登録し、地図が移動・拡大縮小された場合に、中央位置とズームレベルを取得して表示する。




OpenLayers.Map.events.on()は、複数のイベントをまとめて登録するときに便利。
個別の登録する場合は、Map.events.register()を使用する。

[openlayers]その4-自分の位置を表示する

HTML5のGeolocation APIを利用して、自分の現在位置を取得し、地図上に表示する。




以下のように表示される。
loc

現在位置が取得できるかどうかは、以下にアクセスを。
http://html5demos.com/geo

[openlayers]その3-地図を外から操作する

マウスでの操作以外に、外部(javascript)から地図をいろいろと操作してみる。




OpenLayers.MapのAPIを使用して、ボタン操作時に地図の移動や拡大縮小を実行。
今回は、コントロールやMapの属性指定もしてみた。

    map.addControl(new OpenLayers.Control.MousePosition());
    map.addControl(new OpenLayers.Control.ScaleLine());
前者は、マウスの位置を緯度経度でリアルタイムに地図上に表示するコントロール。後者は、左下に距離の指標バーを表示するコントロール。

また、OpenLayers.Mapのオプションで、attributionを指定すると地図上に任意のHTMLブロックを表示できる。

  attribution: "<a target=\"_blank\" style=\"font-size: 9px;\" href=\"http://www.finds.jp/wsdocs/kibanwms/index.html\">基盤地図情報(平20業使、第449号)</a>",

地図の著作権表示等に使用できる。


[openlayers]その2-WMSサーバの地図を表示

GoogleMapとOpenStreetMap以外のWMSサーバからの地図を表示してみる。



2つのdivでそれぞれにOpenLayersの地図をマッピングすることで複数の地図を一度に表示できる。
左側の地図は、「opengeo.org」より配信されている衛星地図。
右は、「osgeo.org」の地図に「基盤地図情報WMS配信サービス - Finds.jp」を重ね合わせている。

Finds.jpのサイトで配信されているレイヤーの一覧を確認できる。
OpenLayers.Layer.WMSで指定するlayersオプションには、カンマ区切りで複数のレイヤを指定することができ、指定したレイヤを組み合わせた情報を1つのlayerとしてOpenLayersで利用できる。

layers: "AdmAreaBdr,PrefSmplBdr,JpSmplBdr,Cntr100,Cntr100w,BldA,WL,RdEdg,RailCL"

また、OpenLayers.Layerで指定するオプション「isBaseLayer」をfalseにすると、重ね合わせが実現できる。

[openlayers]その1-OpenStreetMapとGoogleMap地図を表示してみる

OpenLayersを使用して、GoogleMapとOpenStreetMapの地図を表示してみる。
(jQueryも利用)





投影法(projection)について補足。
GoogleMap、OpenStreetMapは、投影法がEPSG:900913(googleをもじった番号で正式には、EPSG:3857)であり、メルカトル図法のメートル表記。一方で、一般的に使われている緯度経度表記は、EPSG:4326であり、緯度経度をGoogleMapに指定するには、メートル表記のEPSG:900913形式に変換する必要がある。その変換を行ってくれるのが、transform()メソッドである。

[mapserver]CentOS6.5でmapserver6.0.3をyumでインストール - めっちゃ簡単!

前回の記事の最後で、yumにmapserverが登録されていることに気付いたため試してみる。

<<< OSをクリーンインストールしておく >>>

# yum -y install mapserver
  ・・・
  ・・・
  ・・・
  ・・・

終わり!!
関連するモジュールもぜ~んぶ一緒にインストールされる。苦労なし!!

インストールされているmapserverのスペックを見る

# find / -name mapserv*
/usr/share/mapserver
/usr/libexec/mapserver   ← こっちが実行ファイル
# /usr/libexec/mapserver -v
MapServer version 6.0.3 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=CAIRO SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE

基本的なことは全部できそう。


では、チュートリアルを動かしてみる。

# wget "http://download.osgeo.org/mapserver/docs/mapserver-tutorial.zip"
# unzip -q mapserver-tutorial.zip
# mv ms4w/ /
# cp -p /usr/libexec/mapserver /var/www/cgi-bin/
# service httpd start

http://server/cgi-bin/mapserver?map=/ms4w/apps/tutorial/htdocs/example1-1.map&layer=states&mode=map

アクセスで、以下が表示されればOK。



すごく簡単だー! d(>_< )Good!!


[mapserver]CentOS6.5で、可能な限りyumでmapserverをセットアップする

参考にしたサイト)
http://www.mapserver.org/installation/unix.html
https://github.com/mapserver/mapserver/blob/master/INSTALL.CMAKE



0.準備
$ sudo su -
# mkdir ~/work
# cd !$


1.必要なモジュール達をインストール
MapServerホームページにて、「Required External Libraries」とあるモジュール4つをインストール
# yum -y install libpng libpng-devel
     1.2.49がインストール
# yum -y install freetype freetype-devel
     2.3.11がインストール
# yum -y install libjpeg libjpeg-devel
     1.2.1がインストール
# yum -y install zlib zlib-devel
     1.2.3がインストール

2.あった方が良いモジュール達をインストール
MapServerホームページにて、「Highly Recommended Libraries」とあるモジュールをインストール
・libproj
# yum install proj proj-devel proj-epsg
     4.7.0がインストール

・libcurl
# yum install libcurl libcurl-devel
     7.19.7がインストール

・GDAL/OGR
# yum install gdal gdal-devel
     1.7.3がインストール
     関連して、geos,libgeotiff,porgresql-libs等もインストール。


3.Optionaなモジュールをインストール
・libtiff
# yum install libtiff libtiff-devel
     3.9.4がインストール
・libgeotiff
     GDALと一緒にインストール済み。1.2.5
・GEOS
# yum install geos geos-devel
     3.3.2がインストール
・libxml
# yum install libxml2 libxml2-devel
     2.7.6がインストール
・SDE Client Library
     今回はインストールしない
・Oracle Spatial OCI
     今回はインストールしない
・libpq = PostgreSQL
# yum -y install postgresql postgresql-server postgresql-libs postgresql-devel
     postgresqlは8.4.20が入った。
# yum -y install postgis
     1.5.3がインストール。
・libgif
# yum -y install giflib giflib-devel
     4.1.6がインストール
・FastCGI
# yum install fcgi fcgi-devel
     2.4.0がインストール
・Cairo
# yum install cairo cairo-devel
     1.8.8がインストール
・GD
HPによるとnot recommendedらしいので保留
・XSLT
# yum install libxslt libxslt-devel
     1.1.26がインストール


4.MapServer(これだけは最新を使用する)
バージョン6.4からMapServerのビルドにはCMakeが使われるようになった模様。2.8がおすすめらしい。
# yum -y install cmake28
# yum install httpd
     2.2.15がインストール
#  yum install fribidi fribidi-devel
     0.19.2がインストール
# yum install python python-devel
     2.6.6がインストール
# yum install perl perl-devel
     5.10.1がインストール
# yum install php php-devel
     5.3.3がインストール

# wget "http://download.osgeo.org/mapserver/mapserver-6.4.1.tar.gz"
# tar -zxf mapserver-6.4.1.tar.gz
# cd mapserver-6.4.1
# mkdir build
# cd !$
# cmake28 \
     -DWITH_CURL=ON \
     -DWITH_CLIENT_WFS=ON \
     -DWITH_CLIENT_WMS=ON \
     -DWITH_PHP=ON \
     -DWITH_PYTHON=ON \
     -DWITH_PERL=ON \
     -DWITH_KML=ON \
     -DWITH_XMLMAPFILE=ON \
     ..
-- * Summary of configured options for this build
--  * Mandatory components
--   * png: /usr/lib64/libpng.so
--   * jpeg: /usr/lib64/libjpeg.so
--   * freetype: /usr/lib64/libfreetype.so
--  * Optional components
--   * GDAL: /usr/lib64/libgdal.so
--   * OGR: /usr/lib64/libgdal.so
--   * GD: disabled
--   * GIF: /usr/lib64/libgif.so
--   * MYSQL: disabled
--   * FRIBIDI: /usr/lib64/libfribidi.so
--   * GIF: /usr/lib64/libgif.so
--   * CAIRO: /usr/lib64/libcairo.so
--   * SVGCAIRO: disabled
--   * RSVG: disabled
--   * CURL: /usr/lib64/libcurl.so
--   * PROJ: /usr/lib64/libproj.so
--   * LIBXML2: /usr/lib64/libxml2.so
--   * POSTGIS: /usr/lib64/libpq.so
--   * GEOS: /usr/lib64/libgeos_c.so
--   * FastCGI: /usr/lib64/libfcgi.so
--   * Oracle Spatial: disabled
--   * SDE: disabled
--   * Exempi XMP: disabled
--  * Optional features
--   * WMS SERVER: ENABLED
--   * WFS SERVER: ENABLED
--   * WCS SERVER: ENABLED
--   * SOS SERVER: disabled
--   * WMS CLIENT: ENABLED
--   * WFS CLIENT: ENABLED
--   * ICONV: ENABLED
--   * Thread-safety support: disabled
--   * KML output: ENABLED
--   * Z+M point coordinate support: disabled
--   * XML Mapfile support: ENABLED
--  * Mapscripts
--   * Python: ENABLED
--   * PHP: ENABLED
--   * PERL: ENABLED
--   * RUBY: disabled
--   * JAVA: disabled
--   * C#: disabled
--   * Apache Module (Experimental): disabled
--
-- Will install files to /usr/local
-- Will install libraries to /usr/local/lib64
-- Configuring done
-- Generating done
-- Build files have been written to: /root/work/mapserver-6.4.1/build
# make && make install
# ./mapserv
This script can only be used to decode form results and
should be initiated as a CGI process via a httpd server.

# cp -p /usr/local/bin/mapserv /var/www/cgi-bin/


5.動作確認
http://domain-name/cgi-bin/mapserv
にアクセスすると、「No query information to decode. QUERY_STRING is set, but empty. 」と表示される。


あとで気づいたが、
# yum install mapserver
で、6.0.3がインストールできるみたい・・・!

とすると、すべてyumでインストールできるなーー


プロフィール

tak_bon

カテゴリ別アーカイブ
QRコード
QRコード
  • ライブドアブログ