はじめに
このエントリは RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2022 の5日目です。
MySQLでは5.7でGIS機能をBoost.GeometryというC++のオープンソースライブラリを採用して再実装し、MySQL 8.0でも引き続き機能強化しています。本記事をきっかけにMySQLのGIS機能に興味を持ってもらえると嬉しいです。
この記事で伝えたいこと
@miyauchiさんが2020年1月に書かれたMySQLのGIS機能に望むことという記事があります。この記事では以下の要望が述べられていますが、これらの要望について、現在のMySQLでの改善状況をお伝えします。
1.ST_Intersectsの速度改善
2.ST_Union等の集計関数版の実装ダンプファイルの取得
3.ST_Transformの改善
本文
それぞれの要望について、現在のMySQLでの改善状況は以下の通りです。
1.ST_Intersectsの速度改善
MySQL 8.0.20(2020年4月リリース)で不具合が修正され、速度が改善しています!
2.ST_Union等の集計関数版の実装
ST_Union等の集計関数版はまだ実装されていません。
しかし、MySQL 8.0.24でST_Correct関数が実行されたため、ジオメトリの集合を単一のジオメトリコレクションに集約することはできます。
3.ST_Transformの改善
MySQL 8.0.30(2022年7月リリース)でST_Transformの機能が強化され、WGS84/Web Mercator(SRID:3857)をサポートしました!
これにより、例えばGPSで得られた位置情報(※1)をOpenStreetMapやGoogleマップ等のウェブ地図上の位置情報(※2)に変換できるようになりました。
※1 測地系:WGS84、座標系:地理座標系、SRID:4326
※2 測地系:WGS84、座標系:投影座標系、SRID:3857
このように、MySQLのGIS機能は機能追加/改善を続けています。
最後に
1日目のエントリで「2022年は、あまり大きな進化のない1年でした。」というコメントも頂いてしまいましたが、引き続きMySQLのGIS機能の機能追加/改善にもご期待頂ければ幸いです!
(機能追加/改善をより活発にするためにも、bugs.mysql.comからの機能追加リクエストも大歓迎です!!)
また、もう少し詳しい説明を確認したい場合は、当日の発表資料や発表動画を確認して頂ければと思います!
明日は@dupont-kedamaさんです!