40 件中 1 - 10 件を表示
次の 10 件 »
Displaying posts with tag: GIS (reset)
MySQLに新たなGIS(Spatial)関数 ST_Perimeter()を実装する

「MySQLには (特にPostGISと比べて) 対応している空間関数がとても少ない」と、この7年間言い続けてきました。 一方で、MySQL 8.0 以降(正確には5.7以降)のGIS関数は Boost::Geometryという専門家のようなライブラリを活用して、独自実装を避けるようになった、ということもお伝えし続けてきました。・・・この2つの情報を組み合わせると、 「 Boost::Geometryライブラリの関数を呼び出すコードを書けば、MySQLにもどんどんGIS関数を追加できるのではないか」 という必然に行き着きます。・・・これに気づくまでに7年かかった。。。 ということで、Polyg…

MySQLのspatial indexは遅いのか?

先日参加した「MyNA(日本MySQLユーザ会) 望年LT大会2025@新宿」にて、(要約すると)「Spatial Indexなんかよりも緯度経度で検索したほうが、ずっと速いよ!」という発表を聞かせていただきました。 speakerdeck.com MySQLのSpatial Indexは遅いのか? 今回設定されたケースでは、「緯度経度での検索」が最速なのは、言われてみれば納得感はあります。何と言ったって、緯度と経度の数字の大小関係だけで対象エリアが特定できるのだから、余計なことをしない(プリミティブな数値型だけで評価できる)方法が最速になるんじゃないかな。 ・・・・という仮説を、会場でもお話…

MySQLのGIS機能2025

このエントリは、RDBMS-GIS(地理情報・位置情報) Advent Calendar 2025 の1日目です。「RDBMS-GIS Advent Calendar」では今年も参加者を熱烈募集中です。RDBMSを中心としたなんらかのデータベース管理システムで地理情報データを扱ってみた体験やノウハウなどでお気楽に参加ください。今年は、アドベントカレンダーの期間中に書いたものだけでなく、2025年中に書いたブログなどでの参加もOKとしています。 さて、2025年もMySQLのSpatial機能(GIS機能)は少しずつですが進化しています。現在のMySQLはLTSとInnovation Relea…

MySQLのSRS定義の原典たる EPSGデータを見てみる

ちゃんと原典となるデータを見ておきたいと長いこと思っていたのですが、ようやく少しまとまった時間が取れたので、眺めてみました。EPSGデータです。 EPSGのデータは、こちらからダウンロードできます。今回は 12.005データを。 https://epsg.org/download-dataset.html 諸RDBMSへとインポート(登録)するためのスクリプトが提供されているので、今回はMySQL用のものをダウンロードして、登録してみました。 ざっくりテーブル構造はこんな感じ。意外とでかい。 今回の目的は、MySQLの ST_SPATIAL_REFERENCE_SYSTEMSに登録されている値…

MySQLをJGD2024対応にする(暫定)

今日から JGD2024がはじまりました。 私の理解では 水平位置はJGD2011と同じ。元期も変わらない 標高成果に対して新たに元期を 2024/06/01と定めた というもので、平面データを扱うだけなのであれば、データとしてはまぁ当分はJGD2011を使い続けても問題にはならないかなという感覚ではありますが(認識違っていたらご指摘ください)、そうは言っても、やっぱり対応したいじゃないですか、MySQLで。 SRS_IDがなかった 対応したいと思って鼻息荒く黒い画面に向かったのですが、ここで登録できない大きな壁が。 そう、SRS_ID(EPSGコード)が振られてないのですよね、まだ。 EPS…

MySQLのGIS機能2024

このエントリは、RDBMS-GIS(地理情報・位置情報) Advent Calendar 2024 の1日目です。「RDBMS-GIS Advent Calendar」では今年も参加者を熱烈募集中です。「はじめて触ってみた」という内容も熱烈歓迎ですので、この機会にお使いのRDBMSでぜひ地理情報の操作に挑戦してみませんか。 さて。このエントリはMySQL の Spatial機能(GIS機能)、2024年の進化のまとめです。MySQLは臨時のリリースがない限りは通常、3ヶ月に一度、年4回のアップデート・バージョンが公開されるので、年4回のMySQL 8.0シリーズのリリースについて書けば良さそう…

MySQLのGIS関数は180度を跨いだ部分でもちゃんと最短距離を計算する

2024年8月の FOSS4G Tokai、MySQLの山﨑さんの発表後に「MySQLでは180度線を跨ぐ場合の距離など、正しく計算してくれるのか」という質問がありました。確か以前、(当然)それは大丈夫だったのを確認したよなぁと朧気に思いつつもその場でフォローはできなかったので、ご講演終了後に速攻で確認してみました。 結論 「ちゃんと、180度をまたいでも、最短の距離で計算してくれる(ぐるりと0度のほうを回って、つまり例えば 東経175度から0度を経由して西経175度までの距離を計算するわけではない)」 実例 赤道上での、東経165度から175度の距離、および東経175度から西経175度までの…

MySQLのGIS機能2023

このエントリは、RDBMS-GIS(地理情報・位置情報) Advent Calendar 2023 の1日目です。「RDBMS-GIS Advent Calendar」では参加者を絶賛募集中です。今年も、ご自由にお気楽に参加ください。さて。MySQL の Spatial機能(GIS機能)、2023年の進化のまとめです。MySQLは臨時のリリースがない限りは通常、3ヶ月に一度、年4回のアップデート・バージョンが公開されます。 リリースノートから、この1年の進化を見てみましょう。とここまでは昨年と同じイントロでして、昨年は「といいつつ実は、2022年は、あまり大きな進化のない1年でした。新機能追加…

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

MySQLでは、より正確に書くと、我々がよく使う JGD2011やWGS84を使う際には、緯度(Lat)と経度(Lon)を表す際 (Lat Lon)の順序で記述します。これは PostGISなど他のGISツールでよく使われている記述順序と逆のものです。この挙動は「ST_SPATIAL_REFERENCE_SYSTEMS上にある JGD2011の定義情報の中で Lat-Lon の順序で示されているからだ」と私は理解し、そのように語ってもきました。 しかし考えてみたら、本当にST_SRSを参照しているのか。実は決め打ちで (Lat-Lon)なのではないか、というウラを取ったことがなかったので、この…

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

MySQLのJGD2011の SRS定義には towgs84が含まれていないために座標系の変換や換算できない課題について、「EPSG 9.0や9.1には、JGD2011にtowgs84の定義は含まれていない。EPSG v10.042 以降をMySQL開発チームが採用してくれれば全て解決する」との予想的結論をひとつ前のエントリで書きました。 sakaik.hateblo.jp このエントリーでは一足先に、JGD2011でtowgs84を含んだ定義での動作を得るための方法を実験します。本稿は MySQL 8.1.0で動作確認しています。 SRSの定義の変更 MySQLのソースコードの、mysql_…

40 件中 1 - 10 件を表示
次の 10 件 »