owned this note changed 6 years ago
Linked with GitHub

MySQL 8.0 的地理資訊系統(GIS)支援新世代行動應用 - 杜修文

歡迎來到 MOPCON 2019 共筆

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

共筆入口:https://hackmd.io/@mopcon/2019
手機版請點選上方 按鈕展開議程列表。

會場 wifi-SSID: mopcon-2019
會場 wifi-PASSWD: mopcon-2019

行動運算

  • 定位,系統了解使用者位置
  • 環境感知,依地點位置推送服務/設施
  • 適應環境/設備的彈性
    • GPS 抓出的位置,Po 到裝置上

對行動開發者別具意義的 MySQL 功能:

  • MySQL Document Store
  • Default to utf8mb4
  • JSON enhancements
  • CTEs
  • Window Function

應用情境

  • 售票系統(GIS 需求)
    • 了解廁所、位子相對應位置/關係
      • 例:最近的廁所在哪?距離多少?
    • 早期作法:一缸子塞進去
    • 現在作法:JSON datatype
    • 可以在 GIS 上面定義相關的 Datatype (ex: POINT)
      • 一個 JSON Doc 可能很大,但是可以在前面定義一個outset?

MySQL GIS

  • 歷程
    • 4.1開始支援 GIS
    • 5.7嘗試 boost.geometry
    • 8.2 支援 5152 個 SRS
  • 地球的表面,緯度/經度
  • SQL/MM part 3 Partial
  • SRS (Spatial Reference System)
  • SRID aware Spatial Datatypes

GIS:Geography

  • geometry 可以作 Spatail Index
    • Ex: 高雄會議中心是在台北還是在高雄?
  • Spatial indexes

SRS

用哪一種座標定的?

  • SRID 0 (平面)
  • Projected SRS (平面座標)
  • Geograpgic SRS (球型座標)

SRID

  • 各SRS有唯一的 SRID
  • 也可以自己 Create,通常是先有資料,才會自己定義自己的 SRID

範例

CREATE TABLE cities(
    id INTEGER AUTO INCREMENT PRIMARY KEY,
    name VARCHAR(20) NOT NULL,
    LOC point srid 4326 NOT NULL
)

函式

Comparison

ST_Contains,ST_crosses,ST_disjoint,ST_Intersects
MBR Contains,MBRCoveredBy,MBRDisjoint MBREquals,MBRIntersects...

可以算距離 算弧面距離

Spatial 索引的範例-查在一個範圍內的城市有哪些?

  • 先用 Polygon 畫一個多邊形,再指定位置,來看框框內有無包含這這個 City

可支援 Search JSON data

  • 有很多 JSON function 可以進行想要的SQL查詢

預備

  • OSM 取資料

好工具

  • QGIS: 畫的圖比較漂亮
tags: MOPCON 2019
Select a repo