回答:
他の人が優れたオンラインチュートリアルを提案していますが、OpenLayersで非常に必要な強力な基盤を与えてくれた本について教えてください。
本は次のとおりです。ErikHazzardのOpenLayers 2.10初心者向けガイド。Packt Publishersから入手できます。
この本は図書館のすべての主要な部分を扱っているため、強くお勧めします。基本から始まり、APIの複雑な部分に向かって徐々に成長するのに役立ちます。
上記の優れた答えに加えて、私自身の経験を追加させてください。1年半前に、私はマスターのプロジェクトでOpenLayers(OL)を使用したいと決め、それを学ぶために着手しました。私は1980年代初頭から考古学者としての仕事の一部としてプログラミングとデジタルマップ作成を行っており、ArcGISユーザーとして15年間働いています。私は自分のプロジェクトにOLを選択したことを嬉しく思いますが、それを習得するのが常にスムーズな道であるとは限りませんでした。いくつかのことは明白ではなく、試行錯誤によってのみ学習されました。だから、私は初心者向けのアドバイスがあります。
OLの学習の旅は、Safari Books Onlineで5スロットの本棚アカウントに月額10ドルでサインアップすると、本当にうまくいきました。購入する前に本をレビューしたかったのですが、GIS関連のコンピューターの本を持って行くことができる店はほとんどありませんでした。OL 2には現在3冊の本があります。DiLorenzoとAllegriによるInstant OpenLayers Starter(2013年4月)と呼ばれる新しい58ページの本は良いクイックスタートですが、最初の2冊の本とそのコードサンプル(出版社のWebから入手可能)サイト、および各書籍の無料サンプル章)は、優れたリソースでした。
CSSとブラウザーの互換性に対する不満が時々あるため、私もJavaScriptフレームワークを学習することになりました。Doezを選んだのは、これがPerezが彼の本で使用したものだからです。Modern Dojo(Dojo 1.7 +)は、非同期モジュール定義(AMD)形式を使用する以前のバージョンとは大幅に異なるアプローチです。すべてを行う方法が変わりました。この優れた本は、2012年8月に出版される9か月前に廃止されたDojoの1.7より前のバージョンを使用することを理解していませんでした。Esriは、2012年6月にモダナイズするまで、JavaScript ArcGIS APIで1.7より前のDojoを使用し続けました、これは多くのArcGIS Javascript開発者にとって苦痛なスイッチでした。
Dojoのサポートがどれほど不十分かを理解するために、2010年にDojo 1.3について書かれた本以外に、ほとんどの本は2007年と2008年に書かれました。ウェブサイトにあります。基本的に、Perezの本のサンプルを使用するには、Dojoビットを無視し、サンプルをプレーンJavaScriptまたは選択したフレームワークに移動するためにJavaScriptについて十分に知る必要があります。
振り返ってみると、ExtJSフレームワークとGeoExtを使用していたと思います。プロジェクトがオープンソースの場合、ExtJSは無料です。多くの企業はサポートされているバージョンに喜んで料金を支払っているため、包括的なWebサイトのドキュメントとチュートリアルに時間を費やすことができます。
例を使って作業する/ハッキングするのが一番いいです。OpenLayersの開発者は、学習のために指し示す主要なドキュメントが例を調べることと同じ哲学を持っています。ただし、Webサイトや他の場所にある一部のOLの例には、初心者をつまずかせる問題があります。(下記参照。)
ドキュメントとしての例への依存は、ユーザーがWebマップを開発するための良いワークフローの感覚を持っていないことも意味します。これにより、マップが不完全に感じることがあります。たとえば、マップのユーザーインターフェイスと「ルックアンドフィール」に対するCSSのカスタマイズが欠けている場合があります。カスタマイズでOL cssをオーバーライドするのは初心者にとっては気が遠くなるでしょうが、Firebugはオーバーライドする必要のある要素名を見つけるのに役立ちます。受け入れられたワークフローの感覚の欠如は、フランケンコードの作成につながる可能性があります。ユーザーは、必要に応じてコードに機能を追加することができます。
これは、OLサイトのドキュメントに欠けていると感じる最後の項目、つまりOLマップの「ベストプラクティス」につながります。コードをモジュール化して堅牢にするためのより良い方法はありますか?JavaScriptクロージャーとOLオブジェクトの落とし穴は何ですか?スタイルをどこで宣言すればよいですか?等々。
Wikiのさまざまな古くなったファイルの他に、公式のOLの例とAPIドキュメントから学ぶときに初心者が知っておくべき一般的な問題が2つあります。まず、OL WebサイトのOL開発サンプルのページには組織がありません。サンプルのディレクトリ(example-list.xml)のxmlファイル(2014年2月13日時点のこれらの207)からのフィードを単に表示し、ファイル名でアルファベット順に行をグリッドにソートします。より高度な例は、基本的な例と混在しています。キーワードでサンプルを検索できますが、多くのサンプルにはキーワードがなく、検索機能にはキーワードだけでなくコンテンツとページタイトルが含まれています。結果は、最初に一致した検索語の最大数で返され、その後に単語の頻度が続きます。結果に表示するために一致する必要があるのは1つの検索語のみです。OL WikiのUserRecipesページには、カテゴリごとに整理された約90の例がリストされており、この分類は役立ちます。これらのうち、66はサンプルページのサンプルへのライブリンクであり、残りは削除されたサンプルへの不適切なリンクです。
第二に、一見同じように見えるAPIドキュメントの2つのバージョンが基本的にあります。公式APIは/ apidocsというディレクトリにあり、最先端ですが、不安定な開発者ライブラリは/ docsというディレクトリにあります。それ以外のURLは同じです。(トランクバージョンもあります。)ページのアドレスを編集するだけで、他のバージョンが表示されます。Wikiは、プロパティ、関数などがライブラリからいつでも削除される可能性があるため、開発者ライブラリに依存するべきではないと指摘しています。OpenLayers 3が現実に近づいているので(ベータ版が利用可能になり、現在書籍が出版されています)、OL 2で今後あまり変更されないと思われます。現在の焦点はOL 3です。
一般的に、OL APIページは非常に骨格的で、特にAPIドキュメントがより充実しているライブラリを使用する人にとっては、説明や例が欠けていることがよくあります。提示された方法では、継承元のオブジェクトの明確な画像を取得できません。
一般的なWeb上のOLの例の多くは、改良されたバージョンに置き換えられたため、廃止されたオブジェクトまたは構文を使用しています。たとえば、Layer.Markerはバージョン3で非推奨になったため、Layer.Vectorがマーカーを描画するための推奨される方法になりました。deprecated.jsファイルを調べて、途中のオブジェクトを使用していないことを確認します。または、少なくともコードをOL 3にアップグレードする場合は、これを変更する必要があることに注意してください。
上記のJulien-Samuel LacroixによってリンクされたBoundless OpenLayersワークショップに加えて、IBMは3年前ですが、OpenLayers、MapServer、Google Gears、およびjQueryを使用して完全なGIS Webアプリを構築するクールなチュートリアルを提供しています:OpenLayersとデータを統合する:Webマップで複数の異なるソースからのデータを使用する
また、レイヤースイッチャーのスタイリングに関するこの便利な投稿もご覧ください。
GoogleでOpenLayersとjsFiddleの言葉を使用して、OLフィドルの例を入手します。techslidesサイトからの結果は、これらのかなりの数をリストするページです。
最後に、ほとんどの例のマップ画像はOpenStreetMap(OSM)サーバーからのものであり、これらは時々計画または計画外でダウンし、代わりにピンクのタイルが表示されることに注意してください。時々、コードを台無しにしたと思うでしょう。プラットフォームのステータスは、OpenStreetMap wikiで確認できます。
Boundless OpenLayersワークショップをご覧ください。多くの資料を網羅しています。ワークショップではMapServerの代わりにGeoServerを使用していますが、サンプルのURLをMapServer WMSサービスに変更するだけです。
Open Layersは信じられないほど柔軟な素晴らしいパッケージですが、初心者向けのドキュメントはありませんが、詳細な開発者向けドキュメントがたくさんあります。
私が最初に始めたときにしたことは、すべての例を見て、必要な機能を備えたものを選択し、コードを分析して機能を段階的に構築し、行ったとおりにテストすることでした。1回のヒットで機能を使いすぎると、概念やデバッグの問題を理解しにくくなることがわかりました。
次に、他の人の質問を調査したり、自分で質問したりすることで、特定の問題に大きな助けとなっているGIS @ SEを見つけました。
それとは別に、@ Julianはおそらくあなたにチュートリアルの面で最良のオプションを与えましたが、それらは非常に優れています。
言うまでもなく、OpenGeoのこのページは私にとっても役に立ちました。基本から始まり、ポップアップを削除するGetFeatureInfoイベントの良い例があります。