Saya perlu membuat peta web yang menampilkan banyak layer raster. Saya menggunakan mapserver dan ingin menggunakan Openlayers, namun saya tidak dapat menemukan tutorial yang bagus tentang hal itu. Saya melihat beberapa pertanyaan lama ( 1 dan 2 ) mengatakan bahwa tidak ada dokumentasi yang baik. Sudahkah semuanya berubah baru-baru ini?
Saya ingin mencari pengajaran tutorial dari dasar-dasar ke hal-hal yang agak rumit dengan penjelasan yang baik dari kode dan gambar / contoh hasil. Untuk saat ini saya hanya berhasil melakukan peta web paling sederhana dengan file .map saya , tetapi saya perlu menyesuaikannya (tambahkan legenda, lapisan grup, tambahkan lebih banyak kontrol, penyematan, dll).
sumber
Selain jawaban luar biasa di atas, izinkan saya menambahkan pengalaman saya sendiri. Setahun setengah yang lalu saya memutuskan untuk menggunakan OpenLayers (OL) dalam proyek Master saya dan mulai mempelajarinya. Saya telah melakukan pemrograman dan pembuatan peta digital sebagai bagian dari pekerjaan saya sebagai arkeolog sejak awal 1980-an, dan telah menjadi pengguna ArcGIS selama 15 tahun. Saya senang saya memilih OL untuk proyek saya, tetapi itu tidak selalu merupakan jalan yang mulus untuk mempelajarinya. Beberapa hal tidak jelas dan dipelajari hanya dengan coba-coba. Jadi, saya punya beberapa saran untuk pemula.
Perjalanan saya belajar OL benar-benar berjalan ketika saya mendaftar untuk akun rak buku 5-slot di Safari Books Online seharga $ 10 / bulan USD. Saya ingin meninjau buku sebelum membeli, dan beberapa toko yang bisa dikunjungi membawa buku komputer yang berkaitan dengan GIS. Ada tiga buku yang keluar sekarang di OL 2. Buku 58 halaman yang lebih baru yang disebut Instant OpenLayers Starter oleh Di Lorenzo dan Allegri (Apr 2013) adalah awal yang baik, tetapi dua buku pertama dan sampel kodenya (tersedia dari web penerbit situs, bersama dengan bab sampel gratis setiap buku) adalah sumber daya yang baik:
Karena frustrasi sesekali atas kompatibilitas css dan browser, saya akhirnya belajar kerangka kerja JavaScript juga. Saya memilih Dojo karena inilah yang digunakan Perez dalam bukunya. Dojo Modern (Dojo 1.7 +) adalah pendekatan yang sangat berbeda dari versi sebelumnya, menggunakan format Asynchronous Module Definition (AMD). Cara melakukan semuanya berubah. Saya tidak mengerti bahwa buku yang luar biasa ini menggunakan Dojo versi 1.7 yang dibuat usang 9 bulan sebelum buku itu diterbitkan pada Agustus 2012. Esri terus menggunakan pra-1.7 Dojo di JavaScript ArcGIS API mereka hingga dimodernisasi pada Juni 2012 , dan ini adalah saklar yang menyakitkan bagi banyak pengembang Javascript ArcGIS.
Untuk memahami seberapa buruk dukungan Dojo, selain buku yang ditulis pada tahun 2010 tentang Dojo 1.3, sebagian besar buku ditulis pada tahun 2007 dan 2008. Tidak ada buku yang diterbitkan untuk Dojo Modern - Anda harus belajar dari sumber daya online, hampir semua dari yang ada di situs web mereka. Pada dasarnya, untuk bekerja dengan contoh-contoh dalam buku Perez, Anda perlu cukup tahu tentang JavaScript untuk mengabaikan bit Dojo dan memindahkan contoh ke dalam JavaScript biasa atau kerangka kerja pilihan Anda.
Dalam retrospeksi, saya berharap saya pergi dengan kerangka kerja ExtJS dan GeoExt. ExtJS gratis jika proyek Anda bersifat open source, dan karena banyak perusahaan dengan senang hati membayar untuk versi yang didukung, mereka dapat menghabiskan waktu untuk dokumentasi dan tutorial situs web yang komprehensif.
Saya belajar paling baik dengan bekerja dengan / meretas contoh-contoh terpisah. Pengembang di OpenLayers memiliki filosofi yang sama dengan dokumentasi utama yang mereka tuju untuk belajar adalah memeriksa contoh-contohnya. Namun, beberapa contoh OL di situs web mereka dan di tempat lain memiliki masalah yang dapat membuat pemula tersandung. (Lihat di bawah.)
Ketergantungan pada contoh sebagai dokumentasi juga berarti bahwa pengguna tidak memiliki rasa alur kerja yang baik untuk mengembangkan peta web. Hal ini dapat menyebabkan pembuatan peta yang terasa tidak lengkap - misalnya, mereka mungkin kekurangan kustomisasi css ke antarmuka pengguna peta dan "tampilan dan nuansa." Mengganti OL css dengan kustomisasi terasa menakutkan bagi pemula, tetapi Firebug dapat membantu Anda menemukan nama elemen yang harus Anda timpa. Kurangnya rasa alur kerja yang diterima juga dapat mengarah pada penciptaan Frankencode, karena pengguna memilih fitur ke dalam kode mereka saat mereka merasa menginginkannya.
Ini membawa saya ke item terakhir yang saya rasa tidak memiliki dokumentasi situs OL, rasa "praktik terbaik" untuk peta OL. Apakah ada cara yang lebih baik untuk mengatur kode saya untuk membuatnya modular dan kuat? Apa jebakan dengan penutupan JavaScript dan objek OL? Di mana saya harus menyatakan gaya saya? Dan seterusnya.
Selain berbagai file yang sudah ketinggalan zaman di Wiki, ada dua masalah umum yang harus diperhatikan oleh pemula saat belajar dari contoh resmi OL dan dokumen API. Pertama, tidak ada organisasi ke halaman contoh pengembangan OL di situs web OL. Itu hanya menyajikan umpan dari file xml di direktori tersebut (example-list.xml) dari contoh (207 di antaranya pada 13 Februari 2014) dan menyortir baris secara alfabet dengan nama file ke dalam kotak. Contoh yang lebih maju dicampur dengan yang dasar. Anda dapat mencari contoh dengan kata kunci, tetapi banyak contoh tidak memiliki kata kunci dan fitur pencarian termasuk konten dan judul halaman dalam pencarian, bukan hanya kata kunci. Hasilnya dikembalikan dengan jumlah istilah pencarian tertinggi yang cocok pertama diikuti oleh frekuensi kata. Hanya satu dari istilah pencarian yang perlu dicocokkan untuk muncul di hasil. Halaman UserRecipes di OL Wiki mencantumkan sekitar 90 contoh yang disusun berdasarkan kategori, dan kategorisasi ini sangat membantu. Dari jumlah tersebut, 66 adalah tautan langsung ke contoh di halaman contoh dan sisanya adalah tautan buruk ke contoh yang dihapus.
Kedua, pada dasarnya ada dua versi dokumentasi API yang tampaknya sama pada pandangan pertama. API resmi ada di direktori yang disebut / apidocs dan tepi pendarahannya, tetapi perpustakaan pengembang yang tidak stabil berada di direktori yang disebut / docs. URL-nya sama. (Ada juga versi trunk.) Cukup edit alamat halaman untuk melihat versi yang lain. Wiki mencatat bahwa perpustakaan pengembang tidak boleh diandalkan sebagai properti, fungsi, dll. Dapat dihapus dari perpustakaan kapan saja. Dengan OpenLayers 3 yang mendekati kenyataan (ini tersedia dalam versi beta dan ada buku di atasnya sekarang), saya menduga bahwa tidak terlalu banyak akan berubah di OL 2 di masa depan. Fokus sekarang adalah pada OL 3.
Secara umum, saya menemukan halaman API OL terlalu kerangka, sering kurang penjelasan atau contoh ilustrasi, terutama untuk seseorang yang menggunakan perpustakaan dengan dokumentasi API yang lebih lengkap. Cara penyajiannya Anda tidak mendapatkan gambaran yang jelas tentang objek yang diwarisi darinya.
Dari contoh OL di web secara umum, banyak menggunakan objek atau sintaksis yang sudah usang karena telah diganti dengan versi yang ditingkatkan. Misalnya, Layer.Vector sekarang merupakan cara yang lebih disukai untuk menggambar marker karena Layer.Marker tidak digunakan dalam versi 3. Periksa file deprecated.js untuk memastikan Anda tidak menggunakan objek yang sedang keluar. Atau, setidaknya waspada jika Anda memutakhirkan kode Anda ke OL 3 Anda harus mengubahnya.
Selain lokakarya OpenLayers Tanpa Batas yang ditautkan oleh Julien-Samuel Lacroix di atas, IBM memiliki tutorial keren, walaupun berusia tiga tahun, yang menggunakan OpenLayers, MapServer, Google Gears, dan jQuery untuk membangun aplikasi web GIS lengkap: Bawa data bersama dengan OpenLayers : Menggunakan data dari berbagai sumber di peta web
Juga, lihat posting bermanfaat ini tentang menata layer switcher
Google kata-kata OpenLayers dan jsFiddle untuk mendapatkan beberapa contoh OL fiddles. Hasil dari situs techslides adalah daftar halaman yang cukup banyak.
Terakhir, berhati-hatilah karena gambar peta di sebagian besar contoh berasal dari server OpenStreetMap (OSM) dan ini akan turun setiap saat, terencana atau tidak terencana, dan Anda akan mendapatkan ubin merah muda di tempatnya. Terkadang Anda akan berpikir Anda mengacaukan kode Anda. Anda dapat memeriksa status platform pada wiki OpenStreetMap.
sumber
Lihatlah lokakarya OpenLayers Tanpa Batas . Ini mencakup banyak bahan. Lokakarya ini menggunakan GeoServer alih-alih MapServer, tetapi Anda cukup mengubah URL contoh ke layanan WMS MapServer Anda.
sumber
Open Layers adalah paket yang fantastis, sangat fleksibel, tetapi tidak memiliki dokumentasi untuk pemula tetapi memiliki banyak dokumentasi pengembang yang terperinci.
Apa yang saya lakukan ketika pertama kali memulai adalah untuk melihat semua Contoh , memilih yang memiliki fungsi yang saya inginkan, menganalisis kode dan membangun fungsionalitas langkah demi langkah, pengujian saat saya pergi. Saya menemukan bahwa terlalu banyak mencoba fungsionalitas dalam satu pukulan membuatnya lebih sulit untuk memahami konsep dan masalah debug.
Kemudian saya menemukan GIS @ SE yang telah banyak membantu dalam isu-isu spesifik, baik meneliti pertanyaan orang lain atau mengajukan pertanyaan saya sendiri.
Terlepas dari itu, @Julian mungkin telah memberi Anda pilihan terbaik dalam hal tutorial, mereka cukup bagus.
sumber
Sebagai tambahan, halaman ini dari OpenGeo juga berguna bagi saya. Mereka mulai dari dasar-dasar dan memiliki contoh yang baik dari acara GetFeatureInfo dengan menghapus sembulan .
sumber