PostGISデータベースのシンプルなフロントエンドを作成する方法は?


21

私の組織は、多くが現在Excelに保存されている多くの環境監視データ(ストリームフロー、水化学など)を収集します。すべてをデータベース(おそらくPostGIS)に入れたいのですが、データベースの原則(SQLなどの知識がない)の知識のない人がデータにアクセスできるようにする必要があります。

ユーザーが関心のある監視ステーション、変数の種類(例えば、硝酸塩濃度)および時間間隔を選択する、データベース用のある種のシンプルなフロントエンドが欲しいです。その後、データベースはcsv形式で要求されたデータを返し、ユーザーはそれをコンピューターにダウンロードできます。理想的な世界では、フロントエンドはすべてのモニタリングステーションのクリック可能なマップを表示しますが、それが簡単な場合は、利用可能なサイトのドロップダウンリストから始めて問題ありません。このフロントエンドはおそらくウェブサイトでしょうが、そうである必要はありません。

これはどれくらい難しいですか、私のさまざまなオプションは何ですか?私は決してデータベースの専門家ではありませんが、デスクトップGISのバックグラウンドはしっかりしており、シンプルなPythonスクリプトを作成し、PostGIS、SpatiaLite、ESRI Personalジオデータベースで遊んで満足しています。Web開発やWeb GISを行ったことはありませんが、学びたいと思っています。

昨日の一部を使って、すばらしいOpenGeoチュートリアルのいくつかを探索しました。このアプローチは有望に見えます。少なくとも、今ではWebサイトにデータを表示する方法を理解できています。私にはあまり知られていないのは、ユーザーがデータベースにクエリを実行して結果を取得する方法です。

私の質問:このようなプロジェクトでは、どのようなソフトウェア構造を考えるべきですか?例えば

PostGIS + GeoServer + Something else?

調査すべき他のオプションはありますか?

シンプルだが機能的なソリューションが最初に好まれます。基本的なプロトタイプをまとめることができれば、それを使用して、「適切に」物事を行う方法を学ぶためにより多くの時間を費やすことを正当化できます。オープンソースも必要条件です。いくつかの利点を証明できるまで、予算がありません。

どうもありがとう!


2
マップを省略した場合、ApacheとPHPだけでこれらすべてを実行できます。PostGISからデータを取得するPHPスクリプト用の入力フォームを1つ作成するだけです。(あなたは、PythonとPHPを置き換えることができます。)...しかし、これはGIS.SEへの質問ではないでしょう
アンダーダーク

回答してくれたすべての人に感謝します!これらはすべて有用な回答であり、フォローアップのためにたくさんのものをくれました。それらすべてを「受け入れ」たいのですが、彼の最後の段落が非常に有用であり、web.pyに出会ったことがないので、@ canisrufusにポイントを与えました。GeoDangoも素晴らしいですね。乾杯!
JamesS

@jamesS私は最後の段落を拡張するつもりでしたが、それは不当に話題から外れているように見えました。質問がある場合、またはセットアップ方法についての長い独白が必要な場合は、こちらのチャットでお問い合わせください。
-canisrufus

@JamesSそれについて何か進展はありますか?同じトピックに取り組んで、私はDjangoプロジェクトの開発を開始しました
Luca Moiana

こんにちは@Luca Moiana。プロトタイプとして、web.py、Apache、PostGISを使用して、以下の受け入れられている回答のアドバイスに従いました(ただし、私のWebサイトには最後にマップが含まれていませんでした)。数年後、CUAHSI水文情報システムを採用しました。これはすばらしいことです。設定には少し時間がかかりますが、環境データを保存、検索、調査、分析、視覚化するための幅広いツールを提供します。
ジェームズ

回答:


13

PythonとSQLの使用方法を既に知っている場合は、Python Webフレームワークを使用してWebサイトを構築するのはそれほど難しくありません。2つの簡単なもの-cherry.pyとweb.py-が思い浮かびます。Djangoのオブジェクトリレーショナルマッパーについて学習することは、それだけの価値がある以上の作業になると思います。

