๊ฐ๋จํ ์:
>>> from shapely.geometry import MultiPoint, Point
>>> points = MultiPoint([Point(0, 0), Point(1, 0), Point(1, 1), Point(0, 1)])
>>> points.wkt
'MULTIPOINT (0 0, 1 0, 1 1, 0 1)'
>>> bad_point = Point(1, 0)
>>> points.difference(bad_point).wkt
'MULTIPOINT (0 0, 0 1, 1 1)'
๋ณด์๋ค์ํผ difference
MultiPoint
์์ Point
๋ฅผ ์ ๊ฑฐํ๋ฉด ์ด๊ธฐ ์์๊ฐ ๊นจ์ง๋๋ค. ์์ ์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
'MULTIPOINT (0 0, 1 1, 0 1)'
์ด๊ฒ์ ๋ฒ๊ทธ์ ๋๊น ์๋๋ฉด ์๋๋ ๊ฒ์ ๋๊น? ๋ฌธ์๋ ์ด ๋์์ ๋ํด ์๋ฌด ๋ง๋ ํ์ง ์์ต๋๋ค.
Shapely ๋ฒ์ : 1.6.4.post1, conda์์ ์ค์น๋จ.
์ด๊ฒ์ Shapely๊ฐ ๋ํผ(wrapper)์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ GEOS์์ ์์๋ ๋์์ ๋๋ค.
๋๋ ์ด๊ฒ์ด ๊ทธ ์์ฒด ๋ก ๋ฒ๊ทธ๋ผ๊ณ ์๊ฐํ์ง ์๋๋ค. ์ฐจ์ด๋ฅผ ๊ณ์ฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ํ๋ ๋ฐฉ์์ด ์๋๋๋ค. ๋ ์ถ๋ ฅ์ ๊ธฐํํ์ ์ผ๋ก ๋์ผํฉ๋๋ค. ๋๋ ๋จ์ํ ํผ์ฒ ๋ชจ๋ธ์ด ์ปฌ๋ ์ ์ ๋ถํ ์์์ ์๋ฏธ๋ฅผ ๋์ง ์๋๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ์ ์ค๋ช ํ๋ ๊ฒ์ด ๋ฌธ์์ ์ถ๊ฐ๋ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ์ฐจ์ด์ ๋ฐฉ๋ฒ์ ํน์ ํ ๊ฒ์ด ์๋๊ธฐ ๋๋ฌธ์ ์ด๋์ ์ถ๊ฐํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋จ์ ๊ธฐ๋ฅ ์ก์ธ์ค ๋ OGC 06-103r4, MultiPoint์ ๊ฒฝ์ฐ ยง6.1.5๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
ํฌ์ธํธ๋ ์๋ฏธ์ ์ค์ํ ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐ๋๊ฑฐ๋ ์ ๋ ฌ๋์ง ์์ต๋๋ค(GeometryCollection์์ ๋ ผ์ ์ฐธ์กฐ).
๋ฐ๋ผ์ ์ด๋ ๋์์ด ์๋๋ ๊ฒ์์ ๋ํ๋ ๋๋ค. JTS ์์๋ ๋์ผํ ๋์์ ๋๋ค.
์์๋ฅผ ์ ์งํ๋ ์ ์ฌํ ๊ฐ์ฒด๋ [Multi]LineString
์ด์ง๋ง ์์ ๋ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.
์ ๊ฒ ์ด. _Collections_ ์น์ ์ ๋์ ์ฃผ๋ฌธ ๋ณด์กด์ ์์กดํด์๋ ์ ๋๋ค๋ ๊ฒฝ๊ณ ๋ฌธ๊ตฌ๋ฅผ ์ถ๊ฐํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋จ์ ๊ธฐ๋ฅ ์ก์ธ์ค ๋ OGC 06-103r4, MultiPoint์ ๊ฒฝ์ฐ ยง6.1.5๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋ฐ๋ผ์ ์ด๋ ๋์์ด ์๋๋ ๊ฒ์์ ๋ํ๋ ๋๋ค. JTS ์์๋ ๋์ผํ ๋์์ ๋๋ค.
์์๋ฅผ ์ ์งํ๋ ์ ์ฌํ ๊ฐ์ฒด๋
[Multi]LineString
์ด์ง๋ง ์์ ๋ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค.