BigQuery GIS
地理オブジェクト作成
ST_GEOGPOINT(longitude, latitude)
ST_GEOGFROMTEXT(wkt_string)
判定関数
ST_CONTAINS
ST_CONTAINS(geography_1, geography_2)
geography_2
は geography_1
の内部にある(外にはみ出していない)なら TRUE
ST_WITHIN
ST_WITHIN(geography_1, geography_2)
geography_1
は geography_2
の内部にある(外にはみ出していない)なら TRUE
ST_CONTAINS
とは geography_1
と geography_2
の順序が逆になっている
最近傍
SELECT
a.house_id,
# Order the neighboring restaurants accoring to distance and extract a restaurant having shortest distance
ARRAY_AGG(b.restaurant_id ORDER BY ST_Distance(a.point, b.point) LIMIT 1)[ORDINAL(1)] as neighbor_restaurant_id_id
FROM
houses a
JOIN
restaurants b
ON
# Extract only restaurant around each house
ST_DWithin(a.point, b.point, 10000) -- search radius in meter
GROUP BY a.house_id
invalidな図形を修正する
SELECT ST_GEOGFROMTEXT (string_field_1, make_valid => TRUE)
FROM `ocean_shapefiles_all_purpose.IOTC_shape_feb2021`