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.
- Wählen Sie Ihre Version
- "Software-Downloads"
- "DMBS-Unterstützungsdateien"
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:
- Überprüfen Sie zunächst die SQL-Abfrage, indem Sie auf die Schaltfläche "Überprüfen" klicken (ArcGIS muss eine Liste der Felder generieren, die in der select-Anweisung enthalten sind, um das Dialogfeld "Erweiterte Optionen" auszufüllen).
- Nachdem die SQL validiert wurde, klicken Sie auf Erweiterte Optionen anzeigen. Die Schaltfläche Fertig stellen ändert sich von Fertig stellen zu Weiter>
- Klicken Sie auf Weiter> und Sie können dann auf den erweiterten Optionsdialog zugreifen.
- Im erweiterten Optionsdialog erhalten Sie eine Liste aller Felder für die Tabelle. Wählen Sie ein Feld aus, das als eindeutiges Bezeichnerfeld fungiert. Standardmäßig sind alle Felder ausgewählt.
- Sie können auch das räumliche Bezugssystem Ihrer Daten festlegen, wenn dies angemessen ist.
- Klicken Sie auf Fertig stellen, und der Layer wird Ihrer Karte hinzugefügt.
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.
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
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