Web CBS Geliştirme Beceri Setleri [kapalı]


12

Web CBS geliştirme çalışması yapmak / kazanmak isteyen hangi teknolojiler ve beceri setleri kullanılmalıdır?

Cevap başına bir beceri / teknoloji lütfen.


4
Geniş bir soru hakkında konuşun ... belirli bir yazılım yığınına daraltabilir misiniz? ESRI? FOSS? Sadece google / point data mashup'ları mı arıyorsunuz?
Derek Swingley

Benim hatam. ESRI veya FOSS, ikisine birden sahip olmak mümkün değil mi? Umarım nokta mashuplarından daha karmaşık bir şey. Böyle bir şey yapmak için yeterli beceri. opengeohost.com/maps/stlawrence
RK

1
Harika bir soru. Her cevap için bir yetenek edelim.
Adam Matan

Teşekkürler. İyi fikir. Bunu soruya yazmalı mıyım? Sorunun geniş olabileceğini fark ettim. Topluluk wiki'si daha iyi olur mu?
RK

Yanıtlar:


17

Basit bir coğrafyacı olarak başlayan deneyimimden, mekansal analiz yapmak için CBS ürünlerini kullanmaya çalıştığımdan bahsedebilirim.

Dediğim gibi, ben bir coğrafyacıyım ve kolej başından beri GIS ile kullanıcı olarak çalışmaya başladım. Bundan sonra sık sık yapmak zorunda olduğum sıkıcı görevleri nasıl otomatikleştireceğimizi araştırmaya başladım. Bu tutku olarak geldi ve 3 üç yıl sonra, birçok CBS sistemi ile çalışan ve özel çözümler geliştiren çok uluslu bir yazılım evi tarafından istihdam edildim.

Adımlarım :

  • CBS'yi iyi öğrenin. Temel haklara sahip olmadan programlamayı öğrenmeye başlamayın. Projeksiyonlar ve dönüşümler, mekansal analiz, raster ve vektör modeli arasındaki farklar, vb.

  • Veritabanı temellerini öğrenin: Giriş Veritabanı Sistemlerine , Veri Tabanı Sistemleri Temelleri . İki kitap biraz farklı. Birincisi teoride ağır, ikincisi daha pratik bir yaklaşım benimsiyor.

  • SQL öğrenin. Bu aslında birincinin ikinci kısmı. Eğer "sqlish" bir şekilde düşünmeye başlarsanız size çok yardımcı olacaktır. SQL satıcıdan satıcıya değişir. Size standardı en çok takip eden satıcı olan PostgreSQL ile tavsiye edebilirim. Belirli lehçeleri öğrenmeniz gerekiyorsa, daha sonra gerçekten ihtiyacınız olduğunda yapın.

  • Nesne yönelimli programlama. Bu bir meydan okuma gibi görünüyor, ancak temel bilgileri kavradığınızda oldukça kolay. Bunu yapmak için kolay bir dil seçin. Python açık ara en kolay olanı. Python öğrenmek mükemmel bir başlangıç ​​noktasıdır. Dive into Python gibi açık kaynaklı / ücretsiz Python kitapları vardır . Python'dan sonra ilginç seçenekler şunlardır: .NET, Java ve C / C ++.

  • Çalışma programlama. Kodu oku, kodu yaz. Coğrafi kodu okuyun. Coğrafi kod yazma . Klasik API'leri inceleyin: GEOS, JTS, GDAL, ArcObjects (bir ESRI hayranıysanız - ve bu pazarda büyük bir artıdır), vb.

    - Bir coğrafi sorun alın ve çözmek için kod yazın. Bunun ne kadar yararlı olduğunu vurgulayamam. Bu sizi çıldırtır, ancak programlama tarafını öğrendiğinizi doğrulamak ve jeo-uzamsal becerilerinizin güncel olduğundan emin olmak için çok iyi bir yoldur. Benim durumumda trafik kazalarını coğrafi kodlamak için küçük bir PostgreSQL uygulaması yazdım.

  • Çalışmaya devam et. OGC standartları burada iyi bir seçimdir.


4

Veritabanlarında yolunuzu bilin. Herhangi bir CBS geliştiricisi bunları yaygın olarak kullanacaktır.

En önemlisi:

  • DBMS ve İlişkisel Model . Bu konular veri depolamanın temellerini anlamak için çok önemlidir.
  • En az bir GIS DB çözümü . PostGIS'i tercih ediyorum , ancak başka bir çözüm de var .
  • İyi SQL ve GIS bilgisi SQL : Verileri verimli bir şekilde nasıl ayıklayabilir, ekleyebilir, sıralayabilir ve işleyebilir.
  • Klasik DB ödünleşimleri : Farklı işlemler Bellek, Disk Alanı, CPU ve ağ kullanımını nasıl etkiler?
  • Dizin. Bu ayrı bir mermi için yeterince önemlidir, çünkü yeni başlayanlar arasında en yaygın DB Lacuna's.
  • Kümeleme ve ölçeklenebilirlik hakkında bazı bilgiler .
  • NOSQL hakkında temel bilgiler .

