Как вы перебираете точки в многоугольнике?
Я создал полигон, используя sympy.geometry
Пакет, как показано ниже:
poly1 = Polygon((39.,4.), (32.,30.), (40.,10.), (42.,10.), (43.,14.))
Точки многоугольника являются координатами lon/lat. Теперь я хочу проецировать многоугольник на эллипсоид (Землю) и вычислить площадь многоугольника.
Я написал следующий код:
from pyproj import Proj
#specify projection for the Earth using reference ellipsoid"
wgs84=pyproj.Proj("+init=EPSG:4326")
poly1_transformed=[]
for point in poly1:
new_point = wgs84(point)
poly1_transformed.append(new_point)
Однако я не могу перебрать точки в многоугольнике. Есть ли способ сделать это или альтернативный метод, чтобы я мог спроектировать весь полигон (и в конечном итоге вычислить площадь)?
Это моя ошибка:
TypeError
Traceback (most recent call last)
<ipython-input-65-0c7501bb5894> in <module>()
5 wgs84=pyproj.Proj("+init=EPSG:4326")
6
----> 7 for point in poly1:
8 new_point = wgs84(point)
9 print (point, new_point)
TypeError: 'Polygon' object is not iterable
1 ответ
Вы можете получить очки с помощью poly1.args
вместо этого, так как Polygon
объекты не повторяемы:
for point in poly1.args:
new_point = wgs84(point)
poly1_transformed.append(new_point)