Wie kann ich mit ArcGIS Desktop 9.3 und höher von ArcMap aus eine Verbindung zu einer PostGIS-Datenbank herstellen?
Ich möchte räumlich aktivierte Abfragen durchführen und die Ergebnisse zurückerhalten (z. B. räumliche und nicht räumliche Verknüpfungen, Filtern usw.), anstatt nur den Inhalt einer Tabelle zu sichern.
Ich möchte die räumlichen Erweiterungen von ArcSDE nicht verwenden. Ich möchte die räumlichen PostGIS-Erweiterungen in ArcGIS Desktop verwenden.
quelle
Sehen Sie sich diesen Beitrag auf meinem Blog an: http://www.paolocorti.net/2008/06/06/spatial-database-for-postgres-and-arcgis-users-how-to-choose/
Grundsätzlich haben Sie 2 Möglichkeiten:
Wenn Sie Geodatabase-Unterstützung (Domänen, Topologie usw.) oder ArcCatalog-Unterstützung benötigen, ist die erste Lösung (mit ArcSde) derzeit die einzige Möglichkeit.
Soweit ich gehört habe (ich habe es nicht direkt getestet), können Sie auf ArcGis Desktop 10 eine schreibgeschützte direkte Verbindung zu PostGis ohne das ArcSde-Gateway herstellen.
zigGIS ist nicht mehr aktiv und die Website ist offline
quelle
Ich habe ein paar Beiträge dazu mit 9.3. Der erste ist hier und Sie können den Rest von dort aus erreichen: http://geobabble.wordpress.com/2008/05/28/using-arcsde-93-with-postgresql-part-1/
Ich habe es einmal mit 10.0 gemacht und hatte keine Probleme. Wenn Sie PostgreSQL und PostGIS mit ArcSDE verwenden, empfehle ich dringend, sich an die Versionen zu halten, die von Esri unterstützt werden.
quelle
Am einfachsten wäre zigGIS von Obtuse Software . Momentan muss man dafür bezahlen, aber auf der Straße heißt es, dass Version 3 Open Source sein wird .
Laut Google Code Archive am
ziggis
:und der Link zur Website von Obtuse Software scheint defekt zu sein.
quelle
ArcGIS 10.1 SP1 kann eine systemeigene Verbindung zu PostGIS 2.0.0-Datenbanken herstellen, die Verbindung ist jedoch schreibgeschützt und dient hauptsächlich als übersichtliches Front-End für Abfrage-Layer (tatsächlich werden nur beliebige Layer als Abfrage-Layer geladen). Über die Datenbankverbindung können Sie nur alle Tabellen und Layer in der Datenbank im Katalog anzeigen.
Alternativ gibt es auch arcgis-ogr , mit dem Verbindungen zu allen OGR-Vektortypen als ArcGIS-Plugin möglich sind. . Momentan ist es auch schreibgeschützt.
quelle
Zuallererst: Sie können ArcGIS mit PostgreSQL nur über OLE DB-Verbindungen verwenden, dh Sie können nur allgemeine Tabellen und Spalten lesen (Sie können sogar die räumlichen Spalten lesen, ArcGIS kann jedoch nichts dagegen tun Sie,
Zur Verwendung von ArcGIS und PostgreSQL + PostGIS (dh zum Anzeigen von Geodaten) benötigen Sie ArcSDE oder ZigGIS .
Mit beiden Optionen können Sie in PostGIS gespeicherte Daten in ArcMap oder anderen ESRIs-Tools abfragen, bearbeiten und analysieren.
ArcSDE ist eine von ESRI bereitgestellte Middleware, die den gesamten Arbeitsablauf (Installieren, Konfigurieren einer Geodatenbank usw.) der Arbeit ändert, und ZigGIS ist ein Desktop-Tool (ich meine, sie wird nur verwendet, wenn ESRIs Desktop-Tools beteiligt sind).
quelle
Wenn Sie über eine ArcEditor- oder ArcInfo-Desktop-Version verfügen, können Sie SQL Server Express verwenden. Auch wenn immer nur ein Benutzer gleichzeitig bearbeiten kann, ist das Sperren und Entsperren möglicherweise besser - probieren Sie dies zuerst aus. Es gibt eine Menge Dokumentation, wie man das macht, und man muss kein DBA sein - obwohl ich Postgres mag. Nichts für ungut QGIS Leute;)
Stellen Sie außerdem sicher, dass Sie von Ihrem Esri-Vertriebsmitarbeiter ein Angebot für "ArcGIS Server Workgroup" erhalten, nicht für Enterprise. Siehe unten - Sie können 10 Verbindungen gleichzeitig bearbeiten. Es sollte eher $ 3-5k sein. Preise http://www.esri.com/software/arcgis/arcgisserver/pricing
In diesem Beitrag finden Sie auch eine gute Erläuterung der Lizenzierung und Links zu SDE- und SQL Server Express ArcSDE-Desktoplizenzen
http://help.arcgis.com/de/arcgisdesktop/10.0/help/index.html#/What_are_database_servers_in_ArcGIS/003n0000004r000000/
"Sie erstellen Geodatabases und führen andere Verwaltungsaufgaben für Datenbankserver über den Knoten" Datenbankserver "im Fenster" Katalog "oder" ArcCatalog "aus. Für die Verwaltung des Datenbankservers und seiner Geodatabases über ArcGIS Desktop sind keine zusätzlichen Kenntnisse in Bezug auf Software oder Datenbankverwaltung erforderlich Erstellen und Verwenden dieser Arten von ArcSDE-Geodatabases.
Verbindungen zu den Geodatabases auf einem Datenbankserver sind immer direkte Verbindungen. Sie verwenden die ArcSDE-Bibliotheksdateien im Client, um die Verbindung herzustellen. In diesem Fall handelt es sich bei den Clientanwendungen um ArcGIS Desktop auf ArcEditor- oder ArcInfo-Lizenzebene, ArcGIS Engine und ArcGIS Server Workgroup.
Die Medien für diese Produkte enthalten Installationsdateien für SQL Server Express. Nachdem Sie die SQL Server Express-Instanz erstellt und den Assistenten ausgeführt haben, damit die Instanz Geodatabases speichern kann, können Sie mit den Bibliotheken in der Clientanwendung eine Verbindung zu den Datenbankservern herstellen und mit diesen arbeiten sowie Geodatabases auf dem Datenbankserver erstellen und damit arbeiten.
Mit ArcGIS Desktop (ArcEditor und ArcInfo) und ArcGIS Engine können Sie einen Datenbankserver einrichten und ArcSDE-Geodatabases erstellen, auf die nur wenige Benutzer zugreifen und die jeweils von einem Benutzer bearbeitet werden können .
In ArcGIS Server Workgroup mit ArcGIS Desktop können Sie einen Datenbankserver einrichten und ArcSDE-Geodatabases erstellen, auf die jeweils bis zu 10 Benutzer zugreifen können, die alle gleichzeitig bearbeiten können . Wenn Sie die über ArcGIS Server Workgroup lizenzierten Datenbankserver verwenden, können Sie auch mithilfe von Webanwendungen, für die es keine Verbindungsbeschränkung gibt, eine Verbindung zu den Geodatabases herstellen. "
quelle
Ich habe ein Plugin geschrieben, mit dem ArcGIS auf über 50 Vektorformate (einschließlich PostGIS) zugreifen kann. Es ist noch experimentell, aber Sie können es ausprobieren und mir sagen, wie es geht.
Die Verwendung dieses Ansatzes bietet Vorteile gegenüber der in ArcGIS integrierten Funktionalität (siehe FAQ), ist jedoch noch experimentell.
Download und Anleitung hier
quelle
Ich habe diesen Beitrag und das weitere Web nach einer Lösung für dieses Problem durchsucht, da ich ein ähnliches Tool haben wollte. Heute bin ich über einen RSS-Feed auf James Fee's Blog auf meine (unsere) Lösung gestoßen . Und ich glaube, die Lösung, die Sie suchen, ist PgMap von ST-Links .
Ich habe die ArcGIS 9.3-Version ausprobiert und sie ist beeindruckend. Ich kämpfe immer noch mit Änderungen, da ich immer noch ein PostGIS-Neuling bin (Identitätsspaltensache). Es kommt auch mit einem schlanken ESRI zu PostGIS-Lader und vor allem ist es KOSTENLOS! [Getestet mit OpenGeoSuite Community Edition 2.4.1]
quelle
Gehen Sie zu Start -> Systemsteuerung -> Leistung und Wartung -> Verwaltung -> Datenquellen.
Wechseln Sie zur Registerkarte System-DSN.
Klicken Sie auf Hinzufügen.
Scrollen Sie in der Liste nach unten. Sie sollten Ihre PostgreSQL-ODBC-Treiber dort sehen können, wenn Sie sie installiert haben. Klicken Sie auf den ersten PostgreSQL-ODBC-Treiber in der Liste.
Geben Sie Ihre Verbindungsdaten in das Formular ein. Befindet sich die Verbindung auf demselben Computer wie die PostgreSQL-Datenbank, schreiben Sie localhost in das Feld server. Andernfalls der Name des Computers im Netzwerk. Sie müssen einige Änderungen in der Datei pg_hba.conf vornehmen, um eine Verbindung zu Ihrer Datenbank im Netzwerk herzustellen. Lesen Sie dazu die PostgreSQL-Handbücher im Abschnitt Benutzerauthentifizierung. Klicken Sie anschließend auf Fertig stellen.
Fügen Sie alle PostgreSQL-ODBC-Treiber hinzu, die Sie auf ähnliche Weise in der Liste finden.
OK klicken. Sie können jetzt über die ODBC-Treiber eine Verbindung zur PostgreSQL-Datenbank herstellen. Die Treiber mussten nur mit Verbindungsinformationen an die Datenbank weitergeleitet werden.
quelle
Versuchen Sie ab 2011 ST-Links SpatialKit . Die Software ist Freeware und funktioniert mit ArcGIS 9.3 / 10.0 / 10.1 / 10.2.
Der Download enthält eine schöne PDF-Datei, in der die Funktionen wie Anzeigen, Bearbeiten usw. dokumentiert sind.
quelle
Ich habe dies zuvor ohne allzu große Probleme mit ArcGIS 10.1 und 10.2 getan. Leider funktioniert es nicht mit 9.3 und Postgres 9.2, denke ich aus dem Speicher.
Ich habe die Treiber von esri benutzt. Melden Sie sich bei der ESRI-Kundenbetreuungssite an, obwohl ich denke, dass sich dies geändert hat, seit ich die Anweisungen geschrieben habe.
Scrollen Sie nach unten, bis "PostgreSQLQL-Client-Bibliotheken (Windows)" angezeigt wird. Die Größe sollte 2,21 MB betragen.
Klicken Sie auf Downloads
Für PostgreSQL / PostGIS sollte sich in der heruntergeladenen Datei der "pg_client_windows86" -Clientsatz von Bibliotheken befinden, der die erforderliche 32-Bit-Version von libeay32.dll, libiconv-2.dll, libintl-8.dll, libpq.dll und ssleay32.dll enthält. Kopieren Sie diese in Ihr ArcGIS-Bin-Verzeichnis. Auf meinem Computer mit 10.1 war es: C: Programme (x86) ArcGISDesktop10.1bin Wenn Sie 32-Bit-Fenster verwenden, würde es ungefähr so aussehen: C: ProgrammeArcGISDesktop10.1bin
Sobald Sie dies getan haben, sollten Sie in der Lage sein, eine Verbindung zu Ihrer Datenbank herzustellen und Daten aus dieser hinzuzufügen. Um eine Datenabfrageebene zu verwenden, müssen Sie zunächst eine Verbindung zu Ihrer Datenbank herstellen. In ArcGIS 10.1 müssen Sie zu Datei> Daten hinzufügen> Abfrage-Layer hinzufügen wechseln
Das Einzige, worauf Sie achten müssen, ist, dass die zurückgegebenen Daten ein eindeutiges Feld aufweisen müssen, das von ArcGIS als Primärschlüssel verwendet werden kann. Manchmal müssen Sie es möglicherweise angeben, wenn Sie mehr als nur eine Basisabfrage verwenden und ArcGIS nicht herausfinden kann, welches Feld verwendet werden soll. Sie können dies tun, indem Sie:
Sie können die räumlichen Abfragen auch relativ einfach für die Postgres-Datenbank ausführen, obwohl Sie im laufenden Betrieb ein ID-Feld erstellen müssen. Beispiel: Hier ist ein Beispiel für einen 100-km-Puffer.
Sie können jeden Abfrage-Layer nicht nur als Layer-Datei speichern, sondern auch einige der Standard-ArcGIS-Tools durchlaufen. Ich habe das nicht zu viel getestet. Wenn ich also Spalten und ähnliches hinzufügte, konnte ich sehen, dass dies Chaos anrichtete. Ich denke, Sie könnten räumliche SQL-Aufrufe mit anderen Datenbanken wie SQLServer und Oracle sowie mit ein wenig Fingerspitzengefühl durchführen, um das Feld für die On-the-Fly-ID zu erstellen.
Ich habe vor einiger Zeit ein vollständiges Tutorial unter http://www.gisuser.org.nz/resources/tips-and-tricks/look-mum-dad-no-hands gemacht
quelle
Ab ArcGIS 10.4 können Sie PostGIS-Geometrie in unterstützten PostgreSQL-Datenbanken lesen und schreiben, ohne dass zusätzliche Erweiterungen erforderlich sind. Ich habe nur eine erweiterte Lizenz verwendet, aber ich glaube, eine Standardlizenz kann auch eine Verbindung zu einer Nicht-Geodatabase-PG-Server-Datenbank herstellen und diesen Arbeitsbereich als Ziel für Tools zur Vektorerstellung verwenden. Es ist umständlicher, aber Sie können auch Basislizenz-Clients verwenden, um mithilfe von SQL mit Python (über
arcpy.ArcSDESQLExecute
) in Tabellen zu schreiben . Schreibgeschützte Abfrage-Layer sind seit ArcGIS 10.0 eine Option für alle Lizenzstufen.quelle
Funktioniert PostgreSQL 9 mit ArcGIS 10?
Zum Bearbeiten von Postgis ZigGIS 3.0
http://groups.google.com/group/ziggis/browse_thread/thread/8e17f4c2ac57f428?hl=de
Schreibgeschützt kann über die richtigen ODBC-Postgres-Treiber und über eine direkte Verbindung in ArcCatalog erfolgen
quelle
GISquirrel erledigt die Arbeit zu einem Bruchteil der Kosten von SDE. Es unterstützt die arcgis-Verbindung zu MSSQL und PostGIS. Sehr einfach einzurichten (kann aus Shapefile / Featureclass in Postgres importiert werden) und einfach zu warten. Für eine kleine Anzahl von Benutzern, die eine Mehrbenutzer-Bearbeitungsfunktion benötigen, ist dies in Ordnung.
Wir verwenden GISquirrel / Arcgis für unsere GIS-Hauptbenutzer, und QGIS kann für unsere Hauptbenutzer eine Verbindung mit demselben PostGIS-Server herstellen, wodurch Lizenzkosten gespart werden.
quelle
GISquirrel erledigt die Aufgabe für MSSQLserver sehr gut, und ich bin mir ziemlich sicher, dass es für Postgres gut funktionieren wird. Ich arbeite in einer gemischten ESRI / Qgis-Umgebung und verwende GIS-Eichhörnchen auch, um Shapefiles usw. in die Datenbank zu importieren. In SQL Server verfolgt GISsquirrel die Geometriespalten. Mit diesen Informationen aktualisiere ich die von Qgis verwendete geometry_columns-Tabelle. Sehr praktisch ...
quelle
PgMap wurde durch st-links spatialKit ersetzt und unterstützt nicht nur PostGIS, sondern auch SQL Server 2008. Es funktioniert mit ArcMap 9.3 und ArcMap 10. Es entspricht genau Ihren Anforderungen. Probieren Sie es unter www.st-links.com aus
quelle
Ich glaube, Sie haben mehrere Möglichkeiten außerhalb der Verwendung von SDE (obwohl ich darauf hinweisen möchte, dass Sie PG_Geometry in SDE verwenden können und daher über ESRI-Software oder PostGIS-kompatible OS-Software auf Daten zugreifen können). Sie haben die ESRI Data Interoperability-Erweiterung ZigGIS und könnten möglicherweise eine Kopie des Geo- oder Kartenservers installieren und eine Verbindung über einen WMS-Service in ArcGIS herstellen. Ähnlich wie im vorherigen Beitrag zu zigGIS und der Notwendigkeit, Abfragen über pgAdmin zu verwalten, müssten Sie diese verwenden, um Ihre Abfragen mit Geoserver / Mapserver zu erstellen. Wenn Sie dieselben Abfragen wiederverwenden, können Sie sie idealerweise als Ansichten in postgresql speichern und auf diese Weise auf die Daten zugreifen.
quelle
ST-Links SpatialKit ist eine ArcMap-Erweiterung für die direkte Verbindung mit räumlichen Datenbanken ohne ArcSDE, ohne ArcInfo und ohne ArcGIS-Server.
Laut ihrer Lizenz kostet es $ 188 CAD, aber sie geben an: "Wir werden weiterhin kostenlose Lizenzen für diejenigen Benutzer herausgeben, die sich die Lizenzgebühr nicht leisten können. Für kostenlose Lizenzen gelten zeitliche Beschränkungen. Wenn Sie eine kostenlose Lizenz anfordern, geben Sie bitte den Grund an Ihre Lizenzanforderungs-E-Mail. "
quelle
Eine einfache Möglichkeit zum Hinzufügen von PostGIS-Daten zu ArcMap ist das Hinzufügen einer "Interoperabilitätsverbindung". Dazu ist die 'Data Interoperability Extension' erforderlich.
Es wird empfohlen, der PostGIS-Datenbanktabelle vor dem Herstellen der Verbindung einen numerischen Index und einen Primärschlüssel hinzuzufügen.
quelle