2008年08月27日

KMLとWKTの相互変換モジュール

Posted by nene2001 at 15:05 / Tag(Edit): cpan perl postgis kml wkt dbic / 0 Comments: Post / View / 0 TrackBack / Google Maps このエントリーを含むはてなブックマーク

書きました。

とはいってもKMLもWKTもフルスペックには対応してません。
KMLは、幾何情報のフラグメント部分のみの対応です。

  • <Point><coordinates>131,31</coordinates></Point>

とか

  • <Polygon>
    <outerBoundaryIs>
    <LinearRing>
    <coordinates>
    134,35 135,35 135,36 134,36 134,35
    </coordinates>
    </LinearRing>
    </outerBoundaryIs>
    <innerBoundaryIs>
    <LinearRing>
    <coordinates>
    134.2,35.2 134.8,35.2 134.8,35.8 134.2,35.8 134.2,35.2
    </coordinates>
    </LinearRing>
    </innerBoundaryIs>
    </Polygon>

とか

  • <MultiGeometry>
    <Polygon>
    <outerBoundaryIs>
    <LinearRing>
    <coordinates>
    134,35 135,35 135,36 134,36 134,35
    </coordinates>
    </LinearRing>
    </outerBoundaryIs>
    </Polygon>
    <Point>
    <coordinates>134,35</coordinates>
    </Point>
    </MultiGeometry>

とかの。

WKTも、やれPONT MZとかPOLYGON EMPTYとかの仕様には対応してません(というか、仕様理解してません)。
単純に上記のKMLと対応付くような形での、

  • POINT(131 31)
  • POLYGON((134 35,135 35,135 36,134 36,134 35),
    (134.2 35.2,134.8 35.2,134.8 35.8,134.2 35.8,134.2 35.2))
  • GEOMETRYCOLLECTION(POLYGON(134 35,135 35,135 36,134 36,134 35),
    POINT(134 35))

とかの変換に対応してます。
ややこしい仕様には対応してないということですが、私自身その辺使わないので、自分の使う範囲でということで。

ついでに、先日作ったDBIx::Classの空間情報プラグインも、KML対応にしました(0.0.2以降)。

    package POI;
    use base qw(DBIx::Class);
    __PACKAGE__->load_components(qw/GeomColumns Core/);
    __PACKAGE__->kml_columns( qw(kml_column) );

    # KMLで空間データを取得
    $poi->kml_column;

    # KMLで空間データを生成/更新
    $poi->kml_column('<Polygon>
      <outerBoundaryIs>
        <LinearRing>
          <coordinates>
            134,35 135,35 135,36 134,36 134,35
          </coordinates>
        </LinearRing>
      </outerBoundaryIs>
      <innerBoundaryIs>
        <LinearRing>
          <coordinates>
            134.2,35.2 134.8,35.2 134.8,35.8 134.2,35.8 134.2,35.2
          </coordinates>
        </LinearRing>
      </innerBoundaryIs>
    </Polygon>');
    $poi->update;    

みたいな感じで使えます。

Related query words in Google & Yahoo
Related Books from Amazon
Trackback to this entry
TrackBack URL :
Trackbacks
トラックバックはありません。
Comments
コメントはありません。
Post a comment












Remember personal info? 
2008年08月
Su Mo Tu We Th Fr Sa
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

About Me

Navigation

Search
Google
Web
kokogiko.net
Archives
Recent Entries
Recent Comments
Recent Trackbacks
Generic Viagra(Generic Viagra)
Google MapsライセンスとgoSVGによるオープンソースGIS生き残り戦略
Adobe もクラウドをはじめた!各社のクラウドサービスの特徴は?(ラボブログ)
Amazon EC2のランニングコストはそんなに安くなかった
「ここギコ!」の人が涙も出ないような状況になっていることについて(僕だけが幸せになればいいのに。)
人員がクラスタ化できている職場と言うのはうらやましい そろそろ限界です
GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(ここギコ!)
GoogleMapsと連動したいなら幾何データ型よりPostGIS
GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(ここギコ!)
「ジオメディアサミット関西」が開催されます。
GoogleMapsと連動したいならPostGISの他にmysqlという選択肢も出てきた あとジオメディアサミット関西も(ここギコ!)
MySQL4.1以降での空間情報の扱い方
なんか天から2兆円降ってくるらしいので みんな思い思いのところに募金なり寄付するのはどうか(ここギコ!)
「冷静に」「熱く」「マジ反論」でこの内容はある意味すごい
「亡びつつある日本の言語」と「日本語」、そして「普遍語」につらつら思うこと(ここギコ!)
国連人権委、アイヌ・琉球文化の保護を日本に勧告
「亡びつつある日本の言語」と「日本語」、そして「普遍語」につらつら思うこと(ここギコ!)
政治と祭祀が不可分と考えるなら、全ての祭祀を引き受けるのが筋
「亡びつつある日本の言語」と「日本語」、そして「普遍語」につらつら思うこと(ここギコ!)
Googleさんの技術でアイヌ語訳ができないだろうか
Hatena bookmarked
My del.icio.us

Banners

Syndication
Powered by
Get it!!