Şekilsel dosyada uzamsal kullanımın avantajları? [kapalı]


35

Spatialite, shapefile sınırlamalarına sahip olmadığı ve portatif olduğu için shapefile'den daha kullanışlı buldum. Buradaki birçok kişi veri alışverişinde şekil dosyalarından yararlanmaktadır ve hatta uzmanlar bu yeni formatı bilmemektedir.

Spatialit kullanımının shapefile'ler üzerindeki avantajları nelerdir?

Shapefile yerine kullanılabilir mi?

Lütfen yalnızca taşınabilir, yani USB çubukları kullanarak değiştirilebilen formatlara odaklanın. GML, GeoJSON, KML, CSV bir seçenek değildir ve doğrudan GIS’de düzenlenemezler.

GÜNCELLEME: 5 yıldan fazla oldu ve yeni gelişme spatialite ile ilgili jeopakıntıya yönelik.

Öyleyse şimdi soru daha çok GEODATABASE'e göre GEOPACKAGE kullanmanın avantajları?

Yanıtlar:


27

Shapefiles, GIS vektörü veri dosya değişiminin en düşük ortak paydasıdır: shapefiles'in bir arşivini gönderin ve birisinin ondan bir temel CBS inşa edebileceğini garanti edebilirsiniz.

SpatiaLite'in avantajları:

  • her şey bir dosyada; katman karışıklığı başına shp / shx / dbf / idx / prj'nin hiçbiri.
  • VIEW ve TRIGGER formunda verinin yanı sıra mantık da dahil edilebilir.
  • geniş alanların hızlı aranmasını sağlayan yerleşik konumsal endeksler.
  • veritabanı yöneticisi becerileri gerektirmeden gerçek (biraz sınırlıysa, çoğunlukla çok kullanıcılı erişimde) veritabanı sistemleridir.

Ancak bazı dezavantajları var:

  • herkes onları kullanamaz.
  • hala çoğunlukla düğümlerden ve düz çizgilerden oluşturulan geometrilerle sınırlıdır; Eğri ve yüzeylere ihtiyacınız varsa, başka bir yere bakın.

8
İyi posta, ancak uzaysal dizinler hakkında iki puan. Şekil dosyaları da uzamsal olarak dizine eklenebilir ve ikinci olarak, bazı istenmeyen sorgulara neden olabilecek bir Spatialite uzamsal dizinine açıkça katılmanız gerekir. Verileri hala bir Spatialite DB içerisinde taşımayı tercih ediyorum, ancak daha güçlü bir sorgu planlayıcısından yararlanmak için PostGIS veritabanına aktarıyorum.
HeyOverThere

22

Şekil dosyaları tek bir geometriye bağlı olduğundan, tek bir proje için bir sürü dosya elde edersiniz. Bir antika veritabanı formatı kullanılması nedeniyle alan adları da kısıtlanmıştır.

Spatialite'de, tüm proje verilerini tek bir dosyada tutabilirsiniz; ve alanları istediğiniz şekilde adlandırın (neredeyse, neredeyse).

Spatialitin tek dezavantajı hızlı güncelleme döngüsüdür, başka bir (eski) sürümde yazılmış verileri okumayı veya yazmayı zorlaştırır.


15

Scruss'un cevabına ek olarak, shapefiles bazı sınırlamalar vardır:

  • maksimum alan adı uzunluğu 10 karakterdir
  • maksimum dosya boyutu (.dbf / .shp) 2GB’dır
  • sayısal nitelikler karakter olarak (tam sayılar / değişkenler) saklanır, bu da yuvarlama vb. ile ilgili potansiyel sorunlara neden olur.
  • NULL değerler sistemler arasında farklı yorumlanır

4

Benim için en büyük avantaj, tek bir dosya biçimindeki ilişkisel veritabanı sistemidir. Birçok fayda arasında, mekansal işlevlerin görünüm oluşturmak için kullanılmasıdır. Size bir takım noktalar verilen bir durum düşünün ve metodolojiniz puan tabanını bir öznitelik üzerinde tamponlamak ve sonra bu tamponların diğer coğrafi özelliklerle çakışmasını test etmektir. Bu iş akışını shapefiles ile kullanmak genellikle her bir işlemin başka bir shapefile olarak sürdürülmesini gerektirir. Şimdi verdiğiniz verilerden herhangi biri güncellenirse, tüm zinciri tekrar çalıştırmanız gerekir. Bazı ortamlarda, girdi verilerinin sizin bilmediğiniz bir şekilde değiştirilebileceğinden bahsetmeyin. Geometri işlemleri için SQL görünümlerine güveniyorsanız bu bir problem değildir. (Shapefiles ile bu tür bir konuyu ele alan araçlar olduğunun farkındayım, ancak soru spatiaLite veritabanı ile ilgili.)


2

Bir dosyada bulunan her şey aynı zamanda bir dezavantajdır: Bir şey kırılırsa düzeltmesi çok zordur. Dosyanın boyutu da neredeyse boş veri kümeleri için bile 3,7 MB'tan başlıyor gibi görünüyor. Ayrıca yalnızca metin, tam sayı ve kayan alanları da desteklemektedir. Tarih / saat veya Boole alanları yok. En azından QGIS 1.8’de test ederken


1
Spatialite, tarih / saat türlerine sahiptir, aynı zamanda, her şey için tiplere sahiptir: Tarih ve Saat Veri Türü .
scruss

2
"SQLite, bağlandığınız sayfadan alıntılanan tarihleri ​​ve / veya saatleri depolamak için ayrılmış bir saklama sınıfına sahip değil". Evet, herhangi bir şeyi bir metin alanında saklamak mümkündür, ancak üzerinde matematik yapmadan önce ayrıştırılması gereken sadece metindir.
Uffe Kousgaard

Hayır, yapmazsın; gibi sorgular yapabilirsiniz select * where date < '1980-01-01've sizin için matematik yapar.
scruss

bu, metnin ayrıştırılacağı anlamına gelir. Alternatif, tarihin doğrudan motor tarafından anlaşılan bir sayı olarak kaydedilmesidir. Risk olmadan, 31 Nisanda veya diğer yasa dışı değerlerde bulunmanız. Metin ile <işleci uygulanmadan önce, bir numaraya çevrilmelidir.
Uffe Kousgaard

1
@UffeKousgaard: .dbf dosyalarında, karakteristikler olarak depolanan nümerik (tamsayılar / kayan nokta) ve tarihler;
Oyvind,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.