सिस्टम संयोजित करें
[...]
संक्षेप में समन्वय प्रणाली परिवर्तनों का समर्थन नहीं करता है। दो या दो से अधिक विशेषताओं के सभी ऑपरेशन यह मानते हैं कि विशेषताएँ एक ही कार्टेशियन विमान में मौजूद हैं।
स्रोत: http://toblerity.org/shapely/manual.html#coordinate-systems
shapely
एसआरएस के संदर्भ में पूरी तरह से अज्ञेयवादी होने के नाते , यह काफी स्पष्ट है कि लंबाई विशेषता आपके लिनस्ट्रिंग, यानी डिग्री के निर्देशांक की एक ही इकाई में व्यक्त की गई है। असल में:
>>> from shapely.geometry import LineString
>>> line = LineString([(0, 0), (1, 1)])
>>> line.length
1.4142135623730951
इसके बजाय, यदि आप मीटर में लंबाई व्यक्त करना चाहते हैं, तो आपको अपने Geometries को WGS84 से एक अनुमानित SRS में pyproj (या, बेहतर, जियोडेसिक दूरी की गणना को निष्पादित करने, जीन का जवाब देखें) का उपयोग करके बदलना होगा । विस्तार से, संस्करण 1.2.18 ( shapely.__version__
) के बाद से , ज्यामिति ट्रांसफ़ॉर्म फ़ंक्शंस ( http://toblerity.org/shapely/shapely.html#module-shapely.ops ) shapely
का समर्थन करता है जिसका हम इसके साथ संयोजन में उपयोग कर सकते हैं । यहाँ एक त्वरित उदाहरण है: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