좌표계
[...]
Shapely는 좌표계 변환을 지원하지 않습니다. 둘 이상의 피쳐에 대한 모든 작업은 피쳐가 동일한 데카르트 평면에 존재한다고 가정합니다.
출처 : http://toblerity.org/shapely/manual.html#coordinate-systems
인 shapely
SRS를 참조 완전히 무관, 그것은 길이 속성이 선 스트링의 좌표, 즉도 같은 단위로 표현되는 것을 매우 분명하다. 사실로:
>>> from shapely.geometry import LineString
>>> line = LineString([(0, 0), (1, 1)])
>>> line.length
1.4142135623730951
대신 길이를 미터 단위로 표현하려면 pyproj를 사용하여 형상을 WGS84에서 투영 된 SRS로 변환해야합니다 (또는 측지 거리 계산을 수행하는 것이 좋습니다. 유전자의 답 참조). 구체적으로, 버전 1.2.18 ( shapely.__version__
) 부터 와 함께 사용할 수 shapely
있는 지오메트리 변환 함수 ( http://toblerity.org/shapely/shapely.html#module-shapely.ops )를 지원합니다 pyproj
. 다음은 간단한 예입니다.
from shapely.geometry import LineString
from shapely.ops import transform
from functools import partial
import pyproj
line1 = LineString([(15.799406, 40.636069), (15.810173,40.640246)])
print(str(line1.length) + " degrees")
# 0.0115488362184 degrees
# Geometry transform function based on pyproj.transform
project = partial(
pyproj.transform,
pyproj.Proj('EPSG:4326'),
pyproj.Proj('EPSG:32633'))
line2 = transform(project, line1)
print(str(line2.length) + " meters")
# 1021.77585965 meters