RからTurf.jsを使うlawnパッケージを触ってみた
Turf.jsというJavascriptでGISをやるためのライブラリがあります。
これをRから使うためのパッケージをrOpenSciがつくっていました。今のところ、leafletパッケージでできる程度の使い方しか分からないんですが、ちょっとだけ触ってみたのでメモ。
インストール
V8パッケージとかleafletパッケージに依存しているので、依存パッケージをまず入れておきます。
sudo apt-get install libv8-dev
準備ができたらlawnをインストールします。
install.packages("devtools") devtools::install_github("rstudio/leaflet") devtools::install_github("ropensci/lawn")
地図を表示してみる
lawnにはlawn_data
というサンプルデータがついているので、とりあえずそれを表示してみます。表示はview()
という関数でできます。今のところ、view()
にはほかに引数を渡せないので、同じ縮尺で表示するやり方はなさそうでした。
library("lawn") library("jsonlite") view(lawn_data$polygons_count) view(lawn_data$points_count)
ここに貼るのめんどくさいので、RPubsに上げました。
計算してみる
READMEに載ってる例そのままですが、たとえばcount()
は各ポリゴン内にある点の数を数えます。
分かりにくいですが、↑でlawn_data$polygons_count
は四角形が横に2つ並んでいますが、2つの点は2つとも左の方に入っています。count()
の結果と一致しています。
count(polygons = lawn_data$polygons_count, points = lawn_data$points_count) #> $type #> [1] "FeatureCollection" #> #> $features #> type pt_count geometry.type #> 1 Feature 2 Polygon #> 2 Feature 0 Polygon #> geometry.coordinates #> 1 -112.07239, -112.07239, -112.02810, -112.02810, -112.07239, 46.58659, 46.61761, 46.61761, 46.58659, 46.58659 #> 2 -112.02398, -112.02398, -111.96613, -111.96613, -112.02398, 46.57043, 46.61502, 46.61502, 46.57043, 46.57043
この結果とか、点とポリゴンを重ねて表示するやり方はよく分かりませんでした。たぶんまだ開発中なんだろうな、という雰囲気です。使うにはまだちょっと早いかも。
ほんとはこんなことやりたい
GISって、別にRで分析すればよくない?と思われるかもしれませんが、個人的にTurf.jsに興味を持っているのは、こんなかっこいい地図が描けると聞いたからです。
でもこれ、MapboxのAPIを使わないと無理なのかもしれません。ちゃんと調べようと思いつつまだ手を付けられてないです。
まあとりあえずメモということで。
追記(2015/04/02): TODOリストありました。まだ実装されてるのは1/4くらいみたいです。