鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

Geo::WKTが更新されていた

jognaviに新機能(坂道ナビ機能)を追加しているのですが、
MULTILINESTRINGもパースしてほしいなぁと思いきや。

新しくなったGeo::WKTはサポートされているらしい。
チェンジログみたら以前私が指摘したものもFixしてくれたみたい。(ドキュメント指摘だけですけど!!OSSに貢献できた!)

Geo::WKT - Well Known Text representation of geometry information - metacpan.org

と思いきや、やはり、Geo::WKTにはmultilinestringのparseが含まれていなくて。

結局Geo::WKT::Simpleというモジュールがよさそうでした。変な依存もないし。

use strict;
use Geo::WKT::Simple;
use Data::Dumper;

warn("LINESTRING");
my $wkt = "LINESTRING(10 10, 20 20, 30 30)";
my @linestring =  wkt_parse_linestring($wkt);
for my $point(@linestring){
  warn Dumper($point);
}

warn("MULTILINESTRING");
my $wkt = "MULTILINESTRING((10 10, 20 20, 30 30),(40 40, 50 50, 60 60, 70 70))";
my @multilinestring =  wkt_parse_multilinestring($wkt);
for my $linestring(@multilinestring){
  for  my $point(@$linestring){
    warn Dumper($point);
  }
}