Düz bir LineStringnesne oluşturmak istediğim iki nokta varsa :
from shapely.geometry import Point, LineString
A = Point(0,0)
B = Point(1,1)
İçin Düzgün kılavuzuLineString devletler:
Bir
Pointörnek sırası geçerli bir kurucu parametresi değildir. ALineString, noktalarla tanımlanır, ancak Nokta örneklerinden oluşmaz.
Eğer iki puanım varsa Ave şu anki "en iyi" tahminimden Bbir çizgi oluşturmanın daha kısa / daha iyi / daha kolay bir yolu varsa AB...
AB = LineString(tuple(A.coords) + tuple(B.coords))
... oldukça karmaşık görünüyor. Daha kolay bir yol var mı?
Güncelleme
Bugün yayınlanan Shapely 1.3.2 ile, el kitabındaki yukarıdaki ifade artık doğru değil. Bundan böyle,
AB = LineString([A, B])
çalışır !
shapely.__version__Shapely 1.3.1'e yükselttikten ( katılıyorum) ve kod kelimelerinizi yapıştırdıktan sonra, linestring.pyc # 228'den "Girdi[<...Point object at 0x..>, <...Point object at 0x...>]bir LineString için yanlış şekil " hakkında bir ValueError alıyorum . Bir şey kaçırdım mı?