Tutorial untuk OpenLayers? [Tutup]

12

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).

nadya
sumber

Jawaban:

7

Sementara yang lain menyarankan tutorial online yang bagus, izinkan saya memberi tahu Anda tentang buku yang memberi saya fondasi kuat yang sangat dibutuhkan dalam OpenLayers.

Buku itu adalah: OpenLayers 2.10 Panduan untuk Pemula Erik Hazzard. Ini tersedia dari Packt Publishers.

Saya akan sangat merekomendasikan buku ini, karena berkaitan dengan semua bagian utama dari Perpustakaan. Itu dimulai dari dasar-dasar, dan perlahan membantu Anda tumbuh menuju bagian rumit dari API.

Devdatta Tengshe
sumber
2
Ini tersedia sebagai E-Book dari sini untuk £ 14,44 terlihat sangat baik.
Mark Cupitt
Harga tergantung pada negara dari mana Anda mengaksesnya. Ini menunjukkan kepada saya harga yang sekitar $ 3;
Devdatta Tengshe
Wow, saya kira di filipina kita akan dihukum. harus membuat Anda membelinya untuk saya :-)
Mark Cupitt
Terima kasih atas sarannya, baru saja mendapatkan buku dari seorang teman, mari kita lihat ...
nadya
tidak bisakah Anda menggunakan sesuatu seperti PirateBrowser untuk menyembunyikan negara Anda dan membelinya dengan harga terendah?
Di bawah Radar
13

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:

  • OpenLayers 2.10: Panduan Pemula oleh Erik Hazzard (Maret 2011)
  • OpenLayers Cookbook oleh Antonio Santiago Perez (Agustus 2012)

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.

Leta Rogers
sumber
2
Ini adalah jawaban terinci yang bagus. Sayang sekali kami tidak memiliki banyak jawaban semacam ini di situs.
Devdatta Tengshe
Leta, terima kasih atas jawabannya! Sekarang saya berkelahi dengan GeoExt (dan ExtJS), dan memiliki lebih banyak masalah dengan tutorial daripada OL, contoh-contoh mereka terlihat sangat seperti ini :)
nadya
6

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.

Julien-Samuel Lacroix
sumber
4

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.

Mark Cupitt
sumber
Terima kasih atas jawabannya, saya sudah melihat contoh-contoh ini tetapi tidak dapat menemukan apa yang saya butuhkan. Jadi saya harus kode ...
nadya
2

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 .

nadya
sumber