Saya cukup tidak puas dengan Menghitung Panjang Linestrings di WGS84 di Miles . Itu membuat saya bertanya-tanya apakah ada cara Pythonic yang lebih nyaman untuk menghitung panjang linestring WKT menurut SRID yang diberikan.
Ada dalam pikiran saya sesuatu seperti:
srid="WGS84"
line="LINESTRING(3.0 4.0, 3.1 4.1)"
print length(line, srid)
Saya mencari jawaban yang akurat, bukan sin\cos
perkiraan.
Ada ide?
Jawaban:
The geopy modul menyediakan rumus Vincenty , yang menyediakan jarak ellipsoid akurat. Sandingkan ini dengan
wkt
pemuatan di Shapely, dan Anda memiliki kode yang cukup sederhana:sumber
Anda juga bisa menggunakan properti panjang Shapely , yaitu:
sumber
Saya akan menggunakan ogr2ogr ( http://www.gdal.org/ogr/index.html ) untuk melakukannya secara langsung tetapi jika Anda benar-benar harus menggunakan python maka ada binding python ( http://pypi.python.org/pypi / GDAL / ) untuk membiarkan Anda melakukannya.
sumber
Terlambat ke pesta, tapi dengan kontribusi semoga bermanfaat. Membangun jawaban scw menggunakan geopy, saya menulis sebuah fungsi kecil yang melakukan perhitungan untuk objek LineString yang indah dengan banyak koordinat sembarang. Ini menggunakan
pairs
iterator dari Stackoverflow.Fitur utama: dokumen jauh lebih panjang dari potongan.
sumber
[, z]
, tapi argumen pertukaran(y, x)
untuk(x, y)
yang diperlukan. Terima kasih telah melihatnya. Bisakah Anda melihat apakah pengeditan ini terlihat tidak terlalu bug?