国交省のGISホームページで公開される 用途地域データ(※1)には geometry(MultiPolygon)型のカラムがありますが、 扱いづらい為、以下のsqlで緯度経度へ変換しようとしたところ、エラー。
※1 https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-A29-v2_1.html
postgis=> update gis_youto_chiiki postgis-> set lng=ST_X(ST_Centroid(geom)),lat=ST_Y(ST_Centroid(geom)); ERROR: lwgeom_centroid: GEOS Error: IllegalArgumentException: Ring has fewer than 4 points, so orientation cannot be determined
どうやら、geometry(MultiPolygon)型のデータが不適切?らしく、 また、ST_makeValid()で補正できるようですので、 以下のsqlで解消。
http://postgres.cn/docs/postgis-2.3/ST_MakeValid.html
postgis=> update gis_youto_chiiki postgis-> set lng=ST_X(ST_Centroid(ST_makeValid(geom))), postgis-> lat=ST_Y(ST_Centroid(ST_makeValid(geom)));