Conectando-se ao banco de dados PostGIS do ArcMap para exibição e consulta sem o ArcSDE?

37

Como conectar-me a um banco de dados PostGIS do ArcMap usando o ArcGIS Desktop 9.3 e posterior?

Eu gostaria de poder executar consultas espacialmente ativadas e receber os resultados de volta (por exemplo, junções espaciais e não espaciais, filtragem etc.), em vez de simplesmente descartar o conteúdo de uma tabela.

Não quero usar as extensões espaciais do ArcSDE, quero usar as extensões espaciais do PostGIS no ArcGIS Desktop.

fmark
fonte

Respostas:

29

Se você estiver usando o ArcGIS 10.0 ou posterior, poderá conectar-se diretamente aos dados do PostGIS usando uma Camada de consulta, há mais informações sobre isso disponíveis na ajuda de cada versão:

Para usar o tipo de geometria PostGIS, o administrador do banco de dados deve instalar o PostGIS no cluster de banco de dados PostgreSQL. O PostGIS é uma instalação de código aberto de terceiros. Depois de instalado, o administrador do banco de dados pode usar o banco de dados do modelo PostGIS para criar um banco de dados contendo o tipo de geometria PostGIS ou configurar um banco de dados existente para usar o tipo de geometria PostGIS.

  • 10.0 (esta página pode não ser exibida corretamente no Chrome, por isso usei o IE para ler)
CDBrown
fonte
22

O ArcGIS 10.1 e o ArcGIS 10.2 suportam nativamente os tipos de dados PostGreSQL e PostGIS. Está incluído na ajuda para ambas as versões uma explicação passo a passo da instalação e configuração de tabelas para usar os tipos de geometria PostGIS.

om_henners
fonte
5
Dada a alta visibilidade deste QI, incentivo a aprofundar esta resposta, por isso é muito mais do que um "veja este link". Além dos arquivos de ajuda vinculados, também existem Editando dados PostGIS no ArcGIS Desktop? e Usando o ArcGIS e o QGIS juntos no ambiente de edição multiusuário?
Matt Wilkie
O ArcGIS agora tem suporte nativo agora (10.1+) e os requisitos podem ser vistos aqui: desktop.arcgis.com/en/desktop/latest/get-started/… . Os 10,3 patch notes mostrar correções de bugs relevantes de 10,2 gisupdates.esri.com/ArcGIS/ArcGIS103pr_releasenotes.pdf
James Milner
18

Dê uma olhada neste post no meu blog: http://www.paolocorti.net/2008/06/06/spatial-database-for-postgres-and-arcgis-users-how-to-choose/

Basicamente, você tem 2 opções:

  1. use PostGis com ArcSde (então você precisa de uma licença ArcSde e ArcEditor se precisar editar dados)
  2. use zigGIS: http://www.obtusesoft.com/ (observe que não foi testado no ArcGis 10.0). Você só precisará de uma caixa do ArcView para conectar-se a ela, mesmo para gravar dados.

Observe que se você precisar de suporte ao Geodatabase (Domínios, topologia etc ...) ou suporte ao ArcCatalog, a primeira solução (com ArcSde) é o único caminho a seguir no momento.

Tanto quanto ouvi (não o testei diretamente) no ArcGis Desktop 10, você pode fazer uma conexão direta somente de leitura ao PostGis sem o gateway ArcSde.

O zigGIS não está mais ativo e o site está offline

capooti
fonte
4
-1, não porque foi uma resposta ruim, mas porque a passagem do tempo e as conseqüentes alterações o tornaram (zig descontinuado, agora suporte nativo ao arcgis para a geometria Post) e essa resposta não deve mais estar no topo.
Matt Wilkie
9

Eu tenho alguns posts sobre como fazê-lo com 9.3. O primeiro está aqui e você pode obter o restante deles a partir daí: http://geobabble.wordpress.com/2008/05/28/using-arcsde-93-with-postgresql-part-1/

Já fiz isso uma vez com a 10.0 e não tive problemas. Eu direi que, ao usar o PostgreSQL e o PostGIS com o ArcSDE, recomendo enfaticamente que sejam mantidas as versões suportadas pela Esri.

