Я делал это раньше без особых проблем с использованием ArcGIS 10.1 и 10.2, к сожалению, он не работает с 9.3 и postgres 9.2, я думаю, из памяти.
Я использовал драйверы от esri. Войдите на сайт обслуживания клиентов ESRI, хотя я думаю, что это изменилось с тех пор, как я написал инструкции.
- Выберите вашу версию
- "Загрузка программного обеспечения"
- «Файлы поддержки DMBS»
Прокрутите вниз, пока не увидите «Клиентские библиотеки PostgreSQLQL (Windows)», размер которых должен составлять 2,21 МБ.
Нажмите Загрузки
Для PostgreSQL / PostGIS в загружаемом файле должен быть клиентский набор библиотек «pg_client_windows86», содержащий необходимую 32-битную версию libeay32.dll, libiconv-2.dll, libintl-8.dll, libpq.dll и ssleay32.dll. Скопируйте их в каталог bin ArcGIS. На моем компьютере с использованием 10.1 это было: C: Program Files (x86) ArcGISDesktop10.1bin Если вы используете 32-битные окна, это будет что-то вроде: C: Program FilesArcGISDesktop10.1bin
Как только вы это сделаете, вы сможете подключиться и добавить данные из вашей базы данных. Чтобы использовать слой запроса данных, вам сначала необходимо подключиться к вашей базе данных. В ArcGIS 10.1 вам нужно будет перейти в File> Add Data> Add Query Layer
Единственное, на что нужно обратить внимание, это то, что возвращаемые данные должны иметь уникальное поле, которое может использоваться ArcGIS в качестве первичного ключа. Иногда вам может потребоваться указать его, если вы используете не просто базовый запрос, а ArcGIS не может определить, какое поле использовать. Вы можете сделать это:
- Сначала проверьте SQL-запрос, нажав кнопку Validate (ArcGIS необходимо создать список полей, которые есть в операторе select, чтобы заполнить диалоговое окно расширенных параметров).
- После проверки SQL нажмите «Показать дополнительные параметры», кнопка «Готово» изменится с «Готово» на «Далее»>
- Нажмите Далее>, и вы можете получить доступ к диалоговому окну дополнительных параметров.
- В диалоговом окне расширенных параметров вам предоставляется список всех полей таблицы. Выберите одно поле, которое будет действовать как поле уникального идентификатора - по умолчанию выбраны все поля.
- Вы также можете установить систему пространственной привязки ваших данных, если это уместно.
- Нажмите «Готово», и ваш слой будет добавлен на вашу карту.
Вы также можете с относительной легкостью выполнять пространственные запросы к базе данных postgres, хотя вам нужно создать поле id на лету. Например, вот пример выполнения 100-километрового буфера.
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. Я не проверял это слишком много. Таким образом, добавляя столбцы и тому подобное, я мог видеть, что это вызывает хаос. Я думаю, что вы могли бы делать пространственные вызовы SQL с другими базами данных, такими как SQLServer и Oracle, а также с небольшим трудом для создания поля id на лету.
Некоторое время назад я сделал полный урок по адресу:
http://www.gisuser.org.nz/resources/tips-and-tricks/look-mum-dad-no-hands