ArcSDEを使用せずに表示とクエリのためにArcMapからPostGISデータベースに接続しますか?


37

ArcGIS Desktop 9.3以降を使用して、ArcMapからPostGISデータベースに接続するにはどうすればよいですか?

テーブルの内容を単にダンプするのではなく、空間的に有効化されたクエリを実行し、結果(空間および非空間結合、フィルタリングなど)を受信できるようにしたいと思います。

ArcSDE空間拡張を使用したくない、ArcGIS DesktopでPostGIS空間拡張を使用したい。

回答:


29

ArcGIS 10.0以降を使用している場合は、クエリレイヤーを使用してPostGISデータに直接接続できます。これについての詳細は、各バージョンのヘルプに記載されています。

PostGISジオメトリタイプを使用するには、データベース管理者がPostGISをPostgreSQLデータベースクラスターにインストールする必要があります。PostGISは、サードパーティのオープンソースインストールです。データベース管理者は、インストール後、PostGISテンプレートデータベースを使用してPostGISジオメトリタイプを含むデータベースを作成するか、PostGISジオメトリタイプを使用するように既存のデータベースを構成できます。

  • 10.0(このページはChromeで正しく表示されない可能性があるため、IEを使用して読みました)

22

ArcGIS 10.1およびArcGIS 10.2は、どちらもPostGreSQLおよびPostGISデータタイプをネイティブでサポートしています。両方のバージョンのヘルプには、GetGISのセットアップと、PostGISジオメトリタイプを使用するためのテーブルの構成のウォークスルーが含まれています。


5
このQIの可視性が高いことを考えると、この答えを具体化することをお勧めします。したがって、「このリンクを見る」だけではありません。リンクされたヘルプファイルに加えて、ArcGIS DesktopでPostGISデータを編集することもできますか?およびマルチユーザ編集環境で一緒のArcGISとQGISを使用していますか?
マットウィルキー

現在、ArcGISはネイティブサポート(10.1以降)を備えており、要件はdesktop.arcgis.com/en/desktop/latest/get-started/…で確認できます。10.3パッチノートには、10.2 gisupdates.esri.com/ArcGIS/ArcGIS103pr_releasenotes.pdf
ジェームスミルナー

18

私のブログでこの投稿をご覧くださいhttp : //www.paolocorti.net/2008/06/06/spatial-database-for-postgres-and-arcgis-users-how-to-choose/

基本的に2つのオプションがあります:

  1. ArcSdeでPostGisを使用します(したがって、ArcSdeライセンスが必要です。データを編集する必要がある場合はArcEditorが必要です)
  2. zigGISを使用します:http ://www.obtusesoft.com/ (ArcGis 10.0ではテストされていません)。データを書き込む場合でも、接続するにはArcViewボックスが必要です。

ジオデータベースのサポート(ドメイン、トポロジなど)またはArcCatalogのサポートが必要な場合は、現時点で最初のソリューション(ArcSdeを使用)が唯一の方法であることに注意してください。

ArcGis Desktop 10で聞いた限り(直接テストしていません)、ArcSdeゲートウェイなしでPostGisへの読み取り専用の直接接続を行うことができます。

zigGISはもうアクティブではなく、ウェブサイトはオフラインです


4
-1は、それが悪い答えではなかったからではなく、時間の経過とそれに伴う変更によってそうなったため(ジグは廃止され、現在はネイティブアークジスがPostジオメトリをサポートしているため)、この答えはもはやトップにならないはずです。
マットウィルキー14

9

9.3でそれを行うための投稿がいくつかあります。最初はここにあり、そこから残りの部分にアクセスできます:http : //geobabble.wordpress.com/2008/05/28/using-arcsde-93-with-postgresql-part-1/

私は10.0で一度やってみましたが、問題はありませんでした。ArcSDEでPostgreSQLとPostGISを使用するときは、Esriでサポートされているバージョンに固執することを強くお勧めします。


Billsブログとesriのドキュメントに従って、PostgresqlとPostGISをArcSDEで正常に動作させました。esriでサポートされているバージョンを使用する必要があることに同意します。たとえば、Postgresql 8.4.1を見つけるのは難しい場合があります。
安藤

5

最も簡単なのはObtuse SoftwareのzigGISです。現在、あなたはそれを支払う必要がありますが、通りの言葉は、バージョン3がオープンソースになるということです


Google Code Archiveにziggisよると:

zigGIS v1.2はサポートされなくなりましたが、ここからダウンロードできます。zigGIS v2.0は現在商用製品であり、主要な安定性の向上、パフォーマンスの向上、および完全な編集機能が含まれています。詳細については、Obtuse SoftwareのWebサイトを参照してください。

