gis

MySQLはLat-Lon記述順にST_SPATIAL_REFERENCE_SYSTEMSの定義を参照しているのか?

MySQLでは、より正確に書くと、我々がよく使う JGD2011やWGS84を使う際には、緯度(Lat)と経度(Lon)を表す際 (Lat Lon)の順序で記述します。これは PostGISなど他のGISツールでよく使われている記述順序と逆のものです。この挙動は「ST_SPATIAL_REFERENCE_SYS…

平面直角座標系でのタテヨコ移動の際の緯度経度の変化について整理

gis

昨日のエントリで、「平面直角座標系で、X軸の値のみ、またはY軸の値のみを変更したのに、緯度・経度の片方ではなく両方変わってしまうのは、おかしい」という意味のことを書きました。 すかさず「それで正しいのだ」と とーかさんからご指摘をいただき、幾…

MySQLのJGD2011での座標系変換/換算にトライ

MySQLのJGD2011の SRS定義には towgs84が含まれていないために座標系の変換や換算できない課題について、「EPSG 9.0や9.1には、JGD2011にtowgs84の定義は含まれていない。EPSG v10.042 以降をMySQL開発チームが採用してくれれば全て解決する」との予想的結論…

続・MySQLのJGD2011定義にtowgs84がない話(一旦決着)

先日書いた 「MySQLのJGD2011定義にtowgs84がない話」に、一定の結論が出た気がします。 とーかさん(@tohka38)のブログ(下記)と、MySQLの大塚さんとのやりとりをさせていただいた中から調査の糸口がみつかりました。どうもありがとうございます。qiita.com…

登記所備付地図データ更新公開(202308)&サマリ集計しました

2023年1月に初めて公開された法務省の「登記所備付地図データXML」。更新は年1回程度を予定とのことだったので年内は何もないと思っていたら、少し前に「8月31日に更新データを公開します」との発表がありました。素晴らしい!!!https://www.moj.go.jp/MIN…

MySQLのJGD2011定義にtowgs84がない話

承前 タイトルを見て何の事を言ってるのかわかる人向けのメモ書きです。結論としては「私もよくわかっていない」の段階ですが、調査して(正しいかどうかは分からないけど)多少の情報と仮説ができてきたので、メモとして記す次第です。 最終目的 MySQLの IN…

FOSS4G Tokai 2023参加

ようやく世界が動き出した! というか、私の気持ちの中での話なのですが、昨年開催された FOSS4G Tokai 2022の時期にはまだ、遠征しようという気持ちにはなれなかったところ、今年はいよいよリアル会場で参加するぞ!という気分が盛り上がってきました。日程…

平面直角座標系8系原点

RubyKaigi2023 の帰り道にレンタカーで「平面直角座標系の 8系原点」に行ってきました。平面直角座標系についての基礎知識は、こちらで:わかりやすい平面直角座標系 | 国土地理院 平面直角座標系のモニュメント 平面直角座標系の原点はキリの良い座標を半ば…

MySQLにおける「いろいろな地球」はどれくらい「いろいろ」なのか

これは、RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2022 の14日目の記事です。 はじめに 地域や時代によって様々な「地球の形のモデル」が使われてきたことは、これまで何度も話題にしてきたので知っている人も多いと思う。では、どんなパラメタの違…

MySQL2021~地理情報(spatial)機能の進化