Pythonには、psycopg2と呼ばれるライブラリ(http://initd.org/psycopg/、およびチュートリアル:http ://wiki.postgresql.org/wiki/Psycopg2_Tutorial )があり、PostGRESQL / PostGISに対してクエリを簡単に実行できます。また、CSVモジュール(http://docs.python.org/library/csv.html)があり、このクエリからCSVを簡単に作成できます。

他の人が言ったように、フロントエンドで地図を作成すると、複雑さが増します。マップを表示するにはOpenLayersなど、データベース(またはその他のデータソース)からマップイメージを作成するにはMapServerやGeoServerなどが必要です。それはおそらく第二段階としてはより良いでしょう。

現時点では、「すべて」は、必要なクエリパラメーターを選択できるフォームという1つのWebページが必要なようです。「送信」を押すと、クエリパラメータがサーバーに送信され(Apacheが適切です)、スクリプトが実行され、データベースがクエリされ、適切なCSVファイルが作成されてブラウザーに返されます。pyとして簡単;)


2
MapServer / GeoServerで画像を作成する必要はありません。PostGISから直接データを取得して、マップ上にベクターデータとして表示することができます。ただし、データの複雑さによっては、大量のデータを転送する可能性があります。それは状況次第です。また、それらをベクトルデータとして表示すると、オブジェクトをクリックしてデータを表示/編集するオプションが提供されます。
-Mr_Chimp

@mr_chimpああ、それは良い点です。私の懸念は背景レイヤーでしたが、GoogleマップやOSMなどを使用することもできました。実際、ベクターレイヤーは一般に(ユーザーにとって)より良いソリューションだと思う傾向がありますが、指摘するように制限があります。そしてもちろん、ベクターを転送する最も簡単な方法は、MapServerやGeoServerのようなものにサービスを提供することです;)
canisrufus

いつものように、仕事に適切なツールを使用する場合です。JamesSにはすでにPostGISデータベースがあるため、そこから直接データを取得することもできます。何かを忘れていない限り、MapServer / whateverをセットアップすることは、余分なステップになります(ただし、通常はもちろん最速の方法です)。
-Mr_Chimp

8

GeoDjango

セットアップは非常に簡単で、基本的な機能がいくつか備わっています。Pythonなので、少なくともあなたはその言語に精通しています。それはあなたのニーズには行き過ぎかもしれません。しかし、サイトを拡大したい場合は、構築するための成熟したフレームワークがあります。


5

マップを作成したくない/必要ない場合。必要なのは、Webサーバーとプログラミング言語(使いやすくセットアップしやすいApacheですが、他のオプションもあります)と、PostGISまたはPostGISまたは他のデータベースが必要です。

Excelファイルが適切にフォーマットされている場合、データベースにデータをインポートするのは簡単です。INSERTステートメントを生成できるスクリプトを作成できます。あなたが説明するクエリは、それらも管理しやすいように聞こえます。

マッピング部分を行いたい場合、Apache、GeoServer、およびOpenLayersがシンプルで無料のソリューションになります。GeoServer(ご存知のように)は、PostGIS for WMSまたはその他の出力形式を簡単に使用できます。PostGISに接続するストアを追加し、PostGISのテーブルからレイヤーを追加するだけです。

あなたが見ることができる他の無料のマッピングツールは、MapserverとMapGuideでしょう。MapGuide Open Sourceは非常に優れた機能を備えていますが、より複雑であり、ドキュメントが少し遅れています。

MySQLにはSpatial拡張機能もありますが、PostGISほど多くの空間機能はありません。

あなたがPythonに精通しているなら、私はGeoDjangoを見るでしょう...私は個人的にそれについてあまり知りませんが、私は良いことを聞いたことがあります


4

ウェブマッピングアプリケーションの設計と開発の問題の概要、さらにGoogle Mapsと時空間データベースPostgreSQL / PostGISに基づく環境ウェブマッピングアプリケーションのソースコードを、比較的最近のコンピューターサイエンスの修士課程で見つけることができます。オープンソーステクノロジーを使用した時空間環境ベクトルデータの管理、分析、配信に対応するプロトタイプの設計と開発。沿岸地域の地下水管理に焦点を当てた一般的なフレームワークとケーススタディ "

論文は、http: //www.giscience.it/it/pdf/DissertationMscComputerScience_CrestazEzio_Supervisors.pdfからダウンロードできます

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