(Ne zaman) GIS etkin bir veritabanı kullanmalı mıyım?


22

Ben uzun zamandır programcıyım, CBS konusunda yeni. CBS'nin veritabanı özellikleri hakkında bir fikir edinmeye çalışıyorum ve GIS kullanımı için uzmanlaşmış bazı veritabanları olduğunu biliyorum. Temel olarak, böyle bir veritabanını kullanıp kullanmayacağımı veya oldukça popüler, iyi kurulmuş, yaygın olarak desteklenen (ve ücretsiz) MySql'e bağlı kalmaya çalışıyorum.

Kodlamakla yükümlü olabileceğim türdeki uygulamalar şöyle olur:

  • filo yönetimi (kara veya okyanus temelli araçlar)
  • çalışan takibi
  • envanter kontrolü (metre ya da öylesine doğru olan fiziksel bir konumun ayrıntı düzeyinde)
  • errm, bu konuda, gerçekten

Normalde en fazla 1 birkaç yüz (en fazla, muhtemelen birkaç bin) öğeyi takip etmeyi umardım. Bazen eşyalar, uygulamaya bağlı olarak aynı (büyük) bina, bina serisi, şehir, ülke veya dünya genelinde bulunacaktır.

Bazen onları bir binanın özel bir kat planında veya daha büyük bir olasılıkla Google Earth'te veya benzerlerinde (başka bir soruda olanlardan) görsel olarak temsil edeceğim.

Bana öyle geliyor ki, MySql ile aynı seviyede ve enlem / boylam veya diğer konumsal veriler için sütunlar ekliyorum ama bu sadece MySql'i tanıdığım için olabilir.

Daha özel bir veritabanına bakmamın bir nedeni var mı?

Yanıtlar:


13

Uzamsal veritabanlarına asıl avantaj (PostGIS, MySQL'in uzamsal uzantıları veya başka bir şey), uzamsal veriler üzerinde uzamsal işlemleri yapabilmenizdir. Eğer sadece nokta koordinatlarını saklıyorsanız, o zaman uzamsal alandan pek bir şey kazanmazsınız (sadece iki sayısal sütun kullanın). Nokta koordinatlarının (müşterilerin olduğu yerler) ve çizgi koordinatlarının (teslimat kamyonlarının nereye gittiği) ve çokgenlerin (satış bölgeleri) kombinasyonlarını saklarsanız ve bu çeşitli bilgi parçalarını (satışlar içinde kaç müşteriyle ilgili) sorguları yaparsanız ne kadar kaç kamyon bugün bir müşteri sitesinden 2 km'den daha az yol kat etti ama bir teslimat yapıp teslim almadıysanız) çok para kazanabilirsiniz.

İant'ın belirttiği gibi, PostGIS kesinlikle bir sunucu uygulaması aramaya değer. SpatiaLite, oldukça benzer SQL işlevleri sunarken, bir masaüstü / gömülü / çevrimdışı mobil uygulama için daha uygun olabilecek SQLite'in uzamsal uzantılarıdır [ Açıklama: SpatiaLite üzerinde çalışıyorum ] Bir masaüstü uygulaması.


+1 ve teşekkürler. Neden
Sqlite'ye

1
Bence sadece farklı tasarım hedefleri (gömülü, konfigürasyon yok, vb.).
BradHards

+1 düşündüğüm şeydi (ben de gömülü bir arka plandan geliyorum). Bilgi için teşekkürler. Tarayıcı tabanlı uygulamalar ile sonuçlanacağımı umuyorum (çoğumuz, tercih etmesek bile), bu yüzden "lite" çok gerekli değil. Sadece cursious, d / b gömülü sistemde / cihazda ne tür uygulamalar var? (üzgünüm, hala öğreniyorum)
Mawg

1
gömülü büyük bir alan, ancak çevrimdışı mobil gelişmekte olan bir alan gibi görünüyor.
BradHards,

2
@Mawg Çoğu modern telefon ve tarayıcı veri deposu olarak sqlite kullanır. Gerçekten tek bir c dosyası ve API süper basittir ve bu süreç içinde çalışır. Buna, çalışan birden çok işlem ve bir istemci / sunucu mimarisi gerektiren MySQL ile karşılaştırın. İki çok farklı kullanım örneği
Ragi Yaser Burhum

8

Kesinlikle çok popüler, iyi kurulmuş, yaygın olarak desteklenen (ve ücretsiz) PostGIS'i düşünmelisiniz . MySQL'in yapabileceği her şeyi yapacak ve uzamsal konumları birinci sınıf nesneler olarak ele alacaktır. Böylece tüm karşılaştırmaları yazmak zorunda kalmadan bir sınırlama kutusundaki (veya diğer çokgen) noktalara dayalı seçimler yapabilirsiniz.

Hangi nesnelerin hangi ülkede (ya da binada) olduğu gibi sorular sormaya başladığınızda, PostGIS gerçekten kendi içine girer ve nesnelerinizi haritalandırmanız gerektiğine karar vermeniz gerekiyorsa, tüm popüler açık kaynak araçları PostGIS ile konuşacak. kutu.


+1 ve çok teşekkürler. Şimdi araştırmaya gidiyorum. Kodlayıcılar açısından bakış açısını görmek isterim, web tabanlı gidersem PHP ile konuşuyor ve Widnwos masaüstü uygulamasına gidersem Delphi için AnyDac veritabanı erişim bileşenlerini kullanıyorum, bu yüzden AnyDac desteğini e-postayla göndereceğim. Tekrar teşekkürler!
Mawg

1
Mawg'a: Postgis, db2, spatiallite, sql server vb. GIS fonksiyonlarından herhangi birini desteklemek için 3. parti delphi veritabanı kütüphanelerinden herhangi birini görmem gerekiyor. Kendi başınıza yapmanız gereken bir şey gibi görünüyor.
Uffe Kousgaard 27:12

+1 @UffeKousgaard En ucuz cartovcl.com
Mawg

1
Neredeyse 10 yıldır kullandığım Cartovcl, CBS işlevselliği yerleşik bir düz dosya GIS SDK'sı. Mekansal olarak etkin bir uzak veritabanının üstünde ince bir API değil.
Uffe Kousgaard

1
Tarihsel Belge :-) Ama TatukGIS muhtemelen en kapsamlı çok yönlü GIS SDK'larından biri (aynı zamanda biraz pahalı). Ancak, cartovcl ile aynı ligdedir, yani gis-işlevi yerleşiktir, uzak bir veritabanının tepesinde bir API değildir.
Uffe Kousgaard

2

Cevapları eklemek ve bazı noktaları yinelemek için, birkaçı aşağıdaki gibi olan verilerin uzamsal ilişkileriyle ilgili sorularınız varsa, uzamatik olarak etkinleştirilmiş bir veritabanı kullanır:

  1. Hangi noktalar ilgi alanımın x kilometresinde
  2. hangi noktalar daha yakın
  3. Bir noktanın diğer noktadan ne kadar uzakta olduğu
  4. hangi noktalar erişim yolu içinde x kilometre

NEREDE ile ilgili bu tür sorular bir uygulama için önemli bir özellikse, o zaman genellikle mekansal bir veritabanı kullanılması şiddetle önerilir.

Elbette, bir mesafe formülü kullanmak gibi, bu sorguların bazıları için kodlama / uygulama mantığına başvurabilir, ancak tekerleği yeniden icat etmeye gerek yoktur.

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.