Veritabanlarını kullanmasanız bile, hala veri kullanıyorsunuzdur ve genellikle verileri sorgulamak için SQL'in (veya kuzenlerinden birinin) kullanılacağı güvenli bir bahistir.
mwalker

Yukarıdakilerin hepsinin bilinmesi gereken iyi şeyler olduğunu kabul ediyorum, ancak WEB gelişimi açısından listenin başındalar mı?
Simon

CQL ne olacak? O da gerekli mi?
RK

1
@simon - Yetersiz DB yeteneği, CBS geliştiricileri arasında en yaygın sorunlardan biridir. IMHO en önemli becerilerden biridir (HTML / CSS, JavaScript ve harita oluşturma ile birlikte). @rk - CQL?
Adam Matan

Ortak Sorgu Dili? GeoServer ile çalışırken bir kez karşılaştım.
RK

3

Zaten kapsanan şeylerin CBS tarafına sahip olduğunuzu varsayarsak (kartografik ilkeler, vb.) Önce http://www.w3schools.com/ adresine bir gezi yapacağım - HTML, Javascript, XML, vb.

Sonra seçim için bir dizi farklı platform var. ESRI'ya karşı biraz önyargılıyım ve http://resources.arcgis.com/content/web/web-apis API'lerini oynayarak başlamanızı öneririm . başarabilirsin.
Kod örneklerini indirmeyi ve bunları kendi hizmetlerinizle çalışmak için tersine mühendislik buluyorum (ArcGIS Server'ın bir örneğine sahip olduğunuzu varsayarsak, aksi takdirde ESRI örnek sunucularını kullanabilirsiniz) öğrenmek için iyi bir yoldur.

Ayrıca birçok video var, bu kulaklar dev konferans videolarına bir göz atın Id tavsiye JavaScript için ArcGIS API'lerine Genel Bakış, Etkili Harita Hizmetleri Tasarlamak için En İyi Uygulamalar, Web için Masaüstü Uygulamalarını Yeniden Tasarlama ve ArcGIS Server REST API'sini kullanma.

Hangi web platformunu seçersiniz? Bu aşamalı olarak gideceği için WebADF'ye (Java / NET) bakmayı görmezden geliyorum.

Müşterileriniz kimler? hangi tarayıcıları kullanacaklar? Silverlight veya Flash eklentileri yükleyebilirler mi? Geliştirilecek IDE'leriniz var mı? örneğin Flex en iyi FlashBuilder'da ($$) bulunur, ancak açık kaynak alternatifi olan FlashDevelop'u da kullanabilirsiniz.

Yerleşik teknolojiler veya yeni teknolojiler konusunda daha rahat mısınız? Riskleri tartın.
- .NET / Java uzun zamandır var - Silverlight ve Flex oldukça yeni ve HTML 5'in bu platformları silip silemeyeceği konusunda bazı tartışmalar var

Hem Silverlight hem de Flex, kutudan daha fazla etkileşim içeriyor; burada Javascript, Dojo.Framework'a güvenerek bu boşluğu oluşturuyor.

Web ADF'leri ve Web API'leri arasındaki işlevsellikteki büyük fark, ArcGIS Web API'lerinin tamamen istemci tarafı olmasıdır.

Daha az ESRI'ya özel bir cevap vermek için bir başkasını terk edeceğim, ancak bariz seçim Google Haritalar API'sı ile oynamaya başlamaktır - Bunu öğrenmek için birçok kaynak / öğretici var.


Vay. Genel bakış için teşekkürler: DI, üçüncü dünya ülkesinde olduğumdan ve ESRI ürünlerinin burada çoğu insanın erişemeyeceği şekilde FOSS'a biraz daha eğildi.
RK

ArcGIS (ve diğer pek çok) Web API'sinin işlemlerinin çoğunu istemci tarafında yaptığını, ancak hepsinin ağırlıklı olarak yayınlanmış hizmetlere ve / veya sunucu tarafında işlemeye bağlı olduğunu unutmayın. Bu nedenle, mevcut kaynakları bir araya getirmenin ötesinde çok fazla şey yapmak istiyorsanız (örn. Coğrafi işlem), sunucu tarafı teknolojilerini araştırmanız veya istemci tarafında bunu nasıl yapacağınızı anlamak için ağır araştırmalar yapmanız gerekebilir.
mwalker

Not alınmış. Şu anda açık coğrafi yığını araştırıyor.
RK

3

Javascript, HTML DOM, CSS, HTTP

Bunlarda uzmanlaşırsanız, web üzerinde her şeyi yapabilirsiniz. SVG gibi güzel API'leri eklemek belki daha kolay ve web uygulamalarınızı daha güzel hale getirecektir, ancak IMO yukarıda listelenen dört taneyi asla başaramayacaksınız.


Javascript, HTML DOM, CSS, HTTP Onları öğrenmem gereken belirli bir sipariş var mı? :)
RK

