【質問】MAPファイルについて教えてください。

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

【質問】MAPファイルについて教えてください。

MSK 楠本
ご教授宜しくお願いします。楠本と申します。

早速ですが、MapServer(ms4w)を使用して地図を表示するのに、MapScriptを使用
して表示させたいのですが、
メーリングリストご覧の皆様からご教授貰えればと思っています。

① OpenLayers(WMS)からMapserverに対してパラメータ(Javascriptの変数)を渡す。

<JavaScript 抜粋>
     var testLayer = new OpenLayers.Layer.WMS("MAPSCRIPTテスト",
"/cgi-bin/mapserv.exe?userid=123&passwd=xyz",
         {
             map : "c:\test.map",
             layers: "layertest",
             format: "image/jpeg",
             transparent: true
         }, {
             isBaseLayer : false,
             opacity:1.0
         } );


② ①で指定した引数をMAPファイル内では以下の様に設定して使用しています。
<MAPファイル>
     MAP
     NAME "MOGAMI_TEST"
     CONFIG "MS_ERRORFILE" "/ms4w/tmp/ms_error.txt"
     WEB
         METADATA
             "wms_title" "WMS Server"
             "wms_srs" "EPSG:3857"
             "ows_enable_request" "*"
         END
     END
     PROJECTION
         "init=epsg:4326"
     END
     LAYER
         CONNECTIONTYPE postgis
         NAME "NAME"
         VALIDATION
             "userid" '^[0-9a-zA-Z_.*/+\-]+$'
             "passwd" '^[0-9a-zA-Z_.*/+\-]+$'
         END
         CONNECTION "host=localhost dbname=test_db user=postgres
password=%passwd% port=5432"
         PROCESSING "CLOSE_CONNECTION=DEFER"
#       DATA "geom FROM (select tbl_test.gid as gid, tbl_test.geom as
geom from tbl_test) using srid=4326 using unique gid"
         DATA "geom FROM tbl_test"
         STATUS ON
         TYPE LINE
         CLASSITEM "elev2"
         CLASS
             EXPRESSION ( ([elev2]  > 1) And ([elev2]  <= 100.0))
             STYLE
                 COLOR 255 0 0
                 WIDTH 2.0
             END
         END
     END
     END

 上記の設定でマップの描画は正常に動作しました。
 
 ここで、②のDATA行を以下の様に設定したいと考えています。
        DATA "geom FROM (select tbl_test.gid as gid, tbl_test.geom as
geom from tbl_test) using srid=4326 using unique gid"

 第一に、上記の様に設定を行うと、「(」でエラーとなってSQL文が正常に機能
してくれません。
 SQL文の指定の方法についてどうすれば指定できるのでしょうか?

 また、(select tbl_test.gid as gid, tbl_test.geom as geom from
tbl_test)の部分を①からの引数で指定したいのですが、
その様な引数の指定を行うことは可能でしょうか?
 可能であれば、その方法についてご教示頂けないでしょうか?

 目的としては、postGISで探索するSQL文をWebページからの指定で任意のデー
タをチョイスして表示することが出来るようにしたい
と考えています。
 最終的には、以下の様なデータ構造を持ったテーブルから、任意の結果を導き
だしたい。
 
 DATA-1,DATA-2,・・・・・DATA-n
 
 DATA-1とDATA-2の最大値をマップを表示させる。
 DATA-iとDATA-jの最大値をマップを表示させる。

 これらをホームページ上から指定した任意のデータカラムで実現したいと考え
ております。


_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|

Re: 【質問】MAPファイルについて教えてください。

hhayashi
楠本様

こんにちは。

  DATA "geom FROM (select tbl_test.gid as gid, tbl_test.geom as geom from
tbl_test) as TEST_TABLE_NAME using srid=4326 using unique gid"

のようにサブクエリーに名前をつけてできませんか?

http://mapserver.org/input/vector/postgis.html#data-access-connection-method

(2015/11/30 20:04), 楠本(MSK) wrote:

