Web GIS開発スキルセット[終了]


12

Web GIS開発の学習/取得を希望する技術とスキルセットは何ですか?

回答ごとに1つのスキル/テクノロジーを入力してください。


4
幅広い質問について話してください...特定のソフトウェアスタックに絞り込めますか?エスリ?FOSS?Google /ポイントデータマッシュアップをお探しですか?
デレクスウィングリー

私の悪い。ESRIまたはFOSS、両方を持つことは不可能ですか?ポイントマッシュアップよりも複雑なものを期待しています。このようなことをするのに十分なスキル。opengeohost.com/maps/stlawrence
RK

1
いい質問ですね。回答ごとに1つのスキルを持ちましょう。
アダムMatan

ありがとう。いい案。それを質問に投稿すべきですか?質問が広範であるかもしれないことに気づきました。コミュニティWikiの方が良いでしょうか?
RK

回答:


17

地理分析を行うためにGIS製品を使用しようとする単純な地理学者として始まった私の経験についてお話しできます。

私が言ったように、私は地理学者であり、大学の初めからGISをユーザーとして使い始めました。その後、私はよくしなければならない退屈なタスクを自動化する方法について研究し始めました。それは情熱であり、3、3年後、私は多国籍ソフトウェア会社に雇われ、多くのGISシステムと連携してカスタムソリューションを開発しています。

私の手順は次のとおりです

  • GISをよく学びます。基本的な権利を持たずにプログラミングの学習を始めないでください。投影と変換、空間解析、ラスターモデルとベクターモデルの違いなど。

  • データベースの基礎を学ぶ:はじめにデータベースシステムにデータベースシステムの基礎。2冊の本は少し異なります。前者は理論に重く、後者はより実用的なアプローチを取ります。

  • SQLを学ぶ。これは実際には最初の部分です。「sqlish」な方法で考え始める場合、それはあなたを大いに助けます。ベンダーからベンダーへのSQLの変更。PostgreSQLをお勧めします。PostgreSQLは、標準に最も準拠しているベンダーです。特定の方言を学ぶ必要がある場合は、後で実際に必要なときに行います。

  • オブジェクト指向プログラミング。難しいように思えますが、基本を理解すれば非常に簡単です。簡単な言語を選択してください。Pythonは断然簡単です。Pythonの学習は優れた出発点です。Dive into Pythonのようなオープンソース/無料のPython本があります。Pythonの後、興味深い選択肢は.NET、Java、およびC / C ++です。

  • プログラミングを学びます。コードを読み取り、コードを記述します。地理空間コードを読み取ります。書く地理空間コードを。古典的なAPI:GEOS、JTS、GDAL、ArcObjects(ESRIファンの場合-そして市場で大きなプラスになる)などを研究してください。

    -地理空間の問題を取り上げ、それを解決するコードを記述します。これがどれほど便利かは強調できません。これはあなたを夢中にさせますが、プログラミングの側面を学んだことを確認し、地理空間スキルが最新であることを確認するのに非常に良い方法です。私の場合、交通事故をジオコードする小さなPostgreSQLアプリケーションを作成しました。

  • 勉強を続けてください。ここでは、OGC標準が最適です。


4

データベースに関するあなたのやり方を知ってください。すべてのGIS開発者はそれらを広範囲に使用します。

最も注目すべきは:

  • DBMSリレーショナルモデル。これらのテーマは、データストレージの基本を理解するために重要です。
  • 少なくとも1つのGIS DBソリューション。私はPostGISを好むが、他のソリューションも存在する
  • SQLおよびGIS SQLの十分な知識:データを効率的に抽出、挿入、ソート、および操作する方法。
  • 従来のDBのトレードオフ:さまざまな操作がメモリ、ディスク容量、CPU、ネットワーク使用率にどのように影響するか。
  • インデックス作成。これは、初心者の間で最も一般的なDB Lacunaであるため、別の箇条書きとしては十分に重要です。
  • クラスタリングとスケーラビリティに関するいくつかの知識。
  • NOSQLの基本的な知識。

データベースを使用していない場合でも、データを使用しています。一般的に、SQL(またはその従兄弟の1つ)を使用してデータを照会することは安全です。
mwalker

上記はすべて知っておくと良いことですが、WEB開発に関してはリストのトップですか?
サイモン

CQLはどうですか?それも必要ですか?
RK

1
@simon-不十分なDB機能は、GIS開発者の間で最も一般的な問題の1つです。私見は、(HTML / CSS、JavaScript、マップレンダリングとともに)最も重要なスキルの1つです。@rk-CQL?
アダムマタン

共通クエリ言語?GeoServerでの作業中に一度遭遇しました。
RK

3

既にGISの側面(地図作成の原理など)をカバーしていると仮定して、まずhttp://www.w3schools.com/にアクセス します-HTML、Javascript、XMLなどのチュートリアルを実行します

次に、選択できるプラットフォームがいくつかあります。私は、ESRIに偏っ少しだ、と私は約遊んでオフに開始推薦のAPI http://resources.arcgis.com/content/web/web-apis -コンセプト/サンプルを通じて実行すると、あなたの本当の意味を与えるもの達成できます。
コードサンプルをダウンロードし、リバースエンジニアリングして独自のサービス(ArcGIS Serverのインスタンスがある場合、ESRIサンプルサーバーを使用できる場合)を学習するのは良い方法です。