Obtuse SoftwareのWebサイトへのリンクが壊れているようです。


バージョン3はオープンソースになります。現時点での唯一の問題は、ArcCatalogで管理できないことです。つまり、DBを管理するにはPgAdminまたはSQLを使用する必要があります。それ以外はあなたが良い
TheSteve0

SteveOのコメントに追加するために、ZigGISv3ロードマップを 次に示します。abegillespie.blogspot.com / 2010 / 06 / on-to-30.htmlプロバイダーモデルは大幅に改善されます。
ジェイカミンズ

無料のバージョン1.0はまだ利用可能ですか?
fmark

うん、無料版はここから入手できます:code.google.com/p/ziggisしかし、それはooooooldであり、私たちはもはやそれをサポートしておらず、あなたは編集を行うことができません(バージョン2.0で導入された主要な機能でした)。
ザナドン

この投稿は、「ArcGISの次のバージョンがPostGISとの直接読み取り/書き込み相互運用性をサポートするようになったため、zigGISが正式にサポート終了になった(それによりzigGIS mootをレンダリングする)」と述べた別のリストソースを介して来ました。 groups.google.com/group/ziggis/browse_thread/thread/...
RyanDalton

4

ArcGIS 10.1 SP1はPostGIS 2.0.0データベースにネイティブに接続できますが、接続は読み取り専用であり、ほとんどの場合、クエリレイヤーへのクリーンなフロントエンドとして機能します(実際、すべてのレイヤークエリレイヤーとしてロードます)。データベース接続では、データベース内のすべてのテーブルとレイヤーをカタログで表示できます。

postgis1 postgis2 postgis3

別の方法として、arcgis-ogrもあります。これにより、すべてのOGRベクタータイプにArcGISプラグインとして接続できます。arcgis-ogr。また、現時点では読み取り専用です。


3

まず、OLE DB接続を使用して、ArcGISをPostgreSQLでのみ使用できます。つまり、共通のテーブルと列のみを読み取ることができます(空間列は読み取ることもできますが、ArcGISはそれら、

ArcGISおよびPostgreSQL + PostGISを使用するには(空間データを表示する必要があることを意味します)、ArcSDEまたはZigGISが必要です

両方のオプションを使用して、PostGIS、ArcMapまたは他のESRIツール内に保存されているデータのクエリ、編集、分析を行うことができます。

ArcSDEはESRIが提供するミドルウェアであり、作業の全体のワークフロー(ジオ​​データベースのインストール、構成など)を変更し、ZigGISはデスクトップツールです(つまり、ESRIデスクトップツールが関係する場合にのみ使用されます)。


1
この投稿は、「ArcGISの次のバージョンがPostGISとの直接読み取り/書き込み相互運用性をサポートするようになったため、zigGISが正式にサポート終了になった(それによりzigGIS mootをレンダリングする)」と述べた別のリストソースを介して来ました。 groups.google.com/group/ziggis/browse_thread/thread/...
RyanDalton

3

ArcEditorまたはArcInfoデスクトップレベルがある場合は、SQL Server Expressを使用できます。一度に編集できるユーザーは1人だけですが、ロックとロック解除の方が優れている場合があります。最初に試してみてください。それを行う方法に関するドキュメントはたくさんあり、あなたはdbaである必要はありません-私はpostgresが好きですが。攻撃的なQGISの人はいません;)

また、Esriの営業担当者がエンタープライズではなく「ArcGIS Server Workgroup」の見積もりを提供していることを確認してください。以下を参照してください-10の同時編集接続が可能です。それはもっと$ 3-5kのようなはずです。価格http://www.esri.com/software/arcgis/arcgisserver/pricing

SDEおよびSQL Server Express ArcSDEデスクトップライセンスに関するライセンスとリンクの適切な説明については、この投稿も参照してください。

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#/What_are_database_servers_in_ArcGIS/003n0000004r000000/

「ジオデータベースを作成し、カタログウィンドウまたはArcCatalogの[データベースサーバー]ノードを介してデータベースサーバーのその他の管理タスクを実行します。これらのタイプのArcSDEジオデータベースを作成して使用します。

データベースサーバー上のジオデータベースへの接続は常に直接接続です。クライアントのArcSDEライブラリファイルを使用して接続します。この場合、クライアントアプリケーションは、ArcEditorまたはArcInfoライセンスレベルのArcGIS Desktop、ArcGIS Engine、およびArcGIS Server Workgroupです。

