Підключення до бази даних PostGIS від ArcMap для відображення та запиту без ArcSDE?


37

Як я можу підключитися до бази даних PostGIS від ArcMap за допомогою ArcGIS Desktop 9.3 та пізніших версій?

Я хотів би мати можливість виконувати просторово включені запити та отримувати результати назад (наприклад, просторові та непросторові з'єднання, фільтрування тощо), а не просто скидання вмісту таблиці.

Я не хочу використовувати просторові розширення ArcSDE, я хочу використовувати просторові розширення PostGIS у ArcGIS Desktop.

Відповіді:


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. У довідці для обох версій входить посібник щодо налаштування та налаштування таблиць для використання типів геометрії PostGIS.


5
Враховуючи високу видимість цього QI, заохочуйте деталізувати цю відповідь, тож це набагато більше, ніж "переглянути це посилання". Окрім пов'язаних файлів довідки, у ArcGIS Desktop також є редагування даних PostGIS? та Використання ArcGIS та QGIS разом у середовищі редагування для багатьох користувачів?
matt wilkie

Зараз 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/

В основному у вас є два варіанти:

  1. використовуйте PostGis з ArcSde (тому вам потрібна ліцензія ArcSde та ArcEditor, якщо вам потрібно редагувати дані)
  2. використовувати zigGIS: http://www.obtusesoft.com/ (зверніть увагу, що не тестується на ArcGis 10.0). Вам просто знадобиться вікно ArcView для підключення до нього, навіть для запису даних.

Зверніть увагу, що якщо вам потрібна підтримка Geodatabase (Домени, топологія тощо) або підтримка ArcCatalog, перше рішення (з ArcSde) - це єдиний шлях до цього часу.

Наскільки я чув (я безпосередньо не перевіряв це) на ArcGis Desktop 10, ви можете встановити пряме з'єднання з PostGis без шлюзу ArcSde.

zigGIS більше не активний, і веб-сайт в автономному режимі


4
-1, не тому, що це була погана відповідь, а тому, що з часом та наслідками змін це зробило так (зигг відмінено, тепер вже вроджена аркгізація підтримує геометрію Пост), і ця відповідь більше не повинна бути на вершині.
matt wilkie

9

У мене є кілька постів про те, як це робити з 9.3. Перший тут, і ви можете дістатися до решти звідти: http://geobabble.wordpress.com/2008/05/28/using-arcsde-93-with-postgresql-part-1/

Я робив це один раз з 10.0 і не мав жодних проблем. Я скажу, що, використовуючи PostgreSQL і PostGIS з ArcSDE, настійно рекомендую дотримуватися будь-яких версій, які підтримуються Esri.


Я стежив за блогом законопроектів та документацією на esri, щоб успішно налагодити Postgresql та PostGIS, що працюють з ArcSDE. Я погоджуюся, що вам потрібно використовувати версію, що підтримується esri, навіть якщо їх іноді важко знайти, наприклад, Postgresql 8.4.1 виявилося складним для пошуку.
Андо

5

Найпростішим буде zigGIS від програмного забезпечення Obtuse . Наразі за це доведеться заплатити, але на вулиці сказано, що версія 3 буде відкритим кодом .


Відповідно до архіву коду Google проziggis :

zigGIS v1.2 більше не підтримується, хоча він залишиться доступним для завантаження. zigGIS v2.0 тепер є комерційним продуктом і включає значні поліпшення стабільності, підвищення продуктивності та повні можливості редагування. Більш детальну інформацію можна знайти на веб-сайті Obtuse Software .

а посилання на веб-сайт Obtuse Software порушено.


Версія 3 буде відкритим кодом. Єдине питання з ним прямо зараз - це те, що він не керує через ArcCatalog - це означає, що вам потрібно використовувати PgAdmin або SQL для адміністрування вашої БД. Крім того, що ви хороші
TheSteve0

Щоб додати коментарі SteveO, ось карта доріг ZigGISv3 : abegillespie.blogspot.com/2010/06/on-to-30.html Модель постачальника значно покращиться.
Jay Cummins

Чи доступна безкоштовна версія 1.0?
fmark

Так, безкоштовна версія доступна тут: code.google.com/p/ziggis Але це oooooold, ми більше не підтримуємо її, і ви не можете редагувати (що було головною функцією, представленою у версії 2.0).
xanadont

Нещодавно я побачив цю публікацію через інше джерело списку, яке заявило, що "zigGIS офіційно досяг свого терміну служби, оскільки наступна версія ArcGIS повинна підтримувати взаємодію прямого читання / запису з PostGIS (тим самим надаючи спорядок zigGIS)". groups.google.com/group/ziggis/browse_thread/thread/…
RyanDalton

4

ArcGIS 10.1 SP1 може спочатку підключатися до баз даних PostGIS 2.0.0, але з'єднання доступне лише для читання, і в основному функціонує як більш чистий передній кінець для шарів запитів (адже він просто завантажує будь-які шари як шари запитів). З'єднання з базою даних просто дозволяє переглядати всі таблиці та шари бази даних у каталозі.

постгіс1 постгіс2 постгіс3

В якості альтернативи також існує arcgis-ogr , який дозволяє підключатись до всіх типів OGR-векторів як плагін ArcGIS. аркгіс-огр. Наразі це також лише для читання.


3

Перш за все: ви зможете використовувати ArcGIS з PostgreSQL лише за допомогою з'єднань OLE DB, тобто ви зможете читати лише загальні таблиці та стовпці (ви навіть зможете читати просторові стовпці, але ArcGIS нічого не може зробити їх,

Щоб використовувати ArcGIS та PostgreSQL + PostGIS (тобто означає, що вам потрібно побачити просторові дані), вам знадобиться ArcSDE або ZigGIS .

За допомогою обох варіантів ви можете запитувати, редагувати та аналізувати дані, що зберігаються в PostGIS, всередині ArcMap або інших інструментів ESRI.

ArcSDE - це проміжне програмне забезпечення, що надається ESRI, змінюючи весь робочий процес (встановлення, налаштування геоданих та ін.) Роботи, а ZigGIS - це настільний інструмент (я маю на увазі, використовується лише тоді, коли задіяні інструменти для настільних комп'ютерів ESRI).


1
Нещодавно я побачив цю публікацію через інше джерело списку, яке заявило, що "zigGIS офіційно досяг свого терміну служби, оскільки наступна версія ArcGIS повинна підтримувати взаємодію прямого читання / запису з PostGIS (тим самим надаючи спорядок zigGIS)". groups.google.com/group/ziggis/browse_thread/thread/…
RyanDalton

3

Якщо у вас настільний рівень ArcEditor або ArcInfo, у вас є можливість використовувати SQL Server Express. Хоча одночасно може редагувати лише один користувач, блокування та розблокування можуть бути кращими - ви можете спробувати це спочатку. Існує багато документації про те, як це зробити, і вам не обов’язково бути dba - хоча мені подобаються постгреси. Без правопорушень QGIS люди;)

Також переконайтеся, що ваш продавець Esri надає вам пропозицію "ArcGIS Server Workgroup", а не Enterprise. Дивіться нижче - у вас може бути 10 одночасних підключень для редагування. Це повинно бути більше, ніж 3-5 доларів. Ціни 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. Виконання адміністрування сервера баз даних та його баз геоданих за допомогою ArcGIS Desktop означає, що для вас не потрібна додаткова експертиза програмного забезпечення або управління інформацією. для створення та використання цих типів баз геоданих ArcSDE.

Підключення до баз даних геоданих на сервері баз даних завжди є прямими з'єднаннями; вони використовують файли бібліотеки ArcSDE у клієнті для встановлення з'єднання. У цьому випадку клієнтськими програмами є ArcGIS Desktop на рівні ліцензії ArcEditor або ArcInfo, ArcGIS Engine та робоча група ArcGIS Server.

Носії цих продуктів включають інсталяційні файли для SQL Server Express. Після того, як ви створили екземпляр SQL Server Express і запустіть майстра, щоб дозволити екземпляру зберігати бази даних геоданих, бібліотеки в клієнтській програмі дозволяють вам підключатися до та працювати з серверами баз даних, а також створювати та працювати з базами геоданих на сервері баз даних.

За допомогою ArcGIS Desktop (ArcEditor та ArcInfo) та ArcGIS Engine ви можете налаштувати сервер баз даних і створити бази даних геоданих ArcSDE, доступ до яких може отримати декілька користувачів та редагувати один користувач за один раз .

З робочою групою ArcGIS Server за допомогою ArcGIS Desktop ви можете налаштувати сервер баз даних і створити бази даних геоданих ArcSDE, до яких можна отримати доступ до 10 користувачів одночасно, кожен з яких може редагувати одночасно . Під час використання серверів баз даних, ліцензованих через ArcGIS Server Workgroup, ви також можете підключитися до баз геоданих за допомогою веб-додатків, для яких немає обмеження на з'єднання. "


2
Я мав успіх у використанні баз геоданих ArcSDE SQL Server Express з декількома користувачами / редакторами, але минуло кілька років, як ми їх створили. GDB створюється на робочій станції одного користувача, інші користувачі в офісі підключаються до його примірника, і кожен користувач робить редагування у своїй власній версії, які потім за потреби надсилаються до версії за замовчуванням. Це все було встановлено на носіях для встановлення Desktop, не задіяний сервер ArcGIS, я впевнений, що жодних користувачів, які мають свою ліцензію на рівні ArcEditor / ArcInfo, не було жодних наслідків ліцензування.
MC5

3

Я написав плагін, який надає ArcGIS доступ до 50+ векторних форматів (включаючи PostGIS). Він все ще експериментальний, але ви можете спробувати його і сказати, як це відбувається.

Є переваги використання цього підходу над вбудованою функціональністю в ArcGIS (дивіться на FAQ), але знову ж таки, це все ще експериментально.

Завантажте та вкажіть тут


привіт, це все ще лише для читання?
Метт

1
програмно ви можете фактично писати через функцію ExecuteSQL. Я просто не створив інтерфейс, який дозволяє це робити через ArcMap. Тож ви можете писати через код, але ще не через GUI.
Рагі Ясер Бурхум

3

Я моніторив цю посаду та більш широку мережу для вирішення цього питання, оскільки хотів подібний інструмент. Сьогодні я наткнувся на своє (наше) рішення через RSS-канал до блогу Джеймса Фі . І я вважаю, що рішення, яке ви шукаєте, - це PgMap від ST-Links .

Я спробував версію ArcGIS 9.3, і це вражає. Досі борюся з правками, хоча я все ще є новачком PostGIS (справа в стовпці особи). Він також поставляється з гладким ESRI для завантажувача PostGIS, і, перш за все, це БЕЗКОШТОВНО! [Тестовано з OpenGeoSuite Community Edition 2.4.1]


Я чув, що st-link є безкоштовним лише один рік. Після чого вам потрібно мати ліцензію. Чи не правда?
OPENGISTECH

3

Перейдіть до Пуск -> Панель управління -> Продуктивність та обслуговування -> Адміністративні інструменти -> Джерела даних.

Перейдіть на вкладку System DSN.

Натисніть кнопку Додати.

Прокрутіть униз у списку. Ви повинні мати змогу побачити там свої драйвери PostgreSQL ODBC, якщо ви їх встановили. Клацніть перший драйвер ODBC PostgreSQL у списку.

Введіть у форму свої дані про з'єднання. Якщо з'єднання знаходиться на тій же машині, що і база даних PostgreSQL, запишіть localhost у поле сервера; в іншому випадку назва комп’ютера в мережі. Вам доведеться внести деякі зміни у файл pg_hba.conf, щоб підключитися до вашої бази даних в мережі. Про це читайте в посібниках по PostgreSQL в розділі «Аутентифікація користувача». Після цього натисніть кнопку Готово.

Аналогічно додайте всі драйвери PostgreSQL ODBC, які ви знайдете у списку.

Натисніть кнопку ОК. Тепер ви можете підключитися до бази даних PostgreSQL через драйвери ODBC. Драйвери потрібно було лише скеровувати до бази даних з інформацією про з'єднання.


3

З епохи 2011 року спробуйте ST-Links SpatialKit . Програмне забезпечення є безкоштовним і працює з ArcGIS 9.3 / 10.0 / 10.1 / 10.2.

У завантаженні є приємний PDF-файл для документування можливостей, серед яких перегляд, редагування тощо.


Майк, дивлячись на документацію ST-Links здається, що це може мати неабиякий потенціал. Ви користувалися ним особисто? Чи є у вас враження про його швидкість та зручність, якими ви можете поділитися з громадою?
RyanDalton

Насправді я все ще з’ясовую процес встановлення .. У мене ArcGIS 9.3 встановлений із власною конфігурацією, але я ще не бачу pgMap 1.0 у розширеннях. Сподіваюся, хтось інший може поділитися своїм досвідом
Майк Т

1
Пробачте, будь ласка, посилання на мій власний блог, але я переглянув PgMap після повідомлення про припинення роботи zigGIS. Мої спостереження тут: 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 Мб.

  5. Клацніть Завантаження

    Для PostgreSQL / PostGIS у завантаженому файлі має бути клієнтський набір "pg_client_windows86", що містить 32-бітну версію libeay32.dll, libiconv-2.dll, libintl-8.dll, libpq.dll та ssleay32.dll. Скопіюйте їх у свій каталог ArcGIS. На моєму комп’ютері з використанням 10.1 це було: C: Файли програми (x86) ArcGISDesktop10.1bin Якщо ви використовуєте 32-бітні вікна, це буде щось на зразок: C: Program FilesArcGISDesktop10.1bin

Після цього ви зможете підключитися та додати дані зі своєї бази даних. Щоб використовувати рівень запиту даних, спочатку потрібно буде підключитися до бази даних. У ArcGIS 10.1 вам потрібно буде перейти до Файл> Додати дані> Додати рівень запиту

Єдине, на що слід звернути увагу, - це те, що дані, що повертаються, повинні мати унікальне поле, яке ArcGIS може використовувати як основний ключ. Іноді вам може знадобитися вказати його, якщо ви використовуєте більше, ніж просто основний запит, і ArcGIS не може розробити, яке поле використовувати. Зробити це можна:

  1. Спочатку валідайте SQL-запит, натиснувши кнопку Validate (ArcGIS потрібно сформувати список полів, які знаходяться у виписці select, щоб заповнити діалогове вікно розширених параметрів).
  2. Після перевірки SQL натисніть кнопку Показати розширені параметри, кнопка фінішу зміниться з Finish на Next>
  3. Клацніть Далі>, і тоді ви зможете отримати доступ до діалогового вікна розширених параметрів.
  4. У діалоговому вікні розширених параметрів вам надається список усіх полів таблиці. Виберіть одне поле, яке буде діяти як унікальне поле ідентифікатора - за замовчуванням потрібно вибрати всі поля.
  5. Ви також можете встановити просторову систему відліку своїх даних, якщо це доцільно.
  6. Натисніть кнопку "Готово", і тоді ваш шар буде доданий на вашу карту.

Ви також можете запускати просторові запити відносно бази даних постгресів з відносною легкістю, хоча вам доведеться виготовляти поле ідентифікації на льоту. Наприклад, ось приклад виконання буфера на 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


2

Ефективно з ArcGIS 10.4, ви можете читати та записувати до геометрії PostGIS в підтримуваних базах даних PostgreSQL без необхідності будь-яких додаткових розширень. Я використовував лише розширену ліцензію для цього, але я вважаю, що стандартна ліцензія може також підключатися до бази даних PG-сервера без геоданих та використовувати це робоче поле як місце призначення інструментів для створення векторних. Це більш громіздко, але ви також можете використовувати базові клієнти ліцензій для запису в таблиці за допомогою SQL з Python (через arcpy.ArcSDESQLExecute). Шари запитів лише для читання були доступними на всіх рівнях ліцензій з ArcGIS 10.0.


Вінс, який процес налаштування записуваного підключення до бази даних, що не є SDE PostGIS в ArcGIS 10.4+? Спроба додати підключення до бази даних через ArcCatalog Advanced 10.5 дає помилку "підключення до системних баз даних не дозволено".
Руді Стріклан

1
Не існує жодного процесу, крім створення бази даних, її адміністрування, щоб містити дані, та підключення до неї. Якщо ви хочете спробувати це, і це не вдається, ви можете задати тут нове запитання (вказавши всі деталі). Якщо ви намагаєтеся працювати в основній базі даних як користувач postgres, вам потрібно спочатку отримати книгу про використання RDBMS.
Вінс

Дякую Вінс. Так, повідомлення про помилку трохи заплутане, тому що я намагаюся підключитися до просторової таблиці у ванільній базі даних PostGIS ("gis") - не в основній базі даних. Хоча ваша порада - я задокументую це питання та надішлю нове запитання.
Руді Стріклан


1

GISquirrel виконує цю роботу за частку вартості SDE. Він підтримує аркгізне з'єднання як з MSSQL, так і з PostGIS. Дуже простий у налаштуванні (здатний імпортувати до постгресів з shapefile / featureclass) та простий у обслуговуванні. Для невеликої кількості користувачів, які потребують можливості багатокористувацького редагування, це просто чудово.

Ми використовуємо GISquirrel / Arcgis для наших GIS "енергетичних користувачів", а QGIS може підключитися до того ж сервера PostGIS для наших "базових користувачів", що економить на ліцензійних витратах.


Чи можуть ваші "користувачі енергії" редагувати в середовищі ArcGIS або це все ще читається лише?
користувач17963

так, GISquirrel дозволяє повністю редагувати в ArcGIS.
Метт

Цікаво! А як щодо перевірки топології?
користувач17963

Це працює за допомогою створення темп бази даних для вибраних функцій користувача та блокування цих функцій для користувача для редагування, використовуючи ArcGIS, ви можете потім редагувати функцію в базі даних геоданих, як тільки зміни будуть збережені, функції оновлюються в PostGIS. Можна також редагувати всі функції в шарі одночасно.
Метт

1
Дякую, Метт, я спробую перевірити використання GISquirrel і побачити, чи працює він з нашими даними!
користувач17963

1

GISquirrel виконує цю роботу дуже добре для MSSQLserver, і я впевнений, що він буде добре працювати для Postgres. Я працюю в змішаному середовищі ESRI / Qgis, і я використовую GIS білку також для імпорту форм-файлів тощо в базу даних. У SQLserver GISsquirrel відслідковує стовпці геометрії, я використовую цю інформацію для оновлення таблиці geometry_column, що використовується Qgis. Дуже зручно ...


1

PgMap був замінений на st-links просторовий і не тільки підтримує PostGIS, але і підтримує SQL Server 2008. Він працює з ArcMap 9.3 та ArcMap 10. Він просто відповідає вашим вимогам. Перевірте це на www.st-links.com


0

Я вважаю, що у вас є кілька варіантів, крім використання SDE (хоча я зазначу, ви можете використовувати PG_Geometry в SDE, тому доступ до даних за допомогою програм ESRI або програмного забезпечення, сумісного з PostGIS). У вас є розширення ESRI Data Interoperability, ZigGIS, і ви, ймовірно, можете встановити копію геосервера або сервера карт та підключитися через сервіс WMS в ArcGIS. Подібно до попереднього допису про zigGIS та необхідності керувати запитами через pgAdmin, вам потрібно буде використовувати його для створення запитів за допомогою геосервера / mapserver. В ідеалі, якщо ви повторно використовували ті самі запити, ви можете зберегти їх як перегляди в postgresql та отримати доступ до даних таким чином.


0

ST-Links SpatialKit - це розширення ArcMap для прямого підключення до просторових баз даних без ArcSDE, No ArcInfo, No ArcGIS Server.

Згідно з їх ліцензією , це коштує 188 CAD, але вони заявляють: "Ми продовжуватимемо видавати безкоштовні ліцензії тим користувачам, які не можуть дозволити собі ліцензійний збір. Безкоштовні ліцензії мають обмежені строки. Якщо ви вимагаєте безкоштовної ліцензії, будь ласка, вкажіть причину в Ваш електронний лист із запитом на отримання ліцензії. "


0

Найпростішим способом додавання даних PostGIS до ArcMap є додавання "Підключення до сумісності". Для цього потрібно "Розширення сумісності даних".

Перед створенням з'єднання вважається хорошою ідеєю додати "Числовий індекс" та "Первинний ключ" до таблиці баз даних PostGIS.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.