2
Şu sıraları öneririm: HTML, CSS, HTTP, DOM, JavaScript, ek olarak PHP ve veya sunucu tarafı komut dosyaları için Python / Ruby.
underdark

3

Uzamsal DB'nizi ve harita sunucunuzu (burada diğer yanıtlarda açıklanmıştır) sıralamayı başardığınızı ve HTML, CSS ve JavaScript bilginizi fırçaladığınızı varsayarak, kullanıcının web tarayıcısında harita bileşenlerini tüketecek ve görüntüleyecek istemci kitaplıklarıyla uğraşmaya başlayabilirsiniz.

OpenLayers en çok başvurulan ve kullanılan kütüphane gibi görünüyor. Oldukça iyi belgelere ve örneklere sahip ve bazı öğreticileri bulabilirsiniz, örneğin burada . BostonGIS sayfaları sadece OpenLayers öğeleri için değil, burada da sizin için yararlı olacaktır.

Bilginize / öğrenme isteğinize bağlı olarak Python MapFish de çok zarif bir çözümdür. Ya da GeoDjango'ya dalabilirsiniz , ancak bu çözüm hakkında çok fazla yorum yapamam.

Alternatif olarak, OSGeo web haritalama çözümlerine bakabilir, Flash'a dönebilir veya ESRI Web API'leri gibi ticari bir şey kullanabilirsiniz .


3

Adam'a uzamsal DB ve SQL'in bir başlangıç ​​noktası olması gerektiğine katılıyorum .

Bundan sonra, gelecekteki web geostack'inizin ikinci katmanına bakmaya değer olabilir . Verilerinizi uzamsal DB'den kullanıcılarınızın tarayıcısındaki istemciye 'sunan' bir köprü görevi görecek bir şeye ihtiyacınız olacak.

WFS ve WMS kavramlarını anladığınızdan emin olun .

Kendi sunucunuzla yerel olarak yükleyin ve oynamaya başlayın. Tarafından benimsenen iki tanınmış projeler OSGEO olan GeoServer ve MapServer . QGIS harita sunucusu da bir göz atmaya değer olabilir. ArcGIS sunucusu burada [maliyetli!] Ticari eşdeğeri olacaktır.

Bu bölümü çözdükten sonra istemci kitaplıklarıyla oynamaya başlayabilirsiniz.


2

Mapnik veya harita döşemeleri oluşturmak için başka bir harita oluşturma aracı.

Hemen hemen her CBS web geliştiricisinin harita oluşturma araçlarını kullanması veya en azından katmanların ve döşemelerin temel kavramlarını anlaması gerekir.


Teşekkürler. Bence katmanları ve fayansları iyi anlıyorum. Sorun yaşadığım oluşturma bölümü.
RK

2

Sunucu işletim sisteminizi, web sunucunuzu (IIS, Apache, ne olursa olsun) ve eşyalarınızı nasıl güvende tutacağınızı öğrenin - biri sizin için her şeyi yapıyor olsa bile.


2

Kursum aracılığıyla (https://www.e-education.psu.edu/geog585/) çalışabilirsiniz (bence) iyi bir tanıtım yapar ve sizi çalıştırır ve çalıştırır.


1

George'un son yorumu ikinci kez yeterince vurgulayamıyorum. İlginizi çeken bir coğrafi ve / veya Web problemi seçin ve çözerken gerekli teknolojileri öğrenin.

Yukarıda listelenen tüm alanlarda yetkin olmak için zaman ayırırsanız, kaşıntıyı çizen bir proje oluşturmaya başlamadan önce sonsuza kadar olacaktır.

Mevcut veri hizmetlerinden bir uygulama harita verileri oluşturmak için OpenLayers kullanarak bir uygulama oluşturmaya başlamayı öneririm. Daha sonra kendi veri kaynaklarınızı veya hizmetlerinizi oluşturmaya devam edebilirsiniz. FLOSS teknolojilerine bağlı kalırsanız, uygulamalarınızı lisans maliyeti olmadan herhangi bir yerde oluşturabilir ve kullanabilirsiniz.

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.