先月書いたとおり、11
- 発表スライド「何が違うのか
? PostGISと最新版 MySQL のGIS 機能を徹底比較」
»slides20151127_rev.pdf( 1.4 MB)
- テーブルのダンプ(
for MySQL 5.7.9 : borders_geom, centroids )
»20151127_dump_mysql.sql.zip( 76 MB、解凍後 129 MB)
- テーブルのダンプ(
for PG 9.5 Beta 2 + PostGIS 2.2 : borders_geom, union_prefs, fringes )
»20151127_dump_postgis.sql.zip( 90 MB、解凍後 251 MB)
- 本資料に関する問い合わせ先
: スライド先頭のメールアドレスまで
MySQL
ダンプ時のコマンドを、参考まで(というか後で自分が調べる時用に)メモしておきます。とくに
:: MySQL cd D:\AppsPortable\MySQL\mysql-5.7.9-winx64 bin\mysqldump -u root -p test_gis borders_geom centroids > 20151127_dump_mysql.sql :: PostgreSQL cd D:\AppsPortable\pgsql_9.5.0_beta2_x64\bin pg_dump -f 20151127_dump_postgis.sql -t borders_geom -t fringes -U postgres test_gis
テーブルのダンプがなくとも、当日発表したようにMAPZEN - Bordersから日本の
最後に紹介した
create or replace function myfunc.poi_dens (wkt text, num int, svg text, jname text) # 数値, 文字など一般的なデータ型は、そのまま引数で渡せる # 引数名も付けられる # wkt : PostGISデータを ST_AsText() で文字にして渡す # num : 今回ポリゴン内にランダムに点を打つ。その数 # svg : 結果を SVG で出力する。そのパス # jname : SVG の中に書き込む、処理対象のラベル returns void language plr immutable as $R$ library(rgeos) library(sp) library(spatstat) # インストールしたパッケージを読み込む g1 = readWKT(wkt) # PostGISデータ → Rの地理データクラス bb = g1@bbox p1 = spsample(g1, n=num, type='random') # ランダムな点 xy = p1@coords pp = ppp(xy[,1], xy[,2], bb[1,], bb[2,], c('unit', 'unit')) dense = density(pp) # ppp … spatstatパッケージで分析する際の一つの基本クラス # point pattern dataset in the two-dimensional plane # density() … カーネル密度推定の関数 colors = colorRampPalette(c('white', 'orange')); # 色は適当 svg(file=svg) plot(dense, main='', xlim=bb[1,], ylim=bb[2,], col=colors) contour(add=T, dense, lty=2) plot(add=T, g1, lwd=2) points(p1, pch=21, bg='red') mtext(cex=2, side=3, family='Japan1', text=jname) graphics.off() $R$;
上記ストアドの出力