Bill Dollins
fonte
Segui o blog Bills e a documentação da esri para obter com êxito o Postgresql e o PostGIS trabalhando com o ArcSDE. Concordo que você precisa usar a versão suportada pela esri, mesmo que às vezes seja difícil de encontrar, por exemplo, o Postgresql 8.4.1 foi difícil de localizar.
Ando
5

O mais fácil seria o zigGIS da Obtuse Software . Atualmente você tem que pagar por isso, mas a palavra na rua é que a versão 3 será de código aberto .


De acordo com o Google Code Archive emziggis :

O zigGIS v1.2 não é mais suportado, embora permaneça disponível aqui para download. O zigGIS v2.0 agora é um produto comercial e inclui grandes melhorias de estabilidade, aumentos de desempenho e recursos completos de edição. Para mais detalhes, consulte o site da Obtuse Software .

e o link para o site da Obtuse Software parece estar quebrado.

om_henners
fonte
A versão 3 será de código aberto. O único problema com isso agora é que ele não gerencia pelo ArcCatalog - o que significa que você precisa usar o PgAdmin ou SQL para administrar seu banco de dados. Outros, que você é bom
TheSteve0
Para adicionar aos comentários de SteveO, aqui está o roteiro do ZigGISv3: abegillespie.blogspot.com/2010/06/on-to-30.html O modelo de provedor será uma grande melhoria.
Jay Cummins
Thee free version 1.0 ainda está disponível?
fmark
Sim, a versão gratuita está disponível aqui: code.google.com/p/ziggis Mas é ótimo, não oferecemos mais suporte e você não pode editar (que foi o principal recurso introduzido na versão 2.0).
Xanadont 7/08
Vi recentemente este post através de outra fonte de lista que afirmava que "o zigGIS atingiu oficialmente seu fim de vida útil, já que a próxima versão do ArcGIS deve oferecer suporte à interoperabilidade direta de leitura / gravação com o PostGIS (tornando o zigGIS discutível)". groups.google.com/group/ziggis/browse_thread/thread/…
RyanDalton
4

O ArcGIS 10.1 SP1 pode se conectar aos bancos de dados PostGIS 2.0.0 de forma nativa, mas a conexão é somente leitura e funciona principalmente como um front end mais limpo para as camadas de consulta (na verdade, apenas carrega todas as camadas como camadas de consulta). A conexão com o banco de dados apenas permite visualizar todas as tabelas e camadas no banco de dados no catálogo.

postgis1 postgis2 postgis3

Como alternativa, também existe o arcgis-ogr , que permite conexões com todos os tipos de vetores OGR como um plug-in do ArcGIS. arcgis-ogr. Também é somente leitura no momento.

DPierce
fonte
3

Primeiro de tudo: você só poderá usar o ArcGIS com PostgreSQL usando conexões OLE DB, ou seja, você poderá ler apenas tabelas e colunas comuns (você poderá ler as colunas espaciais, mas o ArcGIS não poderá fazer nada para eles,

Para usar o ArcGIS e o PostgreSQL + PostGIS (o que significa que você precisa ver dados espaciais), você precisará do ArcSDE ou do ZigGIS .

Com as duas opções, você pode consultar, editar e analisar dados armazenados no PostGIS, dentro do ArcMap ou de outras ferramentas ESRIs.

O ArcSDE é um middleware fornecido pela ESRI, alterando todo o fluxo de trabalho (de instalação, configuração de um geodatabse, etc.) do trabalho e o ZigGIS é uma ferramenta de desktop (quero dizer, usada apenas quando as ferramentas de ESRIs estão envolvidas).

George Silva
fonte
11
Vi recentemente este post através de outra fonte de lista que afirmava que "o zigGIS atingiu oficialmente seu fim de vida útil, já que a próxima versão do ArcGIS deve oferecer suporte à interoperabilidade direta de leitura / gravação com o PostGIS (tornando o zigGIS discutível)". groups.google.com/group/ziggis/browse_thread/thread/…
RyanDalton
3

Se você possui o nível de desktop do ArcEditor ou ArcInfo, poderá usar o SQL Server Express. Mesmo que apenas um usuário possa editar por vez, o bloqueio e a desbloqueio podem ser melhores - você pode tentar isso primeiro. Há muita documentação sobre como fazê-lo, e você não precisa ser um dba - embora eu goste do postgres. Sem ofensa pessoal QGIS;)