これらの製品のメディアには、SQL Server Expressのインストールファイルが含まれています。SQL Server Expressインスタンスを作成し、ウィザードを実行してインスタンスにジオデータベースを保存できるようにすると、クライアントアプリケーション内のライブラリを使用して、データベースサーバーに接続して操作し、データベースサーバーでジオデータベースを作成して操作できます。

ArcGIS Desktop(ArcEditorおよびArcInfo)およびArcGIS Engineを使用すると、データベースサーバーをセットアップし、少数のユーザーがアクセスして一度に1人のユーザーが編集できるArcSDEジオデータベースを作成できます

ArcGIS Desktopを使用するArcGIS Server Workgroupを使用すると、データベースサーバーをセットアップし、同時に最大10人のユーザーがアクセスできるArcSDEジオデータベースを作成できますすべてのユーザーが同時に編集できます。ArcGIS Server Workgroupを通じてライセンスされたデータベースサーバーを使用する場合、接続制限のないWebアプリケーションを使用してジオデータベースに接続することもできます。


2
ArcSDE SQL Server Expressジオデータベースを複数のユーザー/エディターで使用して成功しましたが、セットアップしてから数年が経ちました。GDBは1人のユーザーのワークステーションで作成され、オフィスの他のユーザーはそのインスタンスに接続し、各ユーザーは自分のバージョンで編集を行い、必要に応じてデフォルトバージョンにポストされます。これはすべてデスクトップインストールメディアからインストールされ、ArcGIS Serverは含まれていません。各ユーザーがデスクトップArcEditor / ArcInfoレベルのライセンスを持っていること以外に、ライセンスの影響はないと確信しています。
MC5

3

ArcGISが50以上のベクター形式(PostGISを含む)にアクセスできるプラグインを作成しました。まだ実験段階ですが、試してみて、どのようになるか教えてください。

ArcGISの組み込み機能よりもこのアプローチを使用することには利点があります(FAQをご覧ください)が、やはり実験的です。

ダウンロードと手順はこちら


こんにちは、これはまだ読み取り専用ですか?
マット

1
プログラムで、ExecuteSQL機能を使用して実際に記述できます。私は、ArcMapを介してそれを実行できるインターフェイスを構築していません。したがって、コードを使用して作成できますが、GUIを使用して作成することはできません。
ラギヤセルバーフム

3

私は同様のツールが欲しかったので、この投稿とこれに対する解決策のためのより広いウェブを監視してきました。今日は、James FeeのブログへのRSSフィードを介して(私たちの)ソリューションに出会いました。そして、私はあなたが求める解であると信じてPgMapによりST-リンク

ArcGIS 9.3バージョンを試してみましたが、印象的です。しかし、私はまだPostGIS初心者なので、編集にはまだ苦労しています(ID列のこと)。また、PostGISローダーへの洗練されたESRIが付属しており、何よりも無料です![OpenGeoSuite Community Edition 2.4.1でテスト済み]


st-linkは1年間だけ無料だと聞きました。その後、ライセンスが必要です。本当じゃない?
OPENGISTECH

3

[スタート]-> [コントロールパネル]-> [パフォーマンスとメンテナンス]-> [管理ツール]-> [データソース]に移動します。

[システムDSN]タブに移動します。

追加をクリックします。

リストを下にスクロールします。PostgreSQL ODBCドライバーをインストールすると、そこに表示されるはずです。リスト内の最初のPostgreSQL ODBCドライバーをクリックします。

接続の詳細をフォームに入力します。接続がPostgreSQLデータベースと同じマシン上にある場合、サーバーフィールドにlocalhostと入力します。それ以外の場合は、ネットワーク上のコンピューターの名前。ネットワーク上のデータベースに接続するには、pg_hba.confファイルにいくつかの変更を加える必要があります。ユーザー認証セクションのPostgreSQLマニュアルをご覧ください。これが完了したら、[完了]をクリックします。

リストにあるすべてのPostgreSQL ODBCドライバーを同様に追加します。

OKをクリックします。これで、ODBCドライバーを介してPostgreSQLデータベースに接続できます。ドライバは、接続情報とともにデータベースに送信するだけで済みました。


3

2011年の時点で、ST-Links SpatialKitをお試しください。このソフトウェアはフリーウェアであり、ArcGIS 9.3 / 10.0 / 10.1 / 10.2で動作します。

ダウンロードには、表示、編集などの機能を文書化するための素晴らしいPDFが含まれています。


