2019年12月5日(木)に開催された「MySQL Technology Cafe #6」での発表資料です。 https://oracle-code-tokyo-dev.connpass.com/event/147283/
はじめに 先日の公共交通トリセツの記事でGTFSデータの活用方法を幾つか紹介しましたが、その中で「公共交通の運行本数を可視化する方法」について、具体的な作業手順の質問を何件か頂きました。今回の記事ではその具体的な方法を紹介いたします。 私も、GISソフトは全く触っていない初心者でしたが、この方法を覚えてからGISソフトに興味を持ち、インターネット等で様々な操作方法を身に付け、今では地域の分析等に活用できるようになりました。皆さんも是非この機会に一度お試しください。 QGISを利用して、運行頻度図を表示する手順利用するソフトウェアとデータについて 運行頻度路線図を作るためには、GTFSデータに含まれる公共交通機関の情報を地図上で可視化する必要があります。GTFSデータに限らず何かしらの位置情報を持ったデータを地図上で可視化したい時は、GIS(Geographic Information Sy
はじめにMIERUNEは、オープンソースへの貢献の一環としてQGISプラグインを無償でいくつか公開しています。その中から、本記事では「GTFS-GO」の使い方・使い道を紹介します。 GTFSとは?GTFSとはGeneral Transit Feed Specificationの略で、時刻表、停留所の位置や経路、運賃…などなど、公共交通機関にまつわるあらゆる情報を格納するための国際規格です。昨今ではバス業界を中心に、GTFSのオープンデータとしての整備・公開が進んできています(参考: GTFS.JP)。 GTFSの実体は複数のCSVで構成されています。なので非常に機械判読性の高い規格ですがその反面、人間が読めるようにはなっておらず、データを確認・活用するには何かしらのアプリケーションを用いる必要があります。そこで開発したのが「GTFS-GO」です。 GTFS-GOGTFSは停留所の位置と経路
お知らせ v2で運行頻度図の作成に対応しました はじめに GTFSとは? General Transit Feed Specification / Wikipedia 正式名称を直訳するなら「交通情報全般の規格」でしょうか、その名のとおり、公共交通機関の時刻表や地理的情報に関するオープンフォーマットです。 昨今のオープンデータ界隈において、GTFSは最もホットな話題のひとつでしょう。GTFSを国内向けに拡張したGTFS-JPが定義されて以降、バス事業者をはじめとした多くの方々の手によりGTFSデータが整備され、オープンデータとして公開されています。 利用上の課題 GTFSデータは機械判読性は高いですが、可視化は容易ではなく使えるツールが限られています(ツール例:https://tshimada291.sakura.ne.jp/transport/gtfs-viewer/)。また、可視化出来
こんにちは。@onunuです。本記事はMySQL casual AdventCalendar 17日目の記事です。 本記事ではMySQL8で大幅に強化されたGISデータ周りのtipsについて触れたいと思います。ある程度尽くされた話題ではありますが、主にアップデートされた機能について言及していこうと思います。みなさまの快適なMySQLライフの一助になれば幸いです。 なお、各所にある例や参考のクエリは以下の環境で確認しています。 また記事の内容に誤りがございましたら、コメント欄かTwitterなどのDMにてご教示いただけますと幸いです。 GISデータとMySQL MySQLにおけるGISデータ GIS(Geographic Information System)とは地理情報や空間に関するデータをコンピュータ上で取り扱うためのシステムをさします。MySQLはOGC(Open Geospatial
市区町村の行政区域データは 国土数値情報 にあるから、これで事足りる (使用例=日本全国市区町村の行政区域)。 都道府県のポリゴンデータは案外少なかったので5年前に KML で出していたが、もう要らんだろうと考え削除していた。 それでもやはりデータをお探しの方は少なくないようなので javascript での使用例としては こんな感じ とか。 R 言語での使用例としては コロナ下の3年間で死者はどれだけ増えたのか (朝日新聞デジタル企画報道部 小宮山亮磨) など。 Geojson ファイル を置いておく。* ダウンロードのうえ使用して下さい。連絡は不要です。 精密な描画をしようと思えばデータは大きく重くなる。逆に軽量化を志向すれば描画は雑になる。だから、ほどほどで折衷している。 ※2021.3.17 追記:エラーが出る旨のご指摘をいただき、栃木、香川と熊本の一部データを修正した。 ※202
緯度経度から都道府県・市区町村を検索できるオープンソースの逆ジオコーダーをベクトルタイルで作りました! オープンソースの逆ジオコーダーをつくりました。 https://github.com/geolonia/open-reverse-geocoder これを使用すると、緯度経度から都道府県名および市区町村名を検索することができます。 以下でデモをみることができます。地図を動かすと下の方に地図の中心点の住所が表示されます。 https://codepen.io/geolonia/pen/oNZLPQP 仕組み 一般的な逆ジオコーダーの仕組みは、地名のポリゴンを北海道から沖縄までループで回して、引数で渡された緯度経度がどのポリゴンに含まれているかを計算して、該当する地名を返すというような仕組みであろうかと思います。 しかし、たとえば全国の市町村のポリゴンはGeoJSONにすると400MB以上あ
この記事はFOSS4G Advent Calendar 2017の23日目の投稿です。 みなさまこんにちは。 今年は、Pythonなどで空間処理を行うのにmod_spatialite使ってみたらいかがでしょうか、というオハナシです。 全然新しくない(むしろ古いか…)ものの紹介ですすみません。(検索したらホイホイ出てくるよね…) はじめに ローカル環境で利用できる軽量のRDBMSであるSQLiteの地理空間拡張がSpatiaLiteです。 名だたるPostGISと同じような処理がお手軽に利用できますよ、というメリットがあるわけですが、SQLiteでは変数を使用したSQLを認識できない(他のRDBMSはどうだかわかりません…)ため、バッチ処理などのために変数を使用してSQLを生成するには外部言語からSpatiaLiteへアクセスしたいということになります。 (ちなみに、次期バージョンのSpat
作業手順 今回の作業手順を以下に示します。 1.シェープファイルの入手 国土数値情報のサイト、統計GISのサイトからシェープファイルを入手します。 2.シェープファイルのインポート 今回は、”spatialite_tool”(CLI)を使ってシェープファイルをSpatiaLiteデータベースへインポートします。 3.SpatiaLiteの環境構築 前回の記事を参考に、SpatiaLiteの環境を構築します。 4.Pythonプログラムによる検索 PythonプログラムからSpatiaLiteへ接続して検索を行います。 シェープファイルの入手 以下の国土数値情報ダウンロードサービスからバス停留所(点)のシェープファイルを入手します。 [blogcard url=”http://nlftp.mlit.go.jp/ksj/”] ダウンロードするファイルの情報は、以下となります。 分類:4.交通>
先日、オープンソースな地理空間ソフトウェア群であるFOSS4GなAdvent CalendarにSpatiaLiteについて投稿したところ、たけやぶにお住まいのSQL使い@ozo360さまから畏れ多くもお誘いをいただいたので、こちらにもかんたんな紹介記事を投稿したいとおもいます。(@ozo360さま、お誘いいただきありがとうございます!) SpatiaLite...? パブリックドメインな軽量データベースであるSQLiteにSpatial(空間的)な機能を拡張したのがSpatiaLiteです。正しい読みは知りませんが、「すぺーしゃらいと/すぺいしゃらいと」とか呼んでます。 配布元では、Spatial Is Not Special(空間的なことは特別なことじゃない:もっとましな訳があるはず)というスローガンを掲げていて、空間処理も簡単にできるようになるよ!的な想いがひしひしと伝わってきます。
【MySQL】Geometry型で位置情報(座標)を扱うMySQLで位置情報(座標)を扱う場合には、Geometry型という便利な型があります。 Geometry型のカラムには、GeomFromTextでデータを作成して保存することになり、 以下の様な形式でSQLクエリを組み立てます。 INSERT INTO テーブル名 (カラム名) VALUES (GeomFromText('POINT(経度 緯度)')); ※経度と緯度の間は、半角スペースで区切ります。 例えば、 テーブル名「tbl_location」、カラム名「latlng」とすると、このようなSQLクエリを実行することになります。 INSERT INTO tbl_location (latlng) VALUES (GeomFromText('POINT(139.767125 35.681236)')); ここまでは問題ないですね。
今回から2回に分けて、位置情報をDatastoreに格納する方法をいくつか紹介します[1]。 数値型で保存する 緯度経度の情報をデータベースへ格納するときに、もっとも簡単な方法が数値型として保存する方法です。緯度経度がとりうる値の範囲は、以下の通りですので、システムに必要な小数点以下の数字を考慮して型を決めましょう。 はてなフォトライフでは、写真に緯度経度のメタ情報を設定することができますが、高精度な緯度経度情報は必要ないので、型を以下のように指定しています。 latitude decimal(7,4) longitude decimal(7,4) decimal(7,4)という指定は、10進数で7桁のデータで、小数点以下は4桁まで格納するというものです。 あるオブジェクトの緯度経度を保存し、表示するだけならこれだけで十分ですが、位置情報を中心に扱うサービスになると、格納したデータを緯度
このテーブルのように浮動小数点を扱える型でも緯度経度は管理でき、Geometry型を使って位置情報を管理する必要はない。 しかし、システムの要件によってはGeometry型の方がよい場合もあるため、使用用途を紹介しようかと思います。 メリット・デメリット ※使ってみての感想 メリット 地点間の距離を求めることができる これに尽きると思います。ただ距離を求めるだけではなく、「求めた距離内の〇〇を抽出」「自分の位置から最短の距離にある〇〇を探す」など応用が可能である。 デメリット 他の型と違って特殊な使い方になる 他の型のように単純なINSERTやSELECTは使用できないので、MySQL上で実行できる形式にSQLを作成する必要がある。 MySQL上で直接実行する場合は問題ないかもしれないが実際に運用するシステムでそんなことをするはずはない。 何らかの言語やフレームワークを使用して画面等を生成
はじめに MySQL8.0では位置情報に関する機能が充実した...という情報を見かけたので、試しにGeometry型というデータ型を使って、位置情報を格納するテーブルを作ってみることにしました。 ※GIS関連は全く詳しくないので、誤りがありましたらご指摘頂けると幸いです。 使用した環境 OS CentOS7.7(1908) RDBMS MySQL8.0.19 テーブルの作成 駅の位置を表すstationというテーブルをnkojimaデータベース内に作成しました。 位置情報はlocationというGeometry型のカラムに持たせています。 位置情報を表すデータ型はGeometry以外にも幾つか用意されており、以下に示したものは「OpenGIS クラスに対応するデータ型」となっています。 POINT:地点を表す。 LINESTRING:地点間を直線で結んだ線分を表す。 POLYGON:多辺の
オープンソースを推進する非営利団体のLinux Foundationは、AWS、マイクロソフト、Meta、TomTomの4社がオープンな地図データを実現する「Overture Maps Foudation」を同団体の傘下に設立したと発表しました。 “We are excited to facilitate this open collaboration among leading technology companies to develop high quality, open map data that will enable untold innovations for the benefit of people, companies, and communities." - Jim Zemlin About Overture Maps: https://t.co/TpPey0gTS
さまざまなデータを地理空間情報として重畳する上で有用なPythonのライブラリであるGeoPandas。前編ではGeoPandasを用いたデータの描画方法など基礎的な扱い方を紹介し、後編では衛星データと組み合わせて解析結果を可視化する方法を紹介します。 Pythonで地理空間情報を行う場合、GeoPandasの使い方を覚えておくととても便利です。 例えば、都道府県別の気象データを持っていたとします。そのテーブルデータ(csv)には地理情報と言えば、都道府県の名称くらいしかありません。このような場合、これを日本地図の上に重畳して可視化することはできません。 しかし、このデータに地図上に描画できる情報を与えることさえできれば、好きなデータを地図の上に重ねることができます。このようなことをしたい場合に、GeoPandasの使い方を知っておけば助けになります。 今回は、簡単な例を通じて、GeoPa
こんにちは。歴10年のアプリエンジニア(Best of AppStore🏅受賞歴あり)です。 neeboor🗯という位置情報を使った新しいSNSアプリを作りました。 toC向け&コンテンツ系&モバイルアプリというサービスの特性上、最初からある程度高い完成度のサービスを提供しないとユーザーの手に取ってもらえないなと思い、UI/UX中心にかなりこだわって開発した結果、開発に2年以上かかってしまいました。 今回はサービスの紹介をしつつ、開発で苦労した点や工数をかけた点について記事にしたいと思います。 サービスの紹介 neeboor🗯は、「あなたの生活圏をもっとおもしろくするSNS (Make your living area hackable)」というコンセプトの位置情報系SNSアプリです。従来のローカル系サービス(=地域情報サイト、半径◯メートルでお店や友達探す系、出会い系、ナビ系、トラ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く