SQLで地物に重なるデータを操作

SQLで地物に重なるデータを操作します

# latlonを抽出

-- ST_INTERSECTS():地物の重なりで抽出
-- ST_GEOGPOINT():pointデータを作成
-- ST_GEOGFROMTEX():テキストをgeometry型に変換
SELECT 
  t1.*, 
  t2.*
FROM 
  move as t1
LEFT JOIN
  zone as t2
ON 
  ST_INTERSECTS(
    ST_GEOGPOINT(
      CAST(t1.lon as FLOAT64), 
      CAST(t1.lat as FLOAT64)
    ),
    ST_GEOGFROMTEXT(t2.geometry, make_valid => TRUE)

# まとめ

SQLで地物に重なるデータを操作しました。

geometry(ポイント型)で座標抽出

geometry(ポイント型)で座標抽出

geometry(ポイント型)で座標抽出します

半径2kmのジオフェンスで地物抽出

半径2kmのジオフェンスで地物抽出

半径2kmのジオフェンスで地物抽出します