Além disso, verifique se o seu vendedor da Esri fornece uma cotação para "ArcGIS Server Workgroup", não Enterprise. Veja abaixo - você pode ter 10 conexões de edição simultâneas. Deve ser mais como $ 3-5k. Preços http://www.esri.com/software/arcgis/arcgisserver/pricing

Consulte também esta publicação para obter uma boa explicação do licenciamento e links sobre a licença de desktop SDE e SQL Server Express ArcSDE

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

"Você cria geodatabases e executa outras tarefas administrativas para servidores de banco de dados através do nó Database Servers na janela Catalog ou ArcCatalog. Executar a administração do servidor de banco de dados e seus geodatabases através do ArcGIS Desktop significa que não é necessário nenhum software extra ou experiência em administração de banco de dados para você para criar e usar esses tipos de bancos de dados geográficos ArcSDE.

As conexões com os geodatabases em um servidor de banco de dados são sempre conexões diretas; eles usam os arquivos da biblioteca ArcSDE no cliente para fazer a conexão. Nesse caso, os aplicativos clientes são o ArcGIS Desktop no nível de licença do ArcEditor ou ArcInfo, ArcGIS Engine e ArcGIS Server Workgroup.

A mídia desses produtos inclui arquivos de instalação do SQL Server Express. Depois de criar a instância do SQL Server Express e executar o assistente para permitir que a instância armazene bancos de dados geográficos, as bibliotecas no aplicativo cliente permitem conectar e trabalhar com os servidores de banco de dados e criar e trabalhar com bancos de dados geográficos no servidor de banco de dados.

Com o ArcGIS Desktop (ArcEditor e ArcInfo) e o ArcGIS Engine, você pode configurar um servidor de banco de dados e criar geodatabases ArcSDE que podem ser acessados ​​por alguns usuários e editados por um usuário por vez .

Com o ArcGIS Server Workgroup usando o ArcGIS Desktop, você pode configurar um servidor de banco de dados e criar bancos de dados ArcSDE que podem ser acessados ​​por até 10 usuários por vez, todos os quais podem ser editados simultaneamente . Ao usar os servidores de banco de dados licenciados pelo ArcGIS Server Workgroup, você também pode se conectar aos bancos de dados geográficos usando aplicativos da Web, para os quais não há limite de conexão. "

awesomo
fonte
2
Eu tive sucesso usando os bancos de dados geográficos ArcSDE SQL Server Express com vários usuários / editores, mas já faz alguns anos desde que o configuramos. O GDB é criado na estação de trabalho de um usuário, outros usuários no escritório se conectam à sua instância e cada usuário faz edições em sua própria versão, que são postadas na versão padrão quando desejado. Tudo isso foi instalado a partir da mídia de instalação do Desktop, sem o ArcGIS Server envolvido, tenho certeza de que não havia implicações de licenciamento além de cada usuário que possuísse uma licença no nível do ArcEditor / ArcInfo do Desktop.
MC5
3

Eu escrevi um plugin que dá ao ArcGIS acesso a mais de 50 formatos de vetor (incluindo o PostGIS). Ainda é experimental, mas você pode experimentá-lo e me dizer como vai.

Existem vantagens em usar essa abordagem sobre a funcionalidade embutida no ArcGIS (consulte as Perguntas frequentes), mas, novamente, ainda é experimental.

Download e instruções aqui

Ragi Yaser Burhum
fonte
oi, isso ainda é somente leitura?
Matt
11
programaticamente, você pode realmente escrever através da funcionalidade ExecuteSQL. Eu apenas não construí uma interface que permita fazê-lo através do ArcMap. Então você pode escrever através do código, mas ainda não através da GUI.
Ragi Yaser Burhum
3