マイク、@ ST-Linksのドキュメントを見ると、素晴らしい可能性があるようです。個人的に使用しましたか?コミュニティと共有できる速度と使いやすさについて印象はありますか?
ライアンダルトン

実は、私はまだ私は、カスタム設定でインストールのArcGIS 9.3を持っていますが、私は拡張機能でpgMap 1.0まだ..うまくいけば他の誰かが自分の経験を共有することができます表示されない...インストールプロセスを考え出すよ
マイク・T

1
私自身のブログへのリンクはご容赦ください。しかし、zigGISがシャットダウンされたという発表の後、私はPgMapを見ました。私の観察はこちらです:blog.geomusings.com/2011/08/09/taking-a-look-at-pgmap ArcMapは10.1で空間データベースを直接編集できないように見えるため、PgMapはさらに魅力的です。
ビル・ドリンズ

2

以前、ArcGIS 10.1および10.2を使用する際に多くの問題を起こさずにこれを実行しましたが、残念ながら9.3およびpostgres 9.2では動作しません。

esriのドライバーを使用しました。ESRIカスタマーケアサイトへのログオン

  1. バージョンを選択してください
  2. 「ソフトウェアのダウンロード」
  3. 「DMBSサポートファイル」
  4. 「PostgreSQLQLクライアントライブラリ(Windows)」が表示されるまで下にスクロールします。サイズは2.21 MBです。

  5. ダウンロードをクリック

    PostgreSQL / PostGISの場合、ダウンロードしたファイルは、libeay32.dll、libiconv-2.dll、libintl-8.dll、libpq.dll、およびssleay32.dllの必要な32ビットバージョンを含むライブラリの「pg_client_windows86」クライアントセットである必要があります。これらをArcGIS binディレクトリにコピーします。10.1を使用しているコンピューターでは、C:Program Files(x86)ArcGISDesktop10.1bin 32ビットウィンドウを使用している場合は、C:Program FilesArcGISDesktop10.1binのようになります。

これを行うと、データベースに接続してデータを追加できるようになります。データクエリレイヤーを使用するには、まずデータベースに接続する必要があります。ArcGIS 10.1では、[ファイル]、[データの追加]、[クエリレイヤーの追加]の順に選択する必要があります。

唯一注意することは、返されるデータには、ArcGISが主キーとして使用できる一意のフィールドが必要であることです。基本的なクエリ以外のものを使用していて、ArcGISがどのフィールドを使用するかを判断できない場合は、指定する必要がある場合があります。これを行うには:

  1. 最初に[検証]ボタンをクリックして、SQLクエリを検証します(ArcGISは、詳細オプションダイアログボックスに入力するために、selectステートメントにあるフィールドのリストを生成する必要があります)。
  2. SQLが検証されたら、[詳細オプションを表示]をクリックして、完了ボタンを[完了]から[次へ]に変更します>
  3. [次へ>]をクリックすると、詳細オプションダイアログにアクセスできます。
  4. 詳細オプションダイアログでは、テーブルのすべてのフィールドのリストが表示されます。一意の識別子フィールドとして機能するフィールドを1つ選択します-デフォルトでは、すべてのフィールドが選択されています。
  5. データの空間参照系を適切に設定することもできます。
  6. [完了]をクリックすると、レイヤーがマップに追加されます。

また、その場でidフィールドを作成する必要がありますが、postgresデータベースに対して空間クエリを比較的簡単に実行できます。例えば、これは100kmのバッファを行う例です。

SELECT row_number() over(order by cities.the_geom)::integer as oid,
ST_BUFFER(cities.the_geom, 100000) AS the_geom,
cities.name
FROM mygis.public.cities As cities

それだけでなく、クエリレイヤーをレイヤーファイルとして保存し、それをいくつかの標準ArcGISツールに渡すこともできます。これはあまりテストしていません。そのため、列やそのようなものを追加すると、大混乱を引き起こすことがわかります。SQLServerやOracleのような他のデータベースで空間SQL呼び出しを行うこともできますし、ちょっとした操作でon the fly idフィールドを作成することもできます。

しばらく前に完全なチュートリアルを行いました:http : //www.gisuser.org.nz/resources/tips-and-tricks/look-mum-dad-no-hands


2

ArcGIS 10.4で効果的に、追加の拡張機能を必要とせずに、サポートされているPostgreSQLデータベースの PostGISジオメトリを読み書きできます。これにはAdvancedライセンスのみを使用しましたが、Standardライセンスは非ジオデータベースPGサーバーデータベースに接続し、そのワークスペースをベクター作成ツールの宛先として使用することもできます。面倒ですが、Basicライセンスクライアントを使用して、PythonでSQLを使用してテーブルに書き込むこともできます(経由arcpy.ArcSDESQLExecute)。読み取り専用クエリレイヤーは、ArcGIS 10.0以降、すべてのライセンスレベルでオプションになっています。


