Mapfile Joinオブジェクト

どのように結合が処理されるかを定義する。 JOINキーワードで始まり、ENDキーワードで終わる。 JoinオブジェクトはQueryオブジェクト内部で定義される。

説明

JoinsはLayerオブジェクト内に定義する。Joinsを理解するキーは、一回のクエリを処理されて、Joinsが有効になる。Joinsは地図の見た目に何も影響がない、主要な目的はテーブルデータの検索です。

サポートされているフォーマット

  • DBF/XBase files
  • CSV (comma delimited text file)
  • PostgreSQL and PostGIS tables
  • MySQL tables

Mapfileパラメータ

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookCONNECTION [string]

DB接続文字列(DBFとCSVフォーマットは定義しなくでもよい)。下記はPostgreSQLの接続例です。

CONNECTION "host=127.0.0.1 port=5432 user=postgres password=postgres dbname=somename"

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookCONNECTIONTYPE [string]

DB接続の種類(DBFとCSVフォーマットは定義しなくでもよい)。 下記はPostgreSQLの接続例です。

CONNECTIONTYPE ogr

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookFROM [item]

結合対象の項目名、大文字小文字区別している。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookNAME [string]

この結合のユニークな名前。必須。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookTABLE [file]

結合対象のXBaseファイル、CSVファイル(相対パス)名称。
PostgreSQLとMySQLの場合は、結合対象テーブルの名称。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookTEMPLATE [filename]

1対多の結合に用いるテンプレート。テンプレートは各レコードごとに1度処理され、結合されるテーブルでの項目名のみを含むことができる。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookTO [item]

結合されるテーブルでの対象項目。大文字小文字区別している。

BlinkListblogmarksdel.icio.usdiggFarkfeedmelinksFurlLinkaGoGoNewsVineNetvouzRedditYahooMyWebFacebookTYPE [ONE-TO-ONE|ONE-TO-MANY]

結合の種類。デフォルトはONE-TO-ONEである。

サンプル1:Join from SHP file to DBF file

Mapfile Layer

LAYER
  NAME prov_bound
  TYPE POLYGON
  STATUS DEFAULT
  DATA prov.shp
  CLASS
    NAME "Province"
    STYLE
      OUTLINECOLOR 120 120 120
      COLOR 255 255 0
    END
  END
  TEMPLATE "../htdocs/cgi-query-templates/prov.html"
  HEADER "../htdocs/cgi-query-templates/prov-header.html"
  FOOTER "../htdocs/cgi-query-templates/footer.html"
  JOIN
    NAME "test"
    TABLE "../data/lookup.dbf"
    FROM "ID"
    TO "IDENT"
    TYPE ONE-TO-ONE
  END
END # layer

Ogrinfo

>ogrinfo lookup.dbf lookup -summary
INFO: Open of `lookup.dbf'
using driver `ESRI Shapefile' successful.

Layer name: lookup
Geometry: None
Feature Count: 12
Layer SRS WKT:
(unknown)
IDENT: Integer (2.0)
VAL: Integer (2.0)
>ogrinfo prov.shp prov -summary
INFO: Open of `prov.shp'
using driver `ESRI Shapefile' successful.

Layer name: prov
Geometry: Polygon
Feature Count: 12
Extent: (-2340603.750000, -719746.062500) - (3009430.500000, 3836605.250000)
Layer SRS WKT:
(unknown)
NAME: String (30.0)
ID: Integer (2.0)

Template

<tr bgcolor="#EFEFEF"><td align="left">[NAME]</td><td align="left">[test_VAL]</td></tr>

サンプル2:Join from SHP file to PostgreSQL table

Mapfile Layer

LAYER
  NAME prov_bound
  TYPE POLYGON
  STATUS DEFAULT
  DATA prov.shp
  CLASS
    NAME "Province"
    STYLE
      OUTLINECOLOR 120 120 120
      COLOR 255 255 0
    END
  END
  TOLERANCE 20
  TEMPLATE "../htdocs/cgi-query-templates/prov.html"
  HEADER "../htdocs/cgi-query-templates/prov-header.html"
  FOOTER "../htdocs/cgi-query-templates/footer.html"  
  JOIN
    NAME "test"
    CONNECTION "host=127.0.0.1 port=5432 user=postgres password=postgres dbname=join"
    CONNECTIONTYPE ogr
    TABLE "lookup"
    FROM "ID"
    TO "ident"
    TYPE ONE-TO-ONE
  END
END # layer

Ogrinfo

>ogrinfo -ro PG:"host=127.0.0.1 port=5432 user=postgres password=postgre dbname=join" lookup -summary
INFO: Open of `PG:host=127.0.0.1 port=5432 user=postgres password=postgres dbname=join'
using driver `PostgreSQL' successful.

Layer name: lookup
Geometry: Unknown (any)
Feature Count: 12
Layer SRS WKT:
(unknown)
ident: Integer (0.0)
val: Integer (0.0)

Template

<tr bgcolor="#EFEFEF"><td align="left">[NAME]</td><td align="left">[test_val]</td></tr>

サンプル3:Join from SHP file to CSV file

Mapfile Layer

LAYER
  NAME prov_bound
  TYPE POLYGON
  STATUS DEFAULT
  DATA prov.shp
  CLASS
    NAME "Province"
    STYLE
      OUTLINECOLOR 120 120 120
      COLOR 255 255 0
    END
  END
  TOLERANCE 20
  TEMPLATE "../htdocs/cgi-query-templates/prov.html"
  HEADER "../htdocs/cgi-query-templates/prov-header.html"
  FOOTER "../htdocs/cgi-query-templates/footer.html"  
  JOIN
    NAME "test"
    TABLE "../data/lookup.csv"
    FROM "ID"
    TO "IDENT"
    TYPE ONE-TO-ONE
  END
END # layer

CSV File

"IDENT","VAL"
1,12
2,11
3,10
4,9
5,8
6,7
7,6
8,5
9,4
10,3
11,2
12,1

Ogrinfo

>ogrinfo lookup.csv lookup -summary
INFO: Open of `lookup.csv'
using driver `CSV' successful.

Layer name: lookup
Geometry: None
Feature Count: 12
Layer SRS WKT:
(unknown)
IDENT: String (0.0)
VAL: String (0.0)

Template

<tr bgcolor="#EFEFEF"><td align="left">[NAME]</td><td align="left">[test_VAL]</td></tr>
Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License