Teknologi dan keahlian apa yang harus dimiliki seseorang yang ingin melakukan studi / memperoleh pengembangan SIG web?
Tolong, satu keterampilan / teknologi per jawaban.
Teknologi dan keahlian apa yang harus dimiliki seseorang yang ingin melakukan studi / memperoleh pengembangan SIG web?
Tolong, satu keterampilan / teknologi per jawaban.
Jawaban:
Saya dapat memberi tahu Anda tentang pengalaman saya, yang dimulai sebagai ahli geografi sederhana, mencoba menggunakan produk GIS untuk melakukan analisis spasial.
Seperti yang saya katakan, saya seorang ahli geografi, dan sejak awal di perguruan tinggi saya mulai bekerja dengan GIS sebagai pengguna. Setelah itu, saya mulai meneliti bagaimana mengotomatisasi tugas-tugas membosankan yang harus sering saya lakukan. Itu datang sebagai gairah, dan setelah 3 tiga tahun, saya dipekerjakan oleh sebuah perusahaan perangkat lunak multinasional, yang bekerja dengan banyak sistem GIS dan mengembangkan solusi khusus.
Langkah saya adalah:
Pelajari GIS dengan baik. Jangan mulai belajar pemrograman tanpa memiliki hak mendasar. Proyeksi dan transformasi, analisis spasial, perbedaan antara model raster dan vektor, dll.
Pelajari dasar-dasar basis data: Pengantar Sistem Basis Data , Dasar-dasar Sistem Basis Data . Kedua buku itu agak berbeda. Yang pertama adalah berat pada teori, yang kedua mengambil pendekatan yang lebih praktis.
Pelajari SQL. Ini sebenarnya bagian kedua dari yang pertama. Ini akan banyak membantu Anda jika Anda mulai berpikir dengan cara "bahasa Inggris". Perubahan SQL dari vendor ke vendor. Saya dapat merekomendasikan Anda dengan PostgreSQL, yang merupakan vendor yang paling mengikuti standar. Jika Anda perlu mempelajari dialek tertentu, lakukan nanti, saat Anda benar-benar membutuhkannya.
Pemrograman berorientasi objek. Tampaknya ini sebuah tantangan, tetapi cukup mudah setelah Anda memahami dasar-dasarnya. Pilih bahasa yang mudah untuk melakukannya. Python sejauh ini yang paling mudah. Belajar Python adalah titik awal yang sangat baik. Ada buku-buku Python open-source / gratis, seperti Menyelam ke Python . Setelah Python, pilihan menarik adalah: .NET, Java, dan C / C ++.
Mempelajari pemrograman. Baca kode, tulis kode. Baca kode geospasial. Tulis kode geospasial. Pelajari API klasik: GEOS, JTS, GDAL, ArcObjects (jika Anda adalah penggemar ESRI - dan ini merupakan nilai tambah besar di pasar), dll.
- Ambil masalah geospasial dan tulis kode untuk menyelesaikannya. Saya tidak bisa menekankan betapa bermanfaatnya ini. Ini akan membuat Anda gila, tetapi ini adalah cara yang sangat baik untuk mengonfirmasi bahwa Anda telah mempelajari sisi pemrograman dan memastikan keterampilan geo-spasial Anda mutakhir. Dalam kasus saya, saya menulis aplikasi PostgreSQL kecil untuk membuat geocode kecelakaan lalu lintas.
Teruslah belajar. Standar OGC adalah pilihan yang bagus di sini.
Ketahui jalan Anda di sekitar basis data. Setiap pengembang GIS akan menggunakannya secara luas.
Terutama:
Dengan asumsi Anda sudah memiliki sisi GIS hal-hal yang dibahas (prinsip-prinsip kartografi, dll), pertama-tama saya akan melakukan perjalanan ke http://www.w3schools.com/ - Jalankan melalui tutorial dalam HTML, Javascript, XML, dll.
Kemudian Anda memiliki sejumlah platform berbeda untuk dipilih. Saya sedikit bias terhadap ESRI, dan saya akan merekomendasikan memulai dengan bermain tentang API
http://resources.arcgis.com/content/web/web-apis
- Menjalankan konsep / sampel memberi Anda perasaan nyata tentang apa Anda bisa meraihnya.
Saya menemukan mengunduh sampel kode dan merekayasa balik agar berfungsi dengan layanan Anda sendiri (dengan asumsi Anda memiliki instance ArcGIS Server, jika tidak, Anda dapat menggunakan server sampel ESRI) adalah cara yang baik untuk belajar.
Ada juga banyak video, lihat video konferensi ini, dan rekomendasikan Tinjauan Umum API ArcGIS untuk JavaScript, Praktik Terbaik untuk Merancang Layanan Peta yang Efektif, Mendesain Ulang Aplikasi Desktop untuk Web dan Menggunakan ArcGIS Server REST API.
Platform web mana yang akan Anda pilih? Saya abaikan melihat WebADF (Java / NET) karena ini akan dihapus.
Siapa klien anda? browser apa yang akan mereka gunakan? Bisakah mereka menginstal plugin Silverlight atau Flash? Apakah Anda memiliki IDE untuk dikembangkan? mis. Flex terbaik di FlashBuilder ($$) tetapi Anda juga bisa menggunakan FlashDevelop yang merupakan alternatif sumber terbuka.
Apakah Anda lebih nyaman dengan teknologi yang mapan atau teknologi yang muncul? Timbang risikonya.
- .NET / Java telah ada sejak lama - Silverlight & Flex cukup baru dan ada beberapa perdebatan tentang apakah HTML 5 akan menghapus platform ini
Baik Silverlight dan Flex memiliki lebih banyak interaktivitas di luar kotak, di mana Javascript menebus kesenjangan ini dengan mengandalkan Dojo.Framework.
Perbedaan besar dalam fungsionalitas antara ADF Web dan API Web adalah kenyataan bahwa ArcGIS Web API sepenuhnya merupakan sisi klien.
Saya akan meninggalkan orang lain untuk memberikan jawaban spesifik kurang-ESRI, tetapi pilihan yang jelas adalah mulai bermain dengan Google Maps API - Ada banyak sumber daya / tutorial untuk mempelajari ini.
Javascript, HTML DOM, CSS, HTTP
Jika Anda menguasai ini, Anda dapat melakukan apa saja di web. Menambahkan API yang bagus seperti SVG mungkin akan membuatnya lebih mudah dan aplikasi web Anda lebih baik, tetapi IMO Anda tidak akan pernah bisa dengan mudah menyiasati keempat yang tercantum di atas.
Dengan asumsi bahwa Anda berhasil memilah-milah DB spasial dan server peta [dijelaskan dalam jawaban lain di sini] dan memoles pengetahuan Anda tentang HTML, CSS, dan JavaScript, Anda mungkin mulai bermain-main dengan perpustakaan klien yang akan menggunakan dan menampilkan komponen peta di dalam browser web pengguna.
OpenLayers tampaknya menjadi pustaka yang paling banyak dirujuk dan digunakan. Ini memiliki dokumentasi dan contoh yang cukup bagus, dan Anda dapat menemukan beberapa tutorial, misalnya di sini . Halaman BostonGIS akan berguna bagi Anda di sini juga, tidak hanya untuk hal-hal OpenLayers.
Tergantung pada pengetahuan / kemauan Anda untuk belajar Python MapFish adalah solusi yang sangat baik juga. Atau Anda bisa menyelam ke GeoDjango , namun saya sendiri tidak bisa berkomentar tentang solusi ini.
Atau Anda dapat melihat solusi pemetaan web OSGeo , beralih ke Flash, atau menggunakan sesuatu yang komersial seperti ESRI Web API .
Saya setuju dengan Adam bahwa DB spasial dan SQL harus menjadi titik awal.
Setelah itu mungkin layak untuk melihat tingkat kedua dari geostack web masa depan Anda . Anda akan membutuhkan sesuatu untuk bertindak sebagai jembatan 'melayani' data Anda dari DB spasial ke klien di browser pengguna Anda.
Pastikan Anda memahami konsep WFS dan WMS .
Instal dan mulai mainkan secara lokal dengan server Anda sendiri. Dua proyek terkenal yang dianut oleh Open Source Geospatial Foundation adalah GeoServer dan MapServer . Server peta QGIS mungkin layak untuk dilihat juga. Server ArcGIS akan menjadi [mahal!] Setara komersial di sini.
Setelah Anda menyelesaikan bagian ini, Anda mungkin mulai bermain dengan pustaka klien.
Mapnik atau alat render peta lainnya untuk membuat petak peta.
Hampir semua pengembang web GIS perlu menggunakan alat render peta, atau setidaknya memahami konsep dasar lapisan dan ubin.
Ketahui OS server Anda, server web Anda (IIS, Apache, apa pun) dan cara mengamankan barang-barang Anda - bahkan jika seseorang melakukan semuanya untuk Anda.
Anda dapat bekerja melalui kursus saya (https://www.e-education.psu.edu/geog585/) yang (saya pikir) memberikan pengantar yang baik dan harus membuat Anda bangun dan berjalan.
Saya tidak bisa cukup menekankan komentar George ke komentar terakhir. Pilih masalah geospasial dan / atau Web yang menarik minat Anda dan pelajari teknologi yang dibutuhkan saat Anda menyelesaikannya.
Jika Anda meluangkan waktu untuk menjadi mahir di semua bidang yang tercantum di atas, itu akan selamanya sebelum Anda benar-benar mulai membangun proyek yang menggaruk gatal Anda.
Saya menyarankan memulai dengan membangun aplikasi menggunakan OpenLayers untuk membangun data peta aplikasi dari beberapa layanan data yang ada. Anda kemudian dapat melanjutkan untuk membuat sumber data atau layanan Anda sendiri. Jika Anda tetap menggunakan teknologi FLOSS, Anda akan dapat membangun dan menggunakan aplikasi Anda di mana saja tanpa masalah biaya lisensi.