Set Keterampilan Pengembangan GIS Web [ditutup]

12

Teknologi dan keahlian apa yang harus dimiliki seseorang yang ingin melakukan studi / memperoleh pengembangan SIG web?

Tolong, satu keterampilan / teknologi per jawaban.

RK
sumber
4
Bicara tentang pertanyaan luas ... dapatkah Anda mempersempitnya ke tumpukan perangkat lunak tertentu? Esri? FOSS? Hanya ingin melakukan mashup data google / point?
Derek Swingley
Salahku. ESRI atau FOSS, apakah tidak mungkin memiliki keduanya? Sesuatu yang lebih kompleks daripada titik mashup saya harap. Keterampilan yang cukup untuk melakukan sesuatu seperti ini. opengeohost.com/maps/stlawrence
RK
1
Pertanyaan yang bagus Mari kita memiliki satu keterampilan per jawaban.
Adam Matan
Terima kasih. Ide yang hebat. Haruskah saya memposting itu pada pertanyaan? Saya baru menyadari bahwa pertanyaannya mungkin luas. Apakah lebih baik sebagai wiki komunitas?
RK
masalah
serupa

Jawaban:

17

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.

George Silva
sumber
4

Ketahui jalan Anda di sekitar basis data. Setiap pengembang GIS akan menggunakannya secara luas.

Terutama:

  • DBMS dan Model Relasional . Mata pelajaran ini sangat penting untuk memahami dasar-dasar penyimpanan data.
  • Setidaknya satu solusi GIS DB . Saya lebih suka PostGIS , tetapi solusi lain juga ada .
  • Pengetahuan yang baik tentang SQL dan GIS SQL : Cara mengekstrak, menyisipkan, mengurutkan, dan memanipulasi data secara efisien.
  • Pertukaran DB klasik : Bagaimana berbagai operasi memengaruhi Memori, Ruang Disk, CPU, dan penggunaan jaringan.
  • Pengindeksan. Ini cukup penting untuk peluru yang terpisah, karena ini adalah DB Lacuna yang paling umum di kalangan pemula.
  • Beberapa pengetahuan tentang pengelompokan dan skalabilitas .
  • Pengetahuan dasar tentang NOSQL .
Adam Matan
sumber
Bahkan jika Anda tidak menggunakan basis data, Anda masih menggunakan data - dan umumnya ini adalah taruhan yang aman bahwa SQL (atau salah satu sepupunya) akan digunakan untuk menanyakan data.
mwalker
Saya setuju bahwa semua hal di atas adalah hal yang baik untuk diketahui, tetapi apakah mereka termasuk dalam daftar teratas dalam hal pengembangan WEB?
Simon
Bagaimana dengan CQL? Apakah itu perlu juga?
RK
1
@simon - Kemampuan DB yang tidak memadai adalah salah satu masalah paling umum di antara para pengembang GIS. IMHO itu adalah salah satu keterampilan yang paling penting (bersama dengan HTML / CSS, JavaScript dan rendering peta). @rk - CQL?
Adam Matan
Bahasa Pertanyaan Umum? Saya pernah melihatnya sekali saat bekerja dengan GeoServer.
RK
3

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.

Simon
sumber
Wow. Terima kasih atas ikhtisar: DI condong sedikit lebih ke arah FOSS karena saya di negara dunia ketiga dan produk ESRI di luar jangkauan kebanyakan orang di sini.
RK
Perhatikan bahwa ArcGIS (dan banyak lainnya) Web API melakukan sebagian besar pemrosesan mereka di sisi klien, tetapi mereka semua sangat bergantung pada layanan yang dipublikasikan dan / atau pemrosesan di sisi server. Jadi, jika Anda ingin melakukan banyak hal selain merakit sumber daya yang ada (misalnya geoprocessing), Anda mungkin harus menyelidiki teknologi di sisi server, atau melakukan riset yang kuat untuk mengetahui bagaimana melakukannya di sisi klien.
mwalker
Dicatat. Investasikan geo-stack terbuka sekarang.
RK
3

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.

mkadunc
sumber
Javascript, HTML DOM, CSS, HTTP Apakah ada urutan tertentu yang harus saya pelajari? :)
RK
2
Saya akan menyarankan urutan berikut: HTML, CSS, HTTP, DOM, JavaScript, tambahan PHP dan atau Python / Ruby untuk skrip sisi server.
underdark
3

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 .

Radek
sumber
3

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.

Radek
sumber
2

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.

Adam Matan
sumber
Terima kasih. Saya pikir saya mengerti lapisan dan ubin dengan baik. Ini bagian rendering yang saya punya masalah dengan.
RK
2

Ketahui OS server Anda, server web Anda (IIS, Apache, apa pun) dan cara mengamankan barang-barang Anda - bahkan jika seseorang melakukan semuanya untuk Anda.

Chad Cooper
sumber
2

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.

Ian Turton
sumber
1

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.

DavidF
sumber