113 Views
January 28, 20
スライド概要
2020年1月28日に開催された MySQL Casual Talks #13 での発表資料です。
タイトル: MySQLと空間データ(GIS)~Software Design誌へのGIS連載と、公開されている地理情報データをMySQLに取り込むお話とユーザ会からのお知らせ
MySQL Casual Talks #13 MySQLと空間データ(GIS) ~Software Design誌への GIS連載と、公開されている地 理情報データをMySQLに取り 込むお話 とユーザ会からのお知らせ 2020/01/28 日本MySQLユーザ会 坂井 恵(@sakaik)
自己紹介 • 坂井 恵(さかい けい) • @sakaik • 日本MySQLユーザ会 • Oracle 副代表 Certified Professional, MySQL 5.7 Database Administrator • 測量士補 • MySQLに対する接し方は「パフォーマンスより機能」派
ユーザ会からのお知らせ 日本MySQLユーザ会は 2020年に設立20周年を迎えます。 20年を記念して、20周年記念パー ティを開催します! 日時: 2020年3月4日(水) 18:30~ 会場: SCSK様(豊洲) 内容: 20年を記念してのセミナーと交流会 テーマ: 「MySQLとユーザ会の20年」 ※開催3週間くらい前になったら参加受付を開始します(Connpassを予定)
カジュアルなみなさんにお願い 発表募集 (10分程度) • この20年(もっと短くてもいいです)で、MySQLが変わったなーと いうのを感じられる発表 • ご自身がMySQLを触り始めた時と今との違い • 今ならラクできているけど、当時はその機能がなくて苦労した話 発表してくださる方は、 twitter @sakaik まで連絡ください!
LTも募集しています • テーマ 「いまはむかしLT」 • 昔になりきって発表してください • 例:「バージョン4.1がでましたー! こんな新機能が便利です!」 • 昔の発表資料を引っ張り出してくるのもOK!
さて本題
ここまでのあらすじ 2018年4月。MySQL 8.0 が正式リリースされた。 そこに含まれていたのは、丸い地球。そう、地球上 のあらゆる地点の情報を、MySQLで扱えるように なったのである。しかしそれは、大きな壁に向かう 挑戦の始まりでもあった。 INFORMATION_SCHEMA.ST_SPATIAL_REFERENCE_SYSTEMS に記された符 号の数々は、ここにたくさんの種類の地球があるこ とを示していた。MySQL上の謎多き地球。 この謎に関心を持ち立ち向かった一人の男(文字数)
要約(ある男の話) • 位置の情報をデータとして持つ方法に興味を持ってしまった • データの発生源や、値の意味・原理を知ることは大切 • 世の中には「位置」を決めるための実在オブジェがたくさん • そりゃ、見に行ってみたくなるでしょう • 色々なモノを見に行き、色々な事を知った。面白い! • ふと気づくと「MySQLは、どこ行った!?」 • でも、手元に溜まった膨大な(当社比)知識と体験
膨大な体験(当社比)の 披露の場を得た!
連載内容 『MySQLの話をしない(こともある)MySQL連載!』 回 号 タイトル 行ったところ 1 2019/08月号 MySQL と空間情報 水準原点 2 2019/09月号 東経135度を求める旅 明石市(東経135度) 3 2019/10月号 位置情報の扱い方の基本 FOSS4G(北海道ほか) 4 2019/11月号 三角点を巡る旅① 日本の原点を訪ねて 日本経緯度原点 5 2019/12月号 三角点を巡る旅② 三角点探訪の実際 新潟の三角点 6 2020/01月号 三角点を巡る旅③ 長い距離を測る工夫~基 線測量 札幌基線、薫別基線(北海道)、三 方原基線(浜松) 7 2020/02月号 メートルで地球上の位置を表現?~平面直 角座標系 2系原点(阿蘇)、唐津城(佐賀) 8 2020/03月号 地図と測量の科学館へ行こう 科学館 、VLBI原点(つくば) 9 2020/04月号 日本の地図を作ってきた人々(予定) (2020年3月発売予定) ※連載に登場する ほぼ全ての写真は、筆者自身で撮影したもの!
連載の中で登場した場所
連載で伝えたかったこと • 位置情報は楽しい! • 位置情報は現実世界と密接に結びついている (というか現実世界の、もっともわかりやすい投影) 「会社にこの本あったなぁ」 「家にあるわ!」 という方、ぜひMySQL GIS 連載をご覧ください!
補足 「空間情報」(Spatial Data) 簡易的に「位置情報」という言葉で語ったりしていますが、 ある「点」の情報だけだと思っていませんか? ・全国のコンビニのある場所とか ・ランチマップにおけるお店の場所を表す点とか →線や面の情報も表すことができます(MySQLで扱えます) 線: (例)道路や川などの情報。ルート(経路)を表す情報 面: (例)都道府県や市区町村の形。建物の形。敷地の形。 →境界線を表すデータなので「境界データ」とも呼ばれる
空間情報のデータ 国土数値情報 ダウンロードサービス http://nlftp.mlit.go.jp/ksj/index.html e-Stat: 統計で見る日本/地図で見る統計 https://www.e-stat.go.jp/gis/ などをはじめとして、たくさんのデータが公開されている。
空間情報のデータ データ公開フォーマット • shapefile (シェープファイル) • xml • json • csv • excel / pdf シェープファイルで公開されている空間情報データは非常に多い。 →シェープファイルをMySQLに取り込む方法を知っていると、 MySQL-GIS活用の幅が大きく広がる!
シェープファイルの取り込み方 を、 宮内はじめさんに、私の連載の中で書いてもらいました! • GDALの ogr2ogr というツールを使います。 • いくつかの課題がありましたが、オラクル社MySQLチームの山﨑さんとと もに、ノウハウを溜めて、安定して取り込みができるようになりました。 Software Design 2020年2月号
ogr2ogrより便利なもの SD2月号より(宮内氏) 『シェープファイルをインポートするツール(shp2pgsql)が同梱されてい るPostGISに比べて、MySQLに(略)ひと手間かかります』 解説 • ogr2ogrは、最初の環境をつくる所だけがちょっと面倒なんです • PostGISには、shapefileを取り込むツールがついているんです
技術者魂に火が付いた!らしい shp2pgsql (ライセンスはGPL)を改造して、shp2mysql を作っちゃった! GitHubで公開されています https://github.com/hajime-miyauchi/shp2mysql/
実は私も • shapefileの仕様が公開されているので、これ、自力で読み取れるん じゃないかと思っていた • 年末年始に時間が取れるので、休みに入る前に電車の中で仕様書を読 んだりして把握 • とりあえず、特定の条件のファイルだけ読み取ってSQLを吐くものを 作成 • 見てもらいたくて、宮内さんと山﨑さんに連絡 → 宮内「えっ、私も作ってて、ついさっき MacとLinuxでの確認完 了したところで・・・・」 12月29日のできごとでした。
MySQLへのシェープファイル取 り込みは多様化の時代へ! 宮内版 shp2mysql • shp2pgsqlをベースに開発(C) • Linux, Windows, MacOS版の実行ファイルが提供されている • GPLなので勿論ソースコードも公開 坂井版 shp2sql (仮称) バイナリファイルを読んで解析するものをスクラッチで開発(Python) • 本日時点では、まだ非公開 • 現在、Polygonデータの解析ができるようになったところ。順次Pointや Linestring のデータを解析できるようにしていくフェーズ • スクラッチで書いた理由は、ライセンス上の制約をなるべく受けないよう にするため(あと、単純に技術的関心から) • ますます面白いことになりそうです。
まとめ • Software Design 誌の連載、読んでね! 「なんで終わっちゃったんですか。もっと読みたい!」とお便りをしていた だくと、続編か何かの連載枠をもらえるかもしれません(笑) (でも正直なところ、お伝えしたかった大きなものはかなりカバーしたので、 枠をもらえるなら今度は、名所紹介ではなく、正面から技術と向かい合った 特集記事とか、書きたいですね) • 公開されている shapefileデータをぜひ読み込んでみてね! より汎用的(というかツールとして歴史はある)にやるならまずは ogr2ogr の使い方を学ぶのも良いと思います • 手っ取り早く取り込んでみたいなら、宮内版 shp2mysql を! • しばらくして坂井版ツールも公開されたらぜひ触ってみてください • あと、ユーザ会20周年イベントでお話してくださる方も募 集していますのでよろしくです。
ありがとうございました 私からの本日のおすすめツイート: 「宮内さんはすごい人! 」 Hmatsuさんの言う 「Poooooooo界隈の方」