この記事は、『RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2021』の1日目のエントリーです。 2021年のMySQLは、以下の5つのバージョンがリリースされました。 MySQL 8.0.23 (2021/01 リリース) MySQL 8.0.24 (2021/04 リリース) MySQL 8.0.25 (2021/…

MySQL 8.0.23で実装されたフレシェ距離関数(ST_FrechetDistance())を試す

MySQL 8.0.23で、Spatial(GIS)関連機能として、フレシェ距離を求める関数 ST_GrechetDistance() と、ハウスドルフ距離を求める関数 ST_HausdorffDistance() が追加されました。どちらも、2つのジオメトリどうしの類似度を求める関数のようですが、今ひとつ…

MySQLの地理情報データをQGISで表示する方法

この日記は、 RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2020 の14日目ぶんとして後から書いているものです。 この日記は QGISという GISの専用ツールがあります。 QGIS が何かについては私も語るほど整理できた情報を持っていないので、とにかく地…

shapefileをMySQLに取り込む!shp2sqlの紹介

この日記は、RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2020 の7日目ぶん(あいていたので後から埋めてます)の記事です。 この日記は 世の中の地理情報データ(位置の情報を含んだデータ)には、shapefile というファイル形式で公開されているもの…

MySQLの空間データ型の変換(1)~MULTIPOINTやLINESTRINGからPOINTを得る~

この日記は、RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2020 の 17日目のエントリーです。 はじめに MySQLで取り扱うことができる空間情報の型には、点、線、ポリゴン があります。それぞれ にそれらの集合を扱える型が存在してるので、都合6つとな…

MySQLのGIS機能で円の範囲に含まれる点を検索する試行

この日記は、RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2020 の16日目の記事です。 何をしたいか 先日の日記で雑に作成した大量のPOINTデータを使って、ある点から一定距離内にある点を検索します。普通にやると結構時間がかかりますが、空間インデ…

MySQLに超・雑に大量のPOINTデータ(位置データ)を作成する方法

これは、RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2020 の11日目のエントリだったはずのものです。実際には3日ほど遅れてしまいました。 MySQLで、空間情報を扱う動作の確認をしたいときに、ちょっとばかり多めのデータが欲しくなることがあります…

個性的なcsvからデータを取り出した話

コンピュータシステム周辺に関わっているとCSVファイルとのお付き合いは避けて通れないものと言えるでしょう。みなさんはどんなCSVとお付き合いしたことがありますか。 セパレータが明確でない(というか明確なのだけど例外例外の積み重ねが意外とややこしい…

Geospatial Hackers Program に参加して優秀な成績を収めた話

少し前の話になるのですが、Geospatial Hackers Program (GHP)というイベントに参加して来ました。実は、ハッカソンなるものに参加するのは初めてのことで、勝手も分からずに緊張していたのですが、素敵な仲間たちと出会い、心地よく参加させていただくこと…

MySQLの生成列を使って緯度・経度の列をGEOMETRYに

緯度と経度それぞれが別々のカラムに格納されているデータに対して、生成列を使ってGEOMETRY型のカラムとして扱えるようにする方法を考えてみました。速度面で何かディスアドバンテージがあるのか否かは未知数ですが、こんな方法もあるのだというヒントにな…

MySQLのSRID()でSRID変換する際にaxis-orderで悩んだ話

訳あって、MySQLで「GEOMETRY型のカラムに、いったん SRID=0で登録したあと、一気に正しいSRIDに変換する」ということをやろうとしたところ、思惑通りにいかず随分悩んだので、整理しておきます。 やろうとしたこととエラー発生 ここではシンプルな例に置き…

解決:高緯度ほど緯度1度が広くなる謎(追記あり)

数日前の日記の中で、「緯度1度あたりの長さは、緯度の高低に依らず一定と予想して、MySQLで計算してみたところ、差が出てびっくり」という実験結果を紹介しました。 http://sakaik.hateblo.jp/entry/20191202/mysql_gis_metre_per_degreeこれは、地球が(そ…

MySQL Technology cafe #6 でMySQLのGISの話をしてきました

そんなわけで、12月5日に開催された Oracle Technology Cafe #6 にて、発表の機会をいただき、あんなことやこんなことを語ってきました。 この2年間、色々なところでMySQLのGISについてお話をしてきて、そろそろ「測地系というのが色々あるらしい」「緯度経…

経度一度はどれくらいの長さ?MySQLをつかって調べてみよう

この日記は、RDBMS-GIS(MySQL,PostgreSQLなど) Advent Calendar 2019 の2日目の記事です。 ( https://qiita.com/advent-calendar/2019/rdbms_gis ) 経度一度ってどれくらい? 赤道付近の一周の長さが だいたい 40,000km だというのはみんな知っていますよね…

MySQL: ストアドで度分秒変換

GIS関係のデータを探していると、緯度経度を表す数値として、度で表されているものと、度分秒で表されているものがあります。MySQLで扱えるのは、度(「35.65810012度」のような数字)です。度分秒(「35度39分29.172秒」のような表現)で公開されているデー…

FOSS4G 2019 Niigata 参画

FOSS4G Niigata に参加してきました。この分野は新参者だし、趣味で素人なので、ひっそりと一参加者としてです。 とは言いつつも、懇親会ではライトニングトーク(LT)の枠も頂戴して、趣味全開のお話を披露させていただきました(後述)。 www.osgeo.jp 前日…

FOSS4G Hokkaido参加

記録のみ。foss4g.hokkaido.jp ハンズオンデイ『JavaScriptとMySQLでGISを作ってみよう』 宮内 はじめ氏&山﨑 由章氏 に参加コアデイ懇親会にてLT 札幌の人に知ってもらいたい三角点の話~FOSS4G2019 Hokkaido LT from sakaik www.slideshare.net 前夜祭と…

測量士補試験を受けてみた話

MySQL 8.0 で GIS の機能が本格的になった(測地系の概念が入った)ことをきっかけに、位置情報的なものに興味を持った私です。最近はもう、MySQLの機能とは関係ないところで*1、緯度経度がどうやって決められているかとか、地図作るのにどうやって正確に場…

MySQLのSpatialでのPOLYGONの同一性

boiledorange73さんのこの記事を見て、むくむくと疑問が湧き上がったわけですよ。本題とは全然関係ないところで、単に「右回り左回り」というキーワードだけに反応して、妄想全開モードになっただけなのですが。 qiita.com MySQLは 記述方法の違うポリゴンを…

JGD2011からのST_Transform()、JGD2011へのST_Transform()

この日記は RDBMS-GIS Advent Calendar の 20日目の枠です。 一昨日に書いた MySQL 8.0.13 の ST_Transform()を試す - sakaikの日々雑感~(T)編 に対する返歌を 有意識者の boiledorange73 さんにいただいた(JGD2011の座標系にtowgs84が無いとかそもそもtow…

MySQL 8.0.13 の ST_Transform()を試す

この日記は RDBMS-GIS Advent Calendar の 18日目の枠です。 MySQLの残念な ST_Transform() ST_Transform() という関数があります。測地系を変換できる機能です。Tokyo測地系(別名日本測地系)で記述されている緯度経度を、JGD2000/2011 に変換したり、あるい…