Tenho monitorado este post e a Web em geral para encontrar uma solução para isso, pois queria uma ferramenta semelhante. Hoje, encontrei minha (nossa) solução via feed RSS no blog de James Fee . E acredito que a solução que você procura é o PgMap da ST-Links .

Eu tentei a versão do ArcGIS 9.3 e é impressionante. Ainda estou lutando com edições, já que eu ainda sou um novato no PostGIS (coisa da coluna de identidade). Ele também vem com um elegante carregador ESRI para PostGIS e, acima de tudo, é GRÁTIS! [Testado com o OpenGeoSuite Community Edition 2.4.1]

Erick
fonte
Ouvi dizer que o st-link é gratuito apenas por um ano. Após o qual você precisa ter uma licença. Não é verdade?
OPENGISTECH
3

Vá para Iniciar -> Painel de Controle -> Desempenho e Manutenção -> Ferramentas Administrativas -> Fontes de Dados.

Vá para a guia DSN do sistema.

Clique em Adicionar.

Role para baixo na lista. Você poderá ver os drivers ODBC do PostgreSQL lá se os tiver instalado. Clique no primeiro driver ODBC do PostgreSQL na lista.

Digite os detalhes da sua conexão no formulário. Se a conexão estiver na mesma máquina que o banco de dados PostgreSQL, escreva localhost no campo servidor; caso contrário, o nome do computador na rede. Você precisará fazer algumas alterações no arquivo pg_hba.conf para conectar-se ao seu banco de dados na rede. Leia sobre isso nos manuais do PostgreSQL na seção Autenticação do usuário. Depois disso, clique em Concluir.

Adicione todos os drivers ODBC do PostgreSQL que você encontrar na lista da mesma forma.

Clique OK. Agora você pode se conectar ao banco de dados PostgreSQL através dos drivers ODBC. Os drivers só precisavam ser direcionados ao banco de dados com informações de conexão.

Anurag
fonte
3

Desde a época de 2011, tente o ST-Links SpatialKit . O software é freeware e funciona com ArcGIS 9.3 / 10.0 / 10.1 / 10.2.

O download possui um PDF agradável para documentar os recursos, que incluem visualização, edição etc.

Mike T
fonte
Mike, olhando para a documentação ST-Links parece que pode ter um potencial incrível. Você já usou pessoalmente? Você tem alguma impressão de velocidade e usabilidade que possa compartilhar com a comunidade?
RyanDalton
Na verdade, ainda estou descobrindo o processo de instalação. Tenho o ArcGIS 9.3 instalado com uma configuração personalizada, mas ainda não vejo o pgMap 1.0 nas extensões. Espero que alguém possa compartilhar sua experiência
Mike T
11
Por favor, perdoe o link do meu próprio blog, mas dei uma olhada no PgMap após o anúncio de que o zigGIS estava sendo desligado. Minhas observações estão aqui: blog.geomusings.com/2011/08/09/taking-a-look-at-pgmap Dado que parece que o ArcMap não poderá editar diretamente bancos de dados espaciais na versão 10.1, o PgMap parece ainda mais atraente .
Bill Dollins
2

Eu fiz isso antes com muitos problemas ao usar o ArcGIS 10.1 e 10.2, infelizmente, ele não funciona com o 9.3 e o postgres 9.2, penso na memória.

Eu usei os drivers da esri. Faça logon no site de atendimento ao cliente da ESRI, embora eu ache que isso mudou desde que escrevi as instruções.

  1. Selecione sua versão
  2. "Downloads de software"
  3. "Arquivos de suporte do DMBS"
  4. Role para baixo até ver "Bibliotecas cliente do PostgreSQLQL (Windows)", que deve ter 2,21 MB de tamanho.

  5. Clique em Downloads

    Para o PostgreSQL / PostGIS, o arquivo baixado deve ser o conjunto de bibliotecas do cliente "pg_client_windows86" que contém a versão necessária de 32 bits da libeay32.dll, libiconv-2.dll, libintl-8.dll, libpq.dll e ssleay32.dll. Copie-os para o diretório bin do ArcGIS. No meu computador usando 10.1, era: C: Arquivos de Programas (x86) ArcGISDesktop10.1bin Se você estiver usando janelas de 32 bits, seria algo como: C: Arquivos de ProgramasArcGISDesktop10.1bin

