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.
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.
Yanıtlar:
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.
Veritabanlarında yolunuzu bilin. Herhangi bir CBS geliştiricisi bunları yaygın olarak kullanacaktır.
En önemlisi:
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.
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.
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 .
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.
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.
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.
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.
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.