> ご教授宜しくお願いします。楠本と申します。
>
> 早速ですが、MapServer(ms4w)を使用して地図を表示するのに、MapScriptを使用 して表
> 示させたいのですが、
> メーリングリストご覧の皆様からご教授貰えればと思っています。
>
> ① OpenLayers(WMS)からMapserverに対してパラメータ(Javascriptの変数)を渡す。
>
> <JavaScript 抜粋>
> var testLayer = new OpenLayers.Layer.WMS("MAPSCRIPTテスト",
> "/cgi-bin/mapserv.exe?userid=123&passwd=xyz",
> {
> map : "c:\test.map",
> layers: "layertest",
> format: "image/jpeg",
> transparent: true
> }, {
> isBaseLayer : false,
> opacity:1.0
> } );
>
>
> ② ①で指定した引数をMAPファイル内では以下の様に設定して使用しています。
> <MAPファイル>
> MAP
> NAME "MOGAMI_TEST"
> CONFIG "MS_ERRORFILE" "/ms4w/tmp/ms_error.txt"
> WEB
> METADATA
> "wms_title" "WMS Server"
> "wms_srs" "EPSG:3857"
> "ows_enable_request" "*"
> END
> END
> PROJECTION
> "init=epsg:4326"
> END
> LAYER
> CONNECTIONTYPE postgis
> NAME "NAME"
> VALIDATION
> "userid" '^[0-9a-zA-Z_.*/+\-]+$'
> "passwd" '^[0-9a-zA-Z_.*/+\-]+$'
> END
> CONNECTION "host=localhost dbname=test_db user=postgres password=%passwd%
> port=5432"
> PROCESSING "CLOSE_CONNECTION=DEFER"
> # DATA "geom FROM (select tbl_test.gid as gid, tbl_test.geom as geom from
> tbl_test) using srid=4326 using unique gid"
> DATA "geom FROM tbl_test"
> STATUS ON
> TYPE LINE
> CLASSITEM "elev2"
> CLASS
> EXPRESSION ( ([elev2] > 1) And ([elev2] <= 100.0))
> STYLE
> COLOR 255 0 0
> WIDTH 2.0
> END
> END
> END
> END
>
>  上記の設定でマップの描画は正常に動作しました。
>  
>  ここで、②のDATA行を以下の様に設定したいと考えています。
> DATA "geom FROM (select tbl_test.gid as gid, tbl_test.geom as geom from
> tbl_test) using srid=4326 using unique gid"
>
>  第一に、上記の様に設定を行うと、「(」でエラーとなってSQL文が正常に機能 してく
> れません。
>  SQL文の指定の方法についてどうすれば指定できるのでしょうか?
>
>  また、(select tbl_test.gid as gid, tbl_test.geom as geom from tbl_test)の部分
> を①からの引数で指定したいのですが、
> その様な引数の指定を行うことは可能でしょうか?
>  可能であれば、その方法についてご教示頂けないでしょうか?
>
>  目的としては、postGISで探索するSQL文をWebページからの指定で任意のデー タをチョ
> イスして表示することが出来るようにしたい
> と考えています。
>  最終的には、以下の様なデータ構造を持ったテーブルから、任意の結果を導き だしたい。
>  
>  DATA-1,DATA-2,・・・・・DATA-n
>  
>  DATA-1とDATA-2の最大値をマップを表示させる。
>  DATA-iとDATA-jの最大値をマップを表示させる。
>
>  これらをホームページ上から指定した任意のデータカラムで実現したいと考え ており
> ます。
>
>
> _______________________________________________
> OSGeoJapan-discuss mailing list
> [hidden email]
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss


--
--------------------------------------------------
OSGeo.JP
  http://www.osgeo.jp
--------------------------------------------------
APPLIED TECHNOLOGY CO.,LTD.

MANAGER
Engineering headquarters
Geospatial Information Section
GIS Expert

HIROFUMI HAYASHI
[hidden email]

Umeda Center Bldg. 2-4-12 Nakazakinishi
Kitaku, Osaka 530-0015 JAPAN

   Tel: 06-6373-6121
   Fax: 06-6373-6126
--------------------------------------------------
_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|

Re: 【質問】MAPファイルについて教えてください。

MSK 楠本
楠本です。

SQL文の解決しました。有難う御座います。

もう1つ問題があり、MAPファイルへの引数の指定より、CONNECTIONで引数を設
定しパスワードが登録されることは確認できたのですが、
DATAのSQL文に引数を指定すると正常に機能してくれません。
%elev2item%に直接数値を設定すると正常に動作することは確認できました。

<MAPファイル抜粋>
VALIDATION
     "userid" '^[0-9a-zA-Z_.*/+\-]+$'
     "passwd" '^[0-9a-zA-Z_.*/+\-]+$'
     "elev2item" '^[0-9]+$'
END
CONNECTION "host=localhost dbname=test_db user=%userid%
password=%passwd% port=5432"
DATA "geom FROM (select tbl_test.gid as gid, tbl_test.geom as geom from
tbl_test where elev2<%elev2item%) as TEST_TABLE_NAME using srid=4326
using unique gid"

※参考にさせて頂いたサイト
http://mapabc.wikidot.com/ref:mapfile-variablesubstitution