Depois de fazer isso, você poderá conectar-se e adicionar dados do seu banco de dados. Para usar uma camada de consulta de dados, você primeiro precisará se conectar ao seu banco de dados. No ArcGIS 10.1, você precisará ir para Arquivo> Adicionar dados> Adicionar camada de consulta

A única coisa a observar é que os dados retornados precisam ter um campo exclusivo que possa ser usado como chave primária pelo ArcGIS. Às vezes, você pode precisar especificá-lo se estiver usando mais do que apenas uma consulta básica e o ArcGIS não puder determinar qual campo usar. Você pode fazer isso:

  1. Primeiro valide a consulta SQL clicando no botão Validar (o ArcGIS precisa gerar uma lista de campos que estão na instrução select para preencher a caixa de diálogo de opções avançadas).
  2. Após a validação do SQL, clique em Mostrar opções avançadas. O botão Concluir mudará de Concluir para Avançar>.
  3. Clique em Avançar> e você poderá acessar a caixa de diálogo de opções avançadas.
  4. Na caixa de diálogo de opções avançadas, você recebe uma lista de todos os campos da tabela. Selecione um campo que atuará como um campo identificador exclusivo - o padrão é ter todos os campos selecionados.
  5. Você também pode definir o sistema de referência espacial dos seus dados, se for apropriado.
  6. Clique em Concluir e sua camada será adicionada ao seu mapa.

Você também pode executar as consultas espaciais no banco de dados do postgres com relativa facilidade, embora seja necessário fabricar um campo de identificação em tempo real. Por exemplo, aqui está um exemplo de como fazer um buffer de 100 km.

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

Além disso, você também pode salvar qualquer camada de consulta como um arquivo de camada e passá-la por algumas das ferramentas padrão do ArcGIS. Eu não testei muito isso. Então, adicionando colunas e coisas assim, eu pude ver isso causando estragos. Eu acho que você poderia fazer chamadas SQL espaciais com outros bancos de dados como SQLServer e Oracle, bem como um pouco de mexer para criar o campo de identificação instantânea.

Eu fiz um tutorial completo há algum tempo em: http://www.gisuser.org.nz/resources/tips-and-tricks/look-mum-dad-no-hands

andy3092
fonte
2

A partir do ArcGIS 10.4, você pode ler e gravar na geometria PostGIS nos bancos de dados PostgreSQL suportados, sem a necessidade de extensões adicionais. Eu usei apenas uma licença avançada para isso, mas acredito que uma licença padrão também pode se conectar a um banco de dados de servidor PG sem geodatabase e usar esse espaço de trabalho como destino para ferramentas de criação de vetores. É mais complicado, mas você também pode usar clientes de licença Basic para gravar em tabelas usando SQL com Python (via arcpy.ArcSDESQLExecute). As Camadas de consulta somente leitura têm sido uma opção com todos os níveis de licença desde o ArcGIS 10.0.

Vince
fonte
Vince, qual é o processo para configurar uma conexão de banco de dados PostGIS não SDE gravável no ArcGIS 10.4+? Tentar adicionar uma conexão de banco de dados via ArcCatalog Advanced 10.5 gera um erro "conexões com bancos de dados do sistema não são permitidas".
Rudy Stricklan
11
Não há processo, além de criar o banco de dados, administrá-lo para conter dados e conectar-se a ele. Se você quiser tentar isso e falhar, pode fazer uma nova pergunta aqui (fornecendo todos os detalhes). Se você estiver tentando trabalhar no banco de dados mestre como usuário do postgres, precisará realmente obter um livro sobre o uso do RDBMS.
Vince
Obrigado Vince. Sim, a mensagem de erro é um pouco confusa, pois estou tentando conectar-me a uma tabela espacial em um banco de dados PostGIS de baunilha ("gis") - não no banco de dados mestre. No entanto, seu conselho é o seguinte: documentarei o problema e submeterei uma nova pergunta.
Rudy Stricklan
1