また、多数のビデオがあります。この 推奨開発会議ビデオをご覧ください。JavaScript向けArcGIS APIの概要、効果的なマップサービスの設計のベストプラクティス、Web用デスクトップアプリケーションの再設計、ArcGIS Server REST APIの使用。

どのWebプラットフォームを選択しますか? これは段階的に廃止されるため、WebADF(Java / NET)を見ることは無視します。

クライアントは誰ですか?どのブラウザを使用しますか?SilverlightまたはFlashプラグインをインストールできますか?開発するIDEがありますか?たとえば、FlexはFlashBuilder($$)で最適ですが、オープンソースの代替手段であるFlashDevelopを使用することもできます。

確立された技術や新しい技術に慣れていますか?リスクを量ります。
-.NET / Javaは古くから存在します-SilverlightとFlexはかなり新しく、HTML 5がこれらのプラットフォームを一掃するかどうかについていくつかの議論があります

SilverlightとFlexの両方には、すぐに使用できる対話機能があります。JavascriptがDojo.Frameworkに依存することでこのギャップを埋めているためです。

Web ADFとWeb APIの機能の大きな違いは、ArcGIS Web APIが完全にクライアント側であるという事実です。

私は他の誰かにあまりESRI固有の答えを与えませんが、明らかな選択はGoogle Maps APIで遊び始めることです -これを学ぶための多くのリソース/チュートリアルがあります。


ワオ。概要をありがとう:DIはFOSSに少し傾いていますが、私は第三世界の国にいて、ESRI製品はほとんどの人の手の届かないところにあります。
RK

ArcGIS(および他の多くの)Web APIは、ほとんどの処理をクライアント側で行いますが、公開されたサービスやサーバー側の処理に大きく依存しています。そのため、既存のリソース(ジオプロセシングなど)のアセンブルをはるかに超えて行う場合は、サーバー側のテクノロジーを調査するか、クライアント側でそれを行う方法を理解するために大規模な調査を行う必要があります。
mwalker

了解しました。現在開いているジオスタックを調査しています。
RK

3

Javascript、HTML DOM、CSS、HTTP

これらをマスターすれば、ウェブ上で何でもできます。SVGのような素敵なAPIを追加することで簡単になり、Webアプリケーションがより便利になるかもしれませんが、IMOでは上記の4つをうまく回避することはできません。


Javascript、HTML DOM、CSS、HTTPそれらを学ぶべき特定の順序はありますか?:)
RK

2
次の順序をお勧めします。HTML、CSS、HTTP、DOM、JavaScript、さらにサーバー側スクリプト用のPHPまたはPython / Ruby。
暗闇

3

空間DBとマップサーバー(ここの他の回答で説明)を整理し、HTML、CSS、およびJavaScriptの知識を磨いたと仮定すると、ユーザーのWebブラウザー内でマップコンポーネントを消費して表示するクライアントライブラリをいじり始める可能性があります。

OpenLayersは、これまでで最も参照され使用されているライブラリのようです。非常に優れたドキュメントと例があり、ここにいくつかのチュートリアルがあります。BostonGISページは、OpenLayersのものだけでなく、ここでも役立ちます。

Python MapFishの知識/学習意欲にもよりますが、非常に優雅なソリューションです。または、GeoDjangoに飛び込むこともできますが、このソリューションについては私自身あまりコメントできません。

または、OSGeoの Webマッピングソリューションを確認したり、Flashを使用したり、ESRI Web APIなどの商用のものを使用したりできます


3

私は、空間DBとSQLが出発点であるべきだとAdamに同意します。

その後、将来のWeb ジオスタックの 2番目の層を調べる価値があります。空間DBからユーザーのブラウザーでクライアントにデータを「提供」するブリッジとして機能するものが必要になります。

WFSおよびWMSの概念を必ず理解してください。

独自のサーバーでローカルにインストールしてプレイを開始します。Open Source Geospatial Foundationが採用している2つの有名なプロジェクトは、GeoServerMapServerです。 QGISマップサーバーも一見の価値があります。ArcGISサーバーは、ここでは[高価な!]商業的に同等です。

この部分を整理したら、クライアントライブラリで遊ぶことができます。


2

Mapnikまたはマップタイルを作成するためのその他のマップレンダリングツール。

ほとんどのGIS Web開発者は、マップレンダリングツールを使用するか、少なくともレイヤーとタイルの基本概念を理解する必要があります。


ありがとう。レイヤーとタイルはうまく理解できていると思います。それは私が問題を抱えているレンダリング部分です。
RK

2

サーバーOS、Webサーバー(IIS、Apacheなど)と、ユーザーの安全を確保する方法を知ってください-誰かがあなたのためにすべてをしている場合でも。



1

ジョージの最後のコメントの2番目を十分に強調することはできません。関心のある地理空間やWebの問題を選択し、解決するときに必要な技術について学びます。

上記のすべての分野に習熟するために時間をかけると、かゆみを掻き立てるプロジェクトの構築を実際に開始するまでに時間がかかります。

OpenLayersを使用してアプリを構築し、既存のデータサービスからアプリマップデータを構築することから始めることをお勧めします。その後、独自のデータソースまたはサービスの作成に進むことができます。FLOSSテクノロジーに固執すれば、ライセンス費用が問題になることなく、どこでもアプリをビルドして使用できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.