Erik Westra'nın ( Amazon link ) süper kötü 'Python Geospatial Development' kitabının bir kopyasını aldım ve üzerinde çalışıyorum. Şu anda bana, coğrafi bir web uygulaması oluşturmaya hazırlanırken GSHHS kıyı şeridi verilerini bir şekil dosyasından PostGIS veritabanına yüklemeyi öğretiyor.
Benim sorunum şu: GSHHS verilerini PostGIS'e aktarmaya çalıştığımda, kıyı şeridi çokgenlerinin 'geçerli' olarak kabul edilmemesi nedeniyle reddediliyor. Özellikle, kıyı şeridi çokgenlerinin bazılarını (ancak hepsini değil) 'kapalı halkalar' olarak tanımlayan bir hata mesajı alıyorum.
Bu hatanın bana çokgenin ilk ve son noktalarının aynı olmadığını söylemeye çalıştığını anlıyorum. Ancak, bu doğru değildir. Çokgenlerin çoğunun WKT temsilini inceledim ve doğrular. Onlar kesinlikle başlayacak ve aynı koordinata ile sona erer.
Çokgenler OGR kütüphanesi kullanılarak şekil dosyalarından çıkarılır ve her çokgen özelliği WKT'ye aktarılır. Shapely aracılığıyla çokgeni yeniden oluşturmayı denedim ve WKB ile denedim, ancak boşuna. I olan shp2pgsql yükleyiciyi kullanarak, bir MultiPolygon tablo olarak PostGIS içine aynı veri yüklemek mümkün.
Orada birisinin olup olmadığını merak ediyordum:
(a) belki de aynı kitabı kullandı, aynı soruna saplandı ve benim için bir cevabı var mı?
(b) benzer bir sorunla karşılaştı ve bir çözüm buldu mu?
(c) başarısız olursa, PostGIS'e yüklemeden önce geçerli geometriyi sağlamak için bazı 'en iyi uygulama' tavsiyeleri var mı?
GÜNCELLEME: bir meslektaş 'kapalı halkalar' probleminin sadece başka bir problemin belirtisi olabileceğini ileri sürdü. PostGIS / PostgreSQL yapılandırmamın boyut sınırları olması mümkündür (ekleme işlemlerinde, alınan paketlerde, metin dizelerinde vb.).
Giriş olarak çok uzun WKT çokgenleri kullandığım için, PostGIS her çokgenin tamamlanmasına izin vermek için onları çok erken kesiyor olabilir. Yarın test edeceğim, ama kulağa muhtemelen gelebilir. Ülke sınırlarını eklemem yalnızca bazı kayıtları kabul ediyordu, diğerlerini kabul etmiyordu. Bellekten, kabul edilen geometriler Antigua gibi küçük ada ülkeleri içindi (ve muhtemelen kısa WKT temsilleri vardı).
Böylece bu geçersiz bir geometri iş parçacığı yerine bir PostGIS veritabanı yönetim iş parçacığı olabilir.