GISquirrel faz o trabalho por uma fração do custo da SDE. Ele suporta conexão arcgis ao MSSQL e PostGIS. Muito simples de configurar (capaz de importar para o postgres do shapefile / featureclass) e simples de manter. Para um pequeno número de usuários que precisam da capacidade de edição para vários usuários, tudo bem.

Usamos o GISquirrel / Arcgis para nossos 'usuários avançados' de GIS e o QGIS pode se conectar ao mesmo servidor PostGIS para nossos 'usuários básicos', o que economiza em custos de licença.

Matt
fonte
Seus 'usuários avançados' podem editar no ambiente ArcGIS ou ainda são somente leitura?
User17963
sim GISquirrel permite edição completa no ArcGIS.
Matt
Interessante! E as verificações de topologia?
User17963
Isso funciona ao criar um banco de dados temporário para os recursos selecionados do usuário e bloqueia esses recursos ao usuário para edição. Usando o ArcGIS, você pode editar o recurso no banco de dados geográfico, uma vez que as edições são salvas, os recursos são atualizados no PostGIS. Também é possível editar todo o recurso em uma camada de uma só vez.
Matt
11
Obrigado Matt, vou testar usando o GISquirrel e ver se funciona com nossos dados!
User17963 10/10
1

O GISquirrel faz o trabalho muito bem para o MSSQLserver, e tenho certeza de que funcionará bem para o Postgres. Eu trabalho em um ambiente misto de ESRI / Qgis e também uso o GIS squirrel para importar shapefiles etc. para o banco de dados. No SQLserver, o GISsquirrel mantém o controle das colunas de geometria, eu uso essas informações para atualizar a tabela geometry_columns usada pelo Qgis. Muito conveniente ...

Peter Bange
fonte
1

O PgMap foi substituído pelo st-links spatialKit e não apenas oferece suporte ao PostGIS, mas também ao SQL Server 2008. Ele funciona com o ArcMap 9.3 e o ArcMap 10. Apenas atende aos seus requisitos. Confira em www.st-links.com

chun
fonte
0

Acredito que você tenha várias opções fora do uso do SDE (embora eu aponte para você que pode usar o PG_Geometry no SDE, portanto, acesse dados via software ESRI ou software OS compatível com PostGIS). Você possui a extensão de interoperabilidade de dados ESRI, ZigGIS, e provavelmente pode instalar uma cópia do servidor geográfico ou servidor de mapas e conectar-se através de um serviço WMS no ArcGIS. Semelhante ao post anterior sobre o zigGIS e a necessidade de gerenciar consultas via pgAdmin, você precisaria usá-lo para criar suas consultas com o geoserver / mapserver. Idealmente, se você estivesse reutilizando as mesmas consultas, poderia salvá-las como visualizações no postgresql e acessar os dados dessa maneira.

wilsongis
fonte
0

O ST-Links SpatialKit é uma extensão do ArcMap para conectar-se diretamente a bancos de dados espaciais com No ArcSDE, No ArcInfo, No ArcGIS Server.

De acordo com a licença , custa CAD $ 188, mas eles declaram: "Continuaremos a emitir licenças gratuitas para os usuários que não puderem pagar a taxa de licença. As licenças gratuitas têm limites de tempo. Se você solicitar uma licença gratuita, forneça o motivo em seu e-mail de solicitação de licença ".

RyanDalton
fonte
0

Uma maneira fácil de adicionar dados PostGIS ao ArcMap é adicionando uma 'Conexão de Interoperabilidade'. Para fazer isso, a 'Extensão de interoperabilidade de dados' é necessária.

É uma boa ideia adicionar um 'Índice Numérico' e 'Chave Primária' à Tabela de Banco de Dados PostGIS antes de criar a conexão.

Vasanth Reddy Donakanti
fonte