Koordinat sistemleri
[...]
Düzgün koordinat sistemi dönüşümlerini desteklemez. İki veya daha fazla özellikteki tüm işlemler, özelliklerin aynı Kartezyen düzlemde var olduğunu varsayar.
Kaynak: http://toblerity.org/shapely/manual.html#coordinate-systems
SRS'ye göre shapely
tamamen agnostik olduğundan, uzunluk özelliğinin linestring'inizin aynı koordinat biriminde, yani derecelerde ifade edildiği oldukça açıktır. Aslında:
>>> from shapely.geometry import LineString
>>> line = LineString([(0, 0), (1, 1)])
>>> line.length
1.4142135623730951
Bunun yerine, uzunluğu metre cinsinden ifade etmek istiyorsanız, pyproj kullanarak geometrilerinizi WGS84'ten yansıtılmış bir SRS'ye dönüştürmeniz gerekir (veya daha iyisi, jeodezik mesafe hesaplaması gerçekleştirin, bkz. Gene'nin cevabı). Ayrıntılı olarak, 1.2.18 ( shapely.__version__
) sürümü ile birlikte kullanabileceğimiz geometri dönüştürme işlevlerini ( http://toblerity.org/shapely/shapely.html#module-shapely.ops ) shapely
destekliyoruz . İşte kısa bir örnek: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