回答:
この質問はコミュニティWikiおよびwikiロックに変換されました。これは、回答のリストを求める質問の一例であり、閉鎖から保護するのに十分人気があるように見えるためです。これは特別なケースとして扱われるべきであり、これや他のStack Exchangeサイトで推奨されている質問の種類と見なすべきではありませんが、より多くのコンテンツを投稿したい場合は、この回答を編集して自由に投稿してください。
マップサーバーコンポーネントを使用するソリューションと使用しないソリューションを選択できます。サーバーソリューションは、もちろん、より多くのデータとより洗練されたアプリケーションをサポートします。
QGIS がデータの1回限りの視覚化を作成したいことがわかっている場合は、QGIS2LeafまたはOpenLayers 3にエクスポートすることをお勧め します。どちらもQGISのプラグインであり、レイヤーをWebマップにエクスポートできます。更新(Tom Chadwinのコメントに基づく):qgis2leafとqgis-ol3がqgis2webにマージされました。
中道のオプションがあるQGISクラウド、ホスティングされQGIS Serverオプション:あなたは、ローカルのプロジェクトを準備して、あなたは既製のビューアでそれを見つけるウェブに公開します。特定のデータサイズまで無料アカウントがあります。したがって、それが問題になる場合は、独自のサーバーは必要ありません。
独自のオープンソースサーバーを実行する場合は、昨年のFOSS4GのGeoserverの概要:http ://workshops.opengeo.org/geoserver-intro/から始めることができます。通常、関連するツールはGeoserver、PostGIS、およびOpenLayersです。開始コストは、作業時間とホスティングです。
ユースケースを知らずに展開までの時間を見積もることは困難です。
GeoGATE
リンクを探索できます。GeoGATEはPostGISとGeoserverで素晴らしいです。また、ユーザーフレンドリーなコントロールパネルでデータを設定できる既製のツールが何百も含まれています
ペンシルベニア州には、Open Web Mappingクラスがあります。Webマッピングの仕組みと関連するテクノロジーを教えるだけで十分です。すべてではありませんが、クラスで使用されるツールのほとんどは無料であるため、コストは問題になりません。TOCは次のとおりです。
レッスン0:オリエンテーション
レッスン1:オープンWebマッピングの概要
レッスン2:Webマップサーバー(WMS)
レッスン3:Web機能サーバー(WFS)
レッスン4:拡張マークアップ言語(XML)
レッスン5:高度なWebマップサーバー
レッスン6:地理的マークアップ言語(GML)
レッスン7:WFS再訪
レッスン8:Webマッピングアプリケーションの構築
レッスン9:シンカスタムWebマッピングクライアントの構築
楽しんで :)
Google Fusion Tablesは、マッピングと空間クエリで有望です
長所:セットアップが簡単
短所:すべてのデータがGoogleサーバー上にある(良い?悪い?)
http://sites.google.com/site/fusiontablestalks/stories
注:多くのメディア/ニュース会社がそれを使用しています-例のガーディアン英国新聞 http://www.guardian.co.uk/environment/datablog/interactive/2011/mar/07/carbon-emissions-public-buildings-map
すぐに設定できるようにすてきなFusionウィザードがあります http://gmaps-samples.googlecode.com/svn/trunk/fusiontables/fusiontableslayer_builder.html
例:http : //www.latimes.com/news/local/la-me-us-congress-census-map,0,4500533.htmlstory
そこには非常に多くの選択肢があり、すでに多くの素晴らしい答えがあります。ここにリストされていない私のお気に入りの選択肢の2つは、CartoDBとMapBoxです。これらは両方とも、Webベースのホスティングとデータの視覚化、および価格が無料の非常に洗練されたツールを提供します。
データをセットアップするためにデスクトップソフトウェアを使用すると便利です。ArcMapとQuantum GISは、どちらもデスクトップ部分に最適な選択肢です。
MapBoxの強みは、非常に優れた使いやすいテンプレートとすぐに使えるユーザーインターフェイス要素を備えた美しいWebマップを作成できることです。MapBoxには、TileMill(これも無料)というデスクトッププログラムが必要です。これは、CSSと非常によく似たスタイリングインターフェイスを使用します。
CartoDBの強みは、SQL APIを介してPostGISルートを公開することです。
これらは両方とも、単独で、または他のJavaScriptマッピングライブラリ(Leaflet、Google Maps、OpenLayersなど)と組み合わせて使用できます。
どのプラットフォームを使用してWebマッピングを開始することにしたとしても、JavaScriptを学習することで確実に利益を得られます。 Codecademyは、開始するのに最適な場所です(これも無料です!!)。
また、カンファレンスに参加し、OpenLayers、GeoServer、GeoExt、PostGISのスタックであるOpenGeo Suiteを発表しました。「Enterprise Edition」(サポート付きバージョンの有料)または「Community Edition」(無料)バージョンの両方を提供します。(更新)OpenGeo Suiteは現在、Boundless Suiteです。
会議でデモされた別のパッケージは、GeoMooseで、これはMapServerとOpenLayersのスタックです。
OSGEO Live DVDのダウンロードを検討することもできます。これは、テスト中にマシンに大量のものをインストールしたくない場合に、仮想マシン環境で実行できます。Webマッピングツールなど、さまざまなオープンソースGISソフトウェアパッケージがあらかじめパッケージ化されています。
編集
この質問と回答の人気のために、過去数か月にわたるプロバイダーとAPIの変更により、この投稿にいくつかのコンテンツの編集を追加しています。
APIの選択は、実際に特定の機能を使用する場合の予算はもちろん、プロジェクトの範囲と目的に関連しています。もう1つの大きな注意点は、Web開発の経験と、好みの言語や興味のある言語です。
あなたの質問に答える最善の方法は、利用可能なAPIの素晴らしいリストを提供することだと思います。思い浮かぶのは次の3つです。これらは決してすべてではありません!
ArcGIS
API:
長所:
短所:
概要:
ArcGISには、Web GIS製品に提供できるものがたくさんあり、その過程で役立つ多くのリソースがあります。独自のデータを公開する際に発生する可能性のあるコストに注意してください。
グーグル
API:
長所:
短所:
概要:
Googleは市場で強力な名前を持ち、非常に信頼性の高いオンラインサービスを提供しています。使用法の詳細を必ず理解してください。そうすることで、あなたは法的つま先を踏まないでください。新しいPricing and Plansページはその点で非常に役立ちます。
オープンソース
API(すべてのJavaScriptベース):
長所:
短所:
概要:
オープンソースは、Web GISの水域をテストしたい人にとって本当に素晴らしいオプションです。コミュニティでは毎日変更と機能強化が行われているため、オープンソースは地理空間のニーズに対応する安価な方法です。
先ほど言ったように、これはすべての選択肢ではありませんが、少なくとも自分自身や他の人がWeb GISの世界の主要なプレーヤーのいくつかに慣れるためのリンクを掲載した投稿があります。
上記の質問でオープンソースの回答を得たようです。会社に予算がある場合、ESRIは非常に優れたオプションです。明確にするために、WebマッピングAPI自体は無料で使用できますが、バックエンドのArcGIS ServerとSDEには費用がかかります。さらに、Webマッピングアプリケーションで使用するマップサービスを作成するには、デスクトップソフトウェアが必要になります。これらのリソースに既にアクセスできる場合、または購入できる場合は、ESRIソリューションを検討することをお勧めします。
ここでの利点の1つは、さまざまな言語でコーディングできることです。FlexおよびSilverlightにはESRI固有のAPIがあります。
Flex:http : //help.arcgis.com/en/webapi/flex/index.html Silverlight:http : //help.arcgis.com/en/webapi/silverlight/index.html
現在、Webプログラミングの傾向は、プラグインを必要とするベンダー固有(上記)のソリューションから、よりオープンソースおよび標準ベースのフレームワークに移行しているようです。ESRIはこれをJavascript APIでカバーしています。
Javascript:http : //help.arcgis.com/en/webapi/javascript/arcgis/
これらのAPI Webサイトを見ると、ドキュメントは非常に優れています。さらに、特定の問題に関するコミュニティヘルプのフォーラムを利用できます。ESRIによる技術サポートも非常に優れています。したがって、価格とリソースに依存します。すでにこれらのアプリケーションを持っているか、予算がある場合、これは優れた方法ですが、上記のオープンソースソリューションを検討する価値はありません。
1年ほど前に上司に見せるために実行可能性調査のために何かのプロトタイプを作成したい場合、1年ほど前に私がやらなければならなかったことですが、バックエンドには、シンプルなシェープファイル。フロントエンドの場合、OpenLayersはWebサイトに多数のサンプルがある素晴らしい選択肢です。私は決してWebプログラマーではありませんが、javascriptサンプルのコピー/貼り付け/微調整は簡単です。これらすべてをVirtualBox VMに配置して、すべてを1か所に保持し、UbuntuGISリポジトリのパッケージを使用して、通常の開発環境を壊さないようにします。
本番用には、ユースケースに依存するものがたくさんあります。私にとって、最終的にはMapserverを使いました。これはGeoserverほど肥大化しておらず、lighttpd Webサーバーでfast-cgiプロセスとして実行されているためです。WFS-T(Geoserverはすぐにサポート)が必要でしたが、Mapserverは必要ないため、tinyowsを使用しました。また、Mapserverがサポートするカバレッジ(WCS)も提供しています。また、WCS-TサポートのためにRasdamanを統合することを検討しています。これはすべてPostGISデータベースによって支えられています。
アプリケーションをバックエンド、ミドルエンド、フロントエンドに分割し、各ソフトウェアの長所と短所を読むことをお勧めします。レイヤーごとにいくつかの解決策しかありませんが、それは組み合わせで増加します。
ESRIはこれらすべてを実行できる製品を製造すると考えていますが、これには費用がかかります。時間に余裕がある場合は、商業ルートが道のりかもしれませんが、オープンソースルートは非常に刺激的な方向に向かっており、ESRIが思い付くものをすべて追い越すと思われます。しかし、その後、私は偏ったFOSSファンボイです:)
MangoMap www.mangomap.comをご覧ください。
使用可能なツールを使用して、必要なマップを作成できるはずです。
ホストされ、無料であるため、展開に必要な時間と労力はほとんど必要ありません。
あなたの提案する機能について、私はあなたのニーズを満たす最も簡単でインストールしやすいスタックを見ていきます。「素早く、パワフル、または安価にできます。2つ選択してください。」というソフトウェア。ここで間違いなく適用されます。
機能の識別などの単純なクエリの実行のみを計画している場合、PostGISのパワーは過剰になりそうです。シェープファイルをデータストアとしてGeoServerに直接アップロードする方がはるかに簡単です。
OpenLayersをは再び偉大であり、そのようなWGS84やWebメルカトル以外の座標系のサポートなどの機能の多くを持っていますが、その機能を利用するつもりはないならば、私が見てしまうリーフレット、私の経験では、それははるかに少ないがあります新規ユーザー向けの急な学習曲線。
また、自分のサーバーでアプリをホストする必要があるという要件がない場合は、ホストされているオプションのいくつかを調べて、投資の時間からさらに多くを取り戻すことができます。MangoMapまたはGeoCommonsを使用すると、1行のコードを記述することなく、ユーザーにとって優れたマップが作成される可能性があります。
これが何らかのコードを書きたいプロジェクトである場合、CartoDBとMapBoxを見ることができます。これらのホストされたプラットフォームのすべてについて詳しく知りたい場合は、 1つを選択するために必要なすべての詳細を提供する主題に関する無料の電子書籍を書きました。
開示:私はMangoMapの創設者です
Webマップを開発するときに開始する場所はたくさんあります。
Web開発者としての経験がある場合は、Webで地図を公開できるさまざまなサービスを調査することから始めてください。あり、他の 質問あなたに利用可能なプラットフォーム間の相違点に関する貴重な洞察を与えるだろう、このサイト上でここに答えが。
新たに始めて、特定のプラットフォームにコミットしたくない場合は、ビジネス要件に対処してください。マップにデータをどのように描画しますか?データはどのように更新されますか?このサイトを使用するのは誰ですか?彼らはそれで何をしますか?これらの決定を早期に行うことで、ピースを組み立てたり、目標に向かって拡大するのをサポートする選択をしたりするのに役立ちます。
コストについては...「良い、速い、安い。2つ選んでください」という現代のことわざを借りることを好みます。これは、プロジェクト管理の三角形として正式に定義されており、品質をもたらすためのコスト、スケジューリング、範囲のバランスを説明しています。
私も、データベース側で何年もの間、Webマッピングの旅を始めました。
私が本当に助けたのは、MapInfoにMapBasicを使用して(またはesriの群衆にPythonを想定している)基本的なプログラミングの原則を学ぶことで、コンピューターがどのように「考える」かを理解するのに役立ちました。
そこからCodeAcademyは天の恵みでした。プログラミングを学ぶための本当に楽しく直感的な方法です。「Hello World」の例から、完全に機能的でインタラクティブなプログラムに至るまでのすべての方法を紹介しています。学習曲線は緩やかであり、一部の人はこのようなものに恵まれているが、他の人(私のような)はそうではないことを理解しています。
2つ目のアドバイスは、GeoServerをインストールし、デモリクエストを見て、Webサービスの構造と動作を確認することです。レイヤーのプレビューを見て、JavascriptとHTMLがどのように連携するかを確認してください。そのレイヤープレビューコードを文字通りコピーして(ページソースを表示)、どこかに保存して、いじくりまわすことができます。
W3 schools-駆け出しのコードで遊んで適応できるインタラクティブなサンプルがあります。JavaScriptを決定する場合、JS Fiddleも非常に優れています。
Javaプログラマーの方は、Geomajasをご覧ください。
数分で始めることができるMavenアーキタイプがあります(こちらを参照)。その後、追加のレイヤーなどを追加できます。
クライアント側でOpenLayersを使用できます。安定しており、簡単で、WFS(PostgreSQLに接続する場合)などを使用する方法の例がたくさんありました。ジオサーバー、OSMはレンダリングに使用します。
あなたも見持つことができますGeoExt提供のExtJSのマップを構築するためのウィジェットを。繰り返しになりますが、geoextはOpenLayersを使用してマップをレンダリングします。
GeoMooseやCartoWebなどのMapServer(OpenLayersはすでにサポートしています)を使用するPHPベースのフレームワークもあります。
デフォルトのテンプレートを持つMapScriptバインディングのphpフレームワークとは異なり、Webページのデザイン全体を決定できるため、OpenLayersに投票します。このような大きなコードベースを管理するのは簡単ではないことがわかりました。
Webマッピングを含むほとんどのWeb開発に必要な3つのスキルは、html、css、およびjavascriptです。これらの言語を学ぶためのリソースは十分です。Webマッピングアプリケーションの開発方法の学習を開始する場所のトピックは、GISスタック交換の質問「Webマッピングの開始方法」でかなり詳しく説明されています。
プログラミングの経験が限られている場合、Webマッピングアプリケーションの開発を検討するためのリソースの1つにmapboxがあります。コーディングなしでWebマップを作成できますが、javascriptやpythonなどのスクリプト言語を使用せずに、例で使用するものと同じくらい複雑でインタラクティブなWebマップを作成するのは難しいと思います。
私はqgis + qgis2leafletプラグインを使用する最も簡単な方法だと思います。リーフレットにエクスポートしてWebサーバーにアップロードする以外に、qgisで必要なものを編集できます。または、次の方法よりも興味深い方法を選択した場合:
geoexplorerの代わりに、私はリーフレットjavascriptを使用します。見栄えが良く、よりスムーズに実行されるからです...しかし、いくつかのコードをコピー/貼り付けするには時間がかかります。次に例を示します。http://gis.xyz
注意すべき重要なことは、Web-Gisは広大な分野であり、この取り組みを支援するためにいくつかのプロジェクトとライブラリで既に多くの作業が行われていることです。したがって、ゼロから始めるのではなく、再利用できるものがあるかどうかを確認する必要があります。
悪いニュースは、PHPでWebマッピングするための一般的なライブラリ/アプリケーションがないことです。良いニュースは、あなたはそれを必要としないかもしれないということです。
最初にWebMappingを理解し、既存のプロジェクトとライブラリを理解することをお勧めします。これについては、次の質問を参照できます。
使用可能なオプションを理解したら、要件を明確にする必要があります。あなたの質問を見ると、非常に基本的な要件があります。地図上にパーセルを表示する、クエリを許可する、パーセルの属性を取得し、クエリの結果、またはユーザーがクリックしたときにユーザーに表示します。
この種の作業はGoogle Mapsを使用して可能ですが、大量のデータがある場合はGoogle Maps APIを使用するのが苦痛なので、お勧めしません。
JavaScriptを使用できる場合は、代わりにGeoserver / OpenLayersソリューションを使用することをお勧めします。データがすべて機能の属性に含まれている場合、PHPコードさえ必要ないかもしれません。
LeafletとOpenLayersを決定する前に、クリーンアップされたAPIとより良いドキュメントを約束する次のバージョンを見てみる価値があります。
OpenLayers 3はライブラリの包括的な書き直しであり、最新のHTML5およびCSS3機能を対象としています。ライブラリは、OpenLayers 2.xからの投影、標準プロトコル、および編集機能を引き続き幅広くサポートします。このライブラリの新しいバージョンでは、パフォーマンスの向上、ビルドの軽量化、きれいなビジュアルコンポーネント、改善されたAPIなどに重点が置かれます。主なハイライトは次のとおりです。
------8 <------新しいコードベース:これは、OpenLayersで物事を行う「不格好な」方法のいくつかを整理する機会を提供します。チームはまた、すべての人がよりアクセスしやすい新しいAPIデザインを作成します。
高品質のドキュメント:新しいリリースには、OpenLayers 3.0の新しいサンプルとデフォルトデザインを含むドキュメントも含まれます。ツールキットを際立たせることは、実際のコード以上のものです。
私はGoogle Maps APIから始めます。無料で簡単に操作できます。Javascriptを使用します。これは、多くの優れたリソースから学習できます。JSを初めて使用する場合は、Codecademyをお勧めします。
さまざまな方法(KML、データベース、GeoRSSなど)でGoogleマップに組み込むことができる無料のデータソースが数多くあります。ほとんどの州と多くの大学には、地図に組み込むことができる無料のデータストアがあります。
Googleマップの例でお気に入りのサイトの1つは、Googleマップマニアです。このAPIで可能なことを示す優れたマップ例があります。
GeoPHPは一見の価値があります。
GeoPHPは、ジオメトリ操作を行うためのオープンソースのネイティブPHPライブラリです。完全にPHPで記述されているため、共有ホストで実行できます。WKT(EWKTを含む)、WKB(EWKBを含む)、GeoJSON、KML、GPX、GeoRSSなど、さまざまな形式を読み書きできます。これは、すべてのSimple-Featureジオメトリ(Point、LineString、Polygon、GeometryCollectionなど)で機能し、重心、境界ボックス、面積、その他のさまざまな有用な情報を取得するために使用できます。
また、GEOS拡張機能を使用してノッチを取得できます(GEOSをインストールするための管理者権限がある場合)。
GEOSを使用すると、Union、IsWithin、TouchesなどのopenGIS関数のフルセットをPHPで取得できます。これは、アプリケーションがすべての環境で動作する便利な「コアセット」のジオメトリ操作と「拡張セット」 GEOSがインストールされている環境の操作。
さて、カスタムPHPスクリプトは、より堅牢な(そして単純な)ソリューションになる可能性があります。結局のところ、空間データはデータベース内の単なる行であり、通常どおりクエリを実行できます。重いサーバーGISソフトウェアや恐ろしいOGCフィルター構文は必要ありません。私があなたの靴を履いているなら、PostGIS拡張機能を備えたPostgreSQLデータベースにデータを保存し、PHPバックエンドを記述してデータベースを照会し、GeoJSON形式でデータを取得します(この要点をご覧ください)。 OpenLayers-Google Maps APIよりも柔軟性がありますが、必要に応じてGoogleベースマップを使用できます。
選択するヘルプについては、ArcGIS Onlineの代替の質問と、地理情報の知識を拡大するのに最も役立つ書籍、ジャーナル、電子リソースは何ですか?リソースを学習するための質問。
Webマッピングコストには、ホスティング(Webサイトへの支払い)とサーバーストレージスペースが含まれます(マッピングサービスを使用している場合は、月ごとのMapBox料金とCartoDB料金をご覧ください)。最終的に、Web開発を知ることは、マップを作成するために非常に重要になります。
さて、使用できるマッピングライブラリがいくつかあります。
最初の(そしておそらく最もよく知られている)はGoogle Maps APIでしょうが、Webマッピングが比較的初心者の場合、これはかなり複雑になると思います。
Leaflet.jsまたはMapbox.jsをご覧になることをお勧めします。Mapbox.jsはLeafletを念頭に置いて構築されており、MapboxにはMapbox.jsで実行できるさまざまなタスクに関する優れたチュートリアルがあります。リーフレットには、いくつかの例とリソースもあります。
以下は、正しい方向に導くのに役立つ例への特定のリンクです。
国をクリックして地図を表示する必要がある場合は、画像ポップアップが表示されます。外部データへのリンクのMapboxの例をご覧ください
プロジェクトのJSFiddleでコードがどのように相互作用するかを学ぶことができます
Mapboxのドキュメントがさらに必要な場合は、Mapboxガイドを読むか、Examplesセクションを使用してコードをもう少し掘り下げることができます。
私は新しいウェブマッパーであり、スコットマレーのWeb用データ視覚化を紹介されました。彼の電子書籍はここで読むことができます:http://chimera.labs.oreilly.com/books/1230000000345/無料。「非コーダー」用であり、非常に有益であり、多くの実践的な例があります。
UMN Map Serverを使用できます。そこで、PHPスクリプト(マップスクリプトと呼ばれます)を使用できます。これはApacheサーバーに基づいています。データベースが必要な場合は、MySQLを空間拡張で使用するか、PostgreSQLをpostGISで使用できます...