重ねて申し訳ございませんが、ご教授よろしくお願いします。

On 2015/11/30 21:00, [hidden email] wrote:

> 楠本様
>
> こんにちは。
>
>  DATA "geom FROM (select tbl_test.gid as gid, tbl_test.geom as geom
> from tbl_test) as TEST_TABLE_NAME using srid=4326 using unique gid"
>
> のようにサブクエリーに名前をつけてできませんか?
>
> http://mapserver.org/input/vector/postgis.html#data-access-connection-method 
>
>
> (2015/11/30 20:04), 楠本(MSK) wrote:
>> ご教授宜しくお願いします。楠本と申します。
>>
>> 早速ですが、MapServer(ms4w)を使用して地図を表示するのに、MapScriptを
>> 使用 して表
>> 示させたいのですが、
>> メーリングリストご覧の皆様からご教授貰えればと思っています。
>>
>> ① OpenLayers(WMS)からMapserverに対してパラメータ(Javascriptの変数)を
>> 渡す。
>>
>> <JavaScript 抜粋>
>> var testLayer = new OpenLayers.Layer.WMS("MAPSCRIPTテスト",
>> "/cgi-bin/mapserv.exe?userid=123&passwd=xyz",
>> {
>> map : "c:\test.map",
>> layers: "layertest",
>> format: "image/jpeg",
>> transparent: true
>> }, {
>> isBaseLayer : false,
>> opacity:1.0
>> } );
>>
>>
>> ② ①で指定した引数をMAPファイル内では以下の様に設定して使用しています。
>> <MAPファイル>
>> MAP
>> NAME "MOGAMI_TEST"
>> CONFIG "MS_ERRORFILE" "/ms4w/tmp/ms_error.txt"
>> WEB
>> METADATA
>> "wms_title" "WMS Server"
>> "wms_srs" "EPSG:3857"
>> "ows_enable_request" "*"
>> END
>> END
>> PROJECTION
>> "init=epsg:4326"
>> END
>> LAYER
>> CONNECTIONTYPE postgis
>> NAME "NAME"
>> VALIDATION
>> "userid" '^[0-9a-zA-Z_.*/+\-]+$'
>> "passwd" '^[0-9a-zA-Z_.*/+\-]+$'
>> END
>> CONNECTION "host=localhost dbname=test_db user=postgres
>> password=%passwd%
>> port=5432"
>> PROCESSING "CLOSE_CONNECTION=DEFER"
>> # DATA "geom FROM (select tbl_test.gid as gid, tbl_test.geom as geom
>> from
>> tbl_test) using srid=4326 using unique gid"
>> DATA "geom FROM tbl_test"
>> STATUS ON
>> TYPE LINE
>> CLASSITEM "elev2"
>> CLASS
>> EXPRESSION ( ([elev2] > 1) And ([elev2] <= 100.0))
>> STYLE
>> COLOR 255 0 0
>> WIDTH 2.0
>> END
>> END
>> END
>> END
>>
>>  上記の設定でマップの描画は正常に動作しました。
>>  
>>  ここで、②のDATA行を以下の様に設定したいと考えています。
>> DATA "geom FROM (select tbl_test.gid as gid, tbl_test.geom as geom from
>> tbl_test) using srid=4326 using unique gid"
>>
>>  第一に、上記の様に設定を行うと、「(」でエラーとなってSQL文が正常に
>> 機能 してく
>> れません。
>>  SQL文の指定の方法についてどうすれば指定できるのでしょうか?
>>
>>  また、(select tbl_test.gid as gid, tbl_test.geom as geom from
>> tbl_test)の部分
>> を①からの引数で指定したいのですが、
>> その様な引数の指定を行うことは可能でしょうか?
>>  可能であれば、その方法についてご教示頂けないでしょうか?
>>
>>  目的としては、postGISで探索するSQL文をWebページからの指定で任意の
>> デー タをチョ
>> イスして表示することが出来るようにしたい
>> と考えています。
>>  最終的には、以下の様なデータ構造を持ったテーブルから、任意の結果を
>> 導き だしたい。
>>  
>>  DATA-1,DATA-2,・・・・・DATA-n
>>  
>>  DATA-1とDATA-2の最大値をマップを表示させる。
>>  DATA-iとDATA-jの最大値をマップを表示させる。
>>
>>  これらをホームページ上から指定した任意のデータカラムで実現したいと
>> 考え ており
>> ます。
>>
>>
>> _______________________________________________
>> OSGeoJapan-discuss mailing list
>> [hidden email]
>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>
>

_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss