Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GeoDjango ORMと地理空間データの世界
Search
abe ryohei
October 16, 2022
Programming
0
2.8k
GeoDjango ORMと地理空間データの世界
PyCon JP 2022 発表資料
https://2022.pycon.jp/timetable?id=J9XNYA
abe ryohei
October 16, 2022
Tweet
Share
Other Decks in Programming
See All in Programming
The Shape of a Service Object
inem
0
240
全部見せます! クラシルリワードのSwiftTesting移行プロジェクト
uetyo
0
160
仮想ファイルシステムを導入して開発環境のストレージ課題を解消する
segadevtech
2
450
Hono・Prisma・AWSでGeoなAPI開発
nokonoko1203
5
640
rbs-inlineを導入してYARDからRBSに移行する
euglena1215
1
230
Modular Monolith Go Server with GraphQL Federation + gRPC
110y
1
570
dotfiles について話したい #湘なんか
stefafafan
2
290
サーバーレスで負荷試験!Step Functions + Lambdaを使ったk6の分散実行
shuntakahashi
0
150
GraphQL あるいは React における自律的なデータ取得について
quramy
9
2.4k
今インフラ技術をイチから学び直すなら
yuhta28
1
120
プログラマのための音楽入門
cheebow
5
560
エラーレスポンス設計から考える、0→1開発におけるGraphQLへの向き合い方
bicstone
5
1.3k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
518
39k
5 minutes of I Can Smell Your CMS
philhawksworth
201
19k
The Art of Programming - Codeland 2020
erikaheidi
48
13k
Fontdeck: Realign not Redesign
paulrobertlloyd
80
5.1k
KATA
mclloyd
27
13k
The Cult of Friendly URLs
andyhume
76
5.9k
Agile that works and the tools we love
rasmusluckow
327
20k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
38
9.1k
Principles of Awesome APIs and How to Build Them.
keavy
125
16k
It's Worth the Effort
3n
182
27k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
25
1.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
22
1.7k
Transcript
©OpenStreetMap contributors 2022.10.14 - PyCon2022 GeoDjango ORMと地理空間データの世界
©Project PLATEAU / MLIT Japan 阿部 涼平 自己紹介 ABE Ryohei
@selfsryo Backend engineer バックエンド担当 2021年2月からMIERUNE 北海道出身 https://selfs-ryo.com/
© 地理院地図 全国最新写真(シームレス) MIERUNEはこんな会社です MIERUNEは位置情報に関する 豊富な技術や実績を持つ ソリューションカンパニーです み え る ね
© 地理院地図 全国最新写真(シームレス) 位置情報は身近なところで使われています インフラ 防災 交通 ナビ ゲーム 環境
マーケティ ング 位置情報 データ (GIS)
©Project PLATEAU / MLIT Japan 事業紹介 •商用ソフトより使いやすく 多機能 •プラグイン開発や講習会 技術コンサルを提供中
QGIS 世界的なOSS-GISソフトウェア
©Project PLATEAU / MLIT Japan 事業紹介 •自由で美しいウェブ地図 •低廉なコストで導入可能 •カスタマイズや開発も可能 MapTiler
Google MapsやMapboxから 乗り換えませんか
©Project PLATEAU / MLIT Japan 事業紹介 •組織内に散在している データを一括で共有 •最新データがすぐわかる •ソフト無しでも閲覧可能
MIERUNE BASE GISデータ共有サービス
© 地理院地図 全国最新写真(シームレス) Python MIERUNEのソリューション QGIS DEM 点群 3D MapTiler
PLATEAU オープンソース 位置情報 可視化 標高断面図 住所検索 ルート検索 気象データ GTFS LiDAR FOSS4G OSGeo OpenStreetMap MapLible deck.gl Cesium Mapbox OpenLayers Turf.js Geoserver OpenMapTiles GeoDjango Amazon Location Service AWS Leaflet
©OpenStreetMap contributors 概要 • この題材を選んだ理由やきっかけ ◦ GISへのニーズの高まりを受けて、PyConで以下を紹介 ▪ GISデータをDjangoで扱うことができること ▪
DjangoのORMを用いてGISデータの演算ができること • このセッションで話すこと ◦ GeoDjangoについて ◦ GeoDjangoが持つORMについて
©OpenStreetMap contributors 01 GISとDjangoについて 02 PostGISと空間関数 03 GeoDjangoのセットアップ 04 ORM実行 / 表示 05 REST API紹介
06 まとめ 目次
©OpenStreetMap contributors 01 GISとDjangoについて
©Project PLATEAU / MLIT Japan • 言わずと知れた Python製 Webフレームワーク •
色々な機能が備わっている GISとDjangoについて Djangoとは
©Project PLATEAU / MLIT Japan GISとDjangoについて Djangoとは • 言わずと知れた Python製
Webフレームワーク • 色々な機能が備わっている GISデータを扱える・・?
©Project PLATEAU / MLIT Japan GISとDjangoについて GeoDjangoとは • Djangoが持つ GIS
Webフレームワーク用ライブラリ • サードパーティではなく公式 https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/
©Project PLATEAU / MLIT Japan GISとDjangoについて • 公式(日本語ページ)の紹介文によると・・・ GeoDjango は世界規模の地理情報
Web フレームワークを目指していま す。 GeoDjango の目的は、地理情報システム (GIS) のWeb アプリケー ションの開発をより簡単にし、空間データ (spatially enabled data) を活用 することにあります。 GeoDjangoとは 出典 https://docs.djangoproject.com/ja/4.1/#geographic-framework
©Project PLATEAU / MLIT Japan GISとDjangoについて • 直訳すると地理情報システム (Geographic Information
System) • 位置情報データを扱う技術 GISとは
©Project PLATEAU / MLIT Japan GISとDjangoについて • ベクタデータ ◦ ポイント(点)
◦ ライン(線) ◦ ポリゴン(面) • ラスタデータ(画像データ) GISで扱うデータ ポリゴン ポイント ライン ラスタ
©Project PLATEAU / MLIT Japan GISとDjangoについて • ベクタデータ ◦ ポイント(点)
◦ ライン(線) ◦ ポリゴン(面) • ラスタデータ(画像データ) GISで扱うデータ ポリゴン ポイント ライン ラスタ
©Project PLATEAU / MLIT Japan GISとDjangoについて GeoDjangoのフィールド • モデルに以下のようなフィールドが追加される(ジオメトリフィールド) ◦
PointField ◦ LineStringField ◦ PolygonField etc. ※ジオメトリフィールドは、型(ポイント?ポリゴン?etc.)と位置情報と座標系を持つ
©Project PLATEAU / MLIT Japan GISとDjangoについて GeoDjangoのDB https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/install/#spatial-database • 対応しているDB
◦ PostgreSQL(PostGIS) ◦ MySQL ◦ Oracle ◦ SQLite(SpatiaLite) GeoDjangoの公式で推奨
©OpenStreetMap contributors 02 PostGISと空間関数
©Project PLATEAU / MLIT Japan PostGISとは • PostgreSQLの拡張モジュール ◦ GISデータを扱うためのモジュール
◦ オープンソース ◦ ジオメトリ型が追加 ◦ 空間演算用の関数が追加(空間関数) PostGISと空間関数 http://www.refractions.net/products/postgis/ http://www.postgis.net/
©Project PLATEAU / MLIT Japan PostGISの空間関数 • PostGISで地理空間データの演算(空間演算)を行う関数 • 関数名は ST_〇〇 (〇〇は動詞などが入る)
◦ ST_Contains ◦ ST_Intersects ◦ ST_Union PostGISと空間関数
©Project PLATEAU / MLIT Japan 空間関数の例 • ST_Contains(geomA, geomB) ◦
BがAに含まれる場合True PostGISと空間関数 A B True B A False https://aginfo.cgk.affrc.go.jp/docs/pgisman/3.3.0/postgis-ja.html#ST_Contains
©Project PLATEAU / MLIT Japan 空間関数の例 PostGISと空間関数 A B True
B A False • ST_Intersects(geomA, geomB) ◦ AとBに共通部分が存在する場合True https://aginfo.cgk.affrc.go.jp/docs/pgisman/3.3.0/postgis-ja.html#ST_Intersects
©Project PLATEAU / MLIT Japan • ST_Union(geomA, geomB) ◦ AとBを結合
空間関数の例 PostGISと空間関数 A B https://aginfo.cgk.affrc.go.jp/docs/pgisman/3.3.0/postgis-ja.html#ST_Union
©Project PLATEAU / MLIT Japan • 空間演算用ORM ◦ lookup ▪
contains, intersects, etc. ◦ DB関数 ▪ Centroid, Intersection, etc. PostGISと空間関数 GeoDjangoで空間関数 https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/ https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/functions/
©Project PLATEAU / MLIT Japan • オブジェクト関係マッピング(Object-Relational Mapping) ◦ オブジェクト(プログラミング言語)とRDBをマッピング
◦ SQLを直接叩くことなく、オブジェクトのメソッドでDB操作 ◦ SQLインジェクション対策 ORMとは SQL Django ORM PostGISと空間関数
©Project PLATEAU / MLIT Japan • GeoDjangoは空間演算用のORMを持っている ◦ SQLを意識せずに空間関数を実行できる ◦
地理空間用のDBで実行可能 GeoDjangoとORM • 実データを用いてORMを実行し、GeoDjangoの持つORMを紹介 PostGISと空間関数
©OpenStreetMap contributors 03 GeoDjangoのセットアップ
©Project PLATEAU / MLIT Japan • Dockerを利用 ◦ Django ◦
PostgreSQL + PostGIS ◦ その他必要なGISライブラリ GeoDjangoのセットアップ 環境構築 フロントエンド (Django Template) • リポジトリ https://github.com/selfsryo/GeoDjangoORMDemo API
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ データの可視化 • 地図ライブラリを使用 ◦
leaflet ▪ JSライブラリ ▪ ブラウザで地図表示 ▪ オープンソース • leafletでDjangoTemplateから表示 https://leafletjs.com/
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ 設定ファイル • INSTALLED_APPSにdjango.contrib.gisを追加
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ • DATABASEのENGINEをdjango.contrib.gis.db.backends.postgisに変更 設定ファイル
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ 出典:「位置参照情報ダウンロードサービス」(国土交通省)(https://nlftp.mlit.go.jp/ksj/) • 国土数値情報 「国土数値情報」は、国土形成計画、国土利用計画の策定等の国土政策の推進に
資するために、地形、土地利用、公共施設などの国土に関する基礎的な情報をGIS データとして整備したものです。そのうち公開に差し支えないものについて、「地理空 間情報活用推進基本法」等を踏まえて無償で提供しています。 使用データ(国土数値情報)
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ 使用データ(国土数値情報) 出典:「位置参照情報ダウンロードサービス 行政区域データ」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v3_1.html) 「位置参照情報ダウンロードサービス
空港データ」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-C28-v3_0.html) • 行政区域データ ◦ 北海道 ◦ ポリゴンデータ • 空港データ ◦ 全国分 ◦ ポリゴンデータ
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ データの取り込み • Djangoのデータ取り込み ◦
データの属性を確認 ◦ models.pyを定義 ▪ 可能ならばinspectdb等 ◦ データ(fixture)を用意 ◦ 取り込みコマンド実行 ▪ loaddata • GeoDjangoのデータ取り込み ◦ データ(GISデータ)を用意 ◦ データの属性を確認 ◦ models.pyを定義 ◦ 取り込み実行 ※順番は前後
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ データの取り込み • Djangoのデータ取り込み ◦
データ構造を確認 ◦ models.pyを定義 ▪ 可能ならばinspectdb等 ◦ データ(fixture)を用意 ◦ 取り込みコマンド実行 ▪ loaddata • GeoDjangoのデータ取り込み ◦ データ(GISデータ)を用意 ◦ データの属性を確認 ◦ models.pyを定義 ◦ 取り込み実行 ※順番は前後
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ データの取り込み • Djangoのデータ取り込み ◦
データ構造を確認 ◦ models.pyを定義 ▪ 可能ならばinspectdb等 ◦ データ(fixture)を用意 ◦ 取り込みコマンド実行 ▪ loaddata • GeoDjangoのデータ取り込み ◦ データ(GISデータ)を用意 ◦ データの属性を確認 ◦ models.pyを定義 ◦ 取り込み実行 ※順番は前後
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ データの属性を確認 • 国土数値情報のページを確認 ◦
属性情報が記載 ◦ 名称、説明、型 出典:「位置参照情報ダウンロードサービス 行政区域データ」(国土交通省)(https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v3_1.html)
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ データの属性を確認 • ogrinspect ◦
管理コマンド ◦ 以下を出力 ▪ データの構造 ▪ 実データとのマッピング https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/commands/#django-admin-ogrinspect
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ データの取り込み • Djangoのデータ取り込み ◦
データ構造を確認 ◦ models.pyを定義 ▪ 可能ならばinspectdb等 ◦ データ(fixture)を用意 ◦ 取り込みコマンド実行 ▪ loaddata • GeoDjangoのデータ取り込み ◦ データ(GISデータ)を用意 ◦ データの属性を確認 ◦ models.pyを定義 ◦ 取り込み実行 ※順番は前後
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ データの取り込み • LayerMapping ◦
ベクタデータをマップ ◦ 座標系の変換も可能(省略) ◦ saveメソッドで取り込み https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/layermapping/
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ 行政区域モデル • モデル名 ◦
AdminiBoundary • 今回は政令都市名または 市町村名を持つデータのみ取得
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ 空港データモデル https://leafletjs.com/ • モデル名
◦ Airport • 今回は必要なフィールドは 名称(c28_005)と ジオメトリ だけ
©Project PLATEAU / MLIT Japan • GeoJSON形式でのシリアライザがデフォルトで用意されている ◦ django.core.serializers.serialize ◦
第一引数に”geojson”と入力 ※GeoJSONとは ◦ JSON形式 ◦ type, geometory, propertiesを持つ ◦ APIに利用 GeoDjangoのセットアップ シリアライザ https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/serializers/ https://geojson.org/
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ レスポンス • 新千歳空港のポリゴンを取得
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ レスポンス • 新千歳空港のポリゴンを取得 ◦
GeoJSON形式でレスポンス
©Project PLATEAU / MLIT Japan GeoDjangoのセットアップ レスポンス • フロントエンドから確認
©OpenStreetMap contributors 04 ORM実行 / 表示
©Project PLATEAU / MLIT Japan • 空間演算用ORM ◦ lookup ▪
contains, intersects, etc. ◦ DB関数 ▪ Centroid, Intersection, etc. PostGISと空間関数 GeoDjangoで空間関数(再掲) https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/ https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/functions/
©Project PLATEAU / MLIT Japan intersects • フロントエンドから確認 ◦ 苫小牧市
◦ 千歳市 ORM実行 / 表示
©Project PLATEAU / MLIT Japan • 空間演算用ORM ◦ lookup ▪
contains, intersects, etc. ◦ DB関数 ▪ Centroid, Intersection, etc. PostGISと空間関数 GeoDjangoで空間関数(再掲) https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/ https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/functions/
©Project PLATEAU / MLIT Japan • DjangoのQuerySetを様々な条件で取得できる • 一般的に以下のように書く ◦
<QuerySet>.objects.filter(フィールド名__lookup=値) • 例:contains(名称に”田”の文字を含む空港データを取得) lookupとは https://docs.djangoproject.com/ja/4.1/ref/models/querysets/#field-lookups ORM実行 / 表示
©Project PLATEAU / MLIT Japan • 共通部分が存在する場合TRUE • 新千歳空港と共通部分が存在する行政界ポリゴンのみ取得 intersects
https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/#intersects ORM実行 / 表示
©Project PLATEAU / MLIT Japan • 内部のみに存在する場合TRUE • 女満別空港を内部に含む行政界ポリゴンのみ取得 contains
https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/#contains ORM実行 / 表示 ※新千歳空港は複数のポリゴンにまたがるためFALSEとなる
©Project PLATEAU / MLIT Japan • フロントエンドから確認 ◦ 大空町 contains
ORM実行 / 表示
©Project PLATEAU / MLIT Japan • containsと引数が逆になる • 北海道のみに含まれる空港ポリゴンのみ取得 within
https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/#within ORM実行 / 表示
©Project PLATEAU / MLIT Japan • フロントエンドから確認 within ORM実行 /
表示
©Project PLATEAU / MLIT Japan • 共通部分が存在し、かつ一方がもう一方に含まれていない場合TRUE • 旭川空港と共通部分が存在し、かつ内部に含んでいない行政界ポリゴンのみ取得 overlaps
https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/#overlaps ORM実行 / 表示
©Project PLATEAU / MLIT Japan • フロントエンドから確認 ◦ 旭川市 ◦
東神楽町 overlaps ORM実行 / 表示
©Project PLATEAU / MLIT Japan • 共通部分が存在しない場合TRUE • 稚内空港と共通部分が存在しない行政界ポリゴンのみ取得 disjoint
https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/#disjoint ORM実行 / 表示
©Project PLATEAU / MLIT Japan • フロントエンドから確認 disjoint ORM実行 /
表示
©Project PLATEAU / MLIT Japan • 左または右に存在する場合のみTRUE • 帯広空港の左に存在する行政界ポリゴンのみ取得 https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/#right
https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/#left ORM実行 / 表示 left / right
©Project PLATEAU / MLIT Japan • left left / right
• right ORM実行 / 表示
©Project PLATEAU / MLIT Japan • 上または下に存在、またはoverlapsしている場合のみTRUE • 釧路空港の上に存在、またはoverlapsする行政界ポリゴンのみ取得 https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/#overlaps-above
https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/#overlaps-below ORM実行 / 表示 overlaps_above / overlaps_below
©Project PLATEAU / MLIT Japan overlaps_above / overlaps_below • overlaps_above
• overlaps_below ORM実行 / 表示
©Project PLATEAU / MLIT Japan • 指定した距離より大きい、または小さい場所に存在する場合のみTRUE • distance_gte、distance_lteでそれぞれ以上、以下になる(=も含む) •
中標津空港から100kmより大きい距離にある行政界ポリゴンのみ取得 https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/#distance-gt https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/#distance-lt ORM実行 / 表示 distance_gt / distance_lt
©Project PLATEAU / MLIT Japan • distance_gt • distance_lt ORM実行
/ 表示 distance_gt / distance_lt
©Project PLATEAU / MLIT Japan • 空間演算用ORM ◦ lookup ▪
contains, intersects, etc. ◦ DB関数 ▪ Centroid, Intersection, etc. PostGISと空間関数 GeoDjangoで空間関数(再掲) https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/geoquerysets/ https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/functions/
©Project PLATEAU / MLIT Japan • 集計関数(annotate、aggregate)、フィルタの中で利用 • GeoDjangoでは以下が追加 データベース関数とは
https://docs.djangoproject.com/en/4.1/ref/contrib/gis/functions/ ORM実行 / 表示
©Project PLATEAU / MLIT Japan • ジオメトリフィールドのGeoJSON表現を取得 • 完全なGeoJSONではなく、ジオメトリ部分のみ •
函館空港のAsGeoJSON ORM実行 / 表示 AsGeoJSON https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/functions/#asgeojson
©Project PLATEAU / MLIT Japan • 函館空港のジオメトリからGeoJSONを作成 ORM実行 / 表示
AsGeoJSON https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/functions/#asgeojson
©Project PLATEAU / MLIT Japan ORM実行 / 表示 AsGeoJSON •
フロントエンドから確認
©Project PLATEAU / MLIT Japan • 中心点のポイントのジオメトリを取得 • 紋別空港の中心点のポイントを取得 https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/functions/#centroid
ORM実行 / 表示 Centroid
©Project PLATEAU / MLIT Japan ORM実行 / 表示 • フロントエンドから確認
Centroid
©Project PLATEAU / MLIT Japan • 2つのジオメトリの距離を取得 • 新千歳空港と旭川空港の距離を取得 https://docs.djangoproject.com/ja/4.1/ref/contrib/gis/functions/#distance
ORM実行 / 表示 Distance
©OpenStreetMap contributors 05 REST API紹介
©Project PLATEAU / MLIT Japan • Django REST framework ◦
DjangoでREST API実行 ◦ サードパーティ製 ◦ ブラウザ操作可能 REST API紹介 DjangoでのREST API https://www.django-rest-framework.org/
©Project PLATEAU / MLIT Japan • django-rest-framework-gis ◦ DRFのGIS拡張ライブラリ ◦
GIS処理の機能が追加 GeoDjangoでのREST API https://github.com/openwisp/django-rest-framework-gis REST API紹介
©Project PLATEAU / MLIT Japan 機能 • URLで様々なフィルタリングが可能(distance、bbox等) • ページネーションがGeoJSON仕様
• レスポンスにbboxを含められる etc. REST API紹介
©Project PLATEAU / MLIT Japan セットアップ • INSTALLED_APPSに以下追加 ◦ rest_framework
◦ rest_framework_gis ◦ django_filters REST API紹介
©Project PLATEAU / MLIT Japan シリアライザ • geo_fieldにジオメトリのフィールド名を指定 • auto_bbox=Trueとすることでレスポンスにbboxが追加
REST API紹介
©Project PLATEAU / MLIT Japan ビュー • distanceとbboxでのフィルタを追加 REST API紹介
©Project PLATEAU / MLIT Japan • 対象のpointからの距離でフィルタ ◦ URLに以下を追加してみる (新千歳空港のpoint)
?dist=1&point=141.683497,42.784556 • 新千歳空港と札幌飛行場が返ってくる • bboxが含まれている レスポンス REST API紹介
©Project PLATEAU / MLIT Japan • django-debug-toolbarで実行されているSQLを確認 ◦ ST_DWithinが実行されている レスポンス
REST API紹介
©OpenStreetMap contributors おまけ デモアプリケーション紹介
©Project PLATEAU / MLIT Japan • フロントエンドとの疎通アプリケーション https://github.com/selfsryo/GeoDjangoORMDemo アプリケーション紹介 デモアプリ
©OpenStreetMap contributors 06 まとめ
© 地理院地図 全国最新写真(シームレス) 以下を紹介 •GISデータについて •GeoDjangoの環境構築、データ取り込み •GeoDjangoのORMで空間演算 •GeoDjangoのREST API •簡易デモアプリケーション
まとめ
© 地理院地図 全国最新写真(シームレス) 仲間を募集中 We are hiring! MIERUNE 検索 未来に挑戦する仲間を
募集しています