Vince、ArcGIS 10.4+で書き込み可能な非SDE PostGISデータベース接続をセットアップするプロセスは何ですか?ArcCatalog Advanced 10.5を介してデータベース接続を追加しようとすると、「システムデータベースへの接続は許可されません」というエラーが発生します。
ルディストリック

1
データベースを作成し、データベースを管理してデータを格納し、接続する以外のプロセスはありません。これを試してみたいが失敗した場合は、ここで新しい質問をすることができます(すべての詳細を提供します)。masterデータベースでpostgresユーザーとして作業しようとしている場合、最初にRDBMSの使用に関する本を入手する必要があります。
ビンス

ありがとうヴィンス。はい、マスターデータベースではなく、バニラPostGISデータベース( "gis")の空間テーブルに接続しようとしているため、エラーメッセージは少しわかりにくいです。あなたのアドバイスは正しいですが、問題を文書化し、新しい質問を提出します。
ルディストリック


1

GISquirrelは、SDEの数分の1のコストでジョブを実行します。MSSQLとPostGISの両方へのarcgis接続をサポートしています。セットアップが非常に簡単(shapefile / featureclassからpostgresにインポート可能)で、保守も簡単です。マルチユーザー編集機能を必要とする少数のユーザーにとっては、問題ありません。

GISの「パワーユーザー」にはGISquirrel / Arcgisを使用し、「基本ユーザー」のQGISは同じPostGISサーバーに接続できるため、ライセンスコストを節約できます。


「パワーユーザー」はArcGIS環境で編集できますか、それとも読み取り専用ですか?
user17963

はいGISquirrelを使用すると、ArcGISで完全に編集できます。
マット

面白い!トポロジチェックはどうですか?
user17963

ユーザーの選択したフィーチャの一時ジオデータベースを作成し、それらのフィーチャを編集のためにユーザーにロックします。ArcGISを使用すると、ジオデータベースのフィーチャを編集できます。編集が保存されると、フィーチャがPostGISで更新されます。レイヤー内のすべてのフィーチャを一度に編集することもできます。
マット

1
ありがとう、Matt GISquirrelを使用してテストし、データで機能するかどうかを確認します!
user17963

1

GISquirrelはMSSQLserverで非常にうまく機能し、Postgresでもうまく機能すると確信しています。私はESRI / Qgis混合環境で働いており、GISリスを使用して、シェープファイルなどをデータベースにインポートしています。SQLserver GISsquirrelはジオメトリ列を追跡します。この情報を使用して、Qgisが使用するgeometry_columnsテーブルを更新します。とても便利な ...


1

PgMapはst-links spatialKitに置き換えられ、PostGISをサポートするだけでなく、SQL Server 2008もサポートします。ArcMap9.3およびArcMap 10で動作し、要件を満たします。www.st-links.comで確認してください


0

SDEを使用する以外にもいくつかのオプションがあると思います(ただし、SDEでPG_Geometryを使用できるため、ESRIソフトウェアまたはPostGIS互換OSソフトウェアを介してデータにアクセスできます)。ESRI Data Interoperabilityエクステンション、ZigGISがあり、おそらくジオサーバーまたはマップサーバーのコピーをインストールし、ArcGISのWMSサービスを介して接続できます。zigGISに関する以前の投稿とpgAdminを介してクエリを管理する必要性と同様に、ジオサーバー/マップサーバーでクエリを作成するためにそれを使用する必要があります。理想的には、同じクエリを再利用している場合、それらをpostgresqlのビューとして保存し、その方法でデータにアクセスできます。


0

ST-Links SpatialKitは、ArcSDE、ArcInfo、ArcGIS Serverなしで空間データベースに直接接続するためのArcMap拡張機能です。

ライセンスによると、188 CADかかりますが、「ライセンス料を払えないユーザーには無料ライセンスを発行し続けます。無料ライセンスには時間制限があります。無料ライセンスをリクエストする場合は、理由を教えてください。ライセンス要求メール。」


0

PostGISデータをArcMapに追加する簡単な方法は、「相互運用性接続」を追加することです。これを行うには、「Data Interoperability Extension」が必要です。

接続を作成する前に、「数値インデックス」と「プライマリキー」をPostGISデータベーステーブルに追加することをお勧めします。

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