Answers:
ArcGIS 10.1和ArcGIS 10.2本身都支持PostGreSQL和PostGIS数据类型。这两个版本的帮助中均包含了如何进行吸气设置以及如何配置表以使用PostGIS几何类型的演练。
在我的博客上看一下这篇文章:http : //www.paolocorti.net/2008/06/06/spatial-database-for-postgres-and-arcgis-users-how-to-choose/
基本上,您有2个选择:
请注意,如果您需要地理数据库支持(域,拓扑等)或ArcCatalog支持,则此时唯一的解决方案(使用ArcSde)是唯一的方法。
据我所知(我没有直接对其进行测试),您可以在没有ArcSde网关的情况下建立到PostGis的只读直接连接。
zigGIS不再处于活动状态,并且网站处于脱机状态
我有一些关于9.3的文章。第一个在这里,您可以从那里找到其余的:http : //geobabble.wordpress.com/2008/05/28/using-arcsde-93-with-postgresql-part-1/
我已经用10.0完成了一次,没有任何问题。我要说的是,当在ArcSDE中使用PostgreSQL和PostGIS时,我强烈建议坚持使用Esri支持的任何版本。
最简单的是Obtuse Software的zigGIS。目前,您必须为此付费,但是有消息称第3版将是开源的。
根据Google Code Archive的资料ziggis
:
尽管不再支持zigGIS v1.2,但仍可以在此处下载。zigGIS v2.0现在是一种商业产品,包括重大的稳定性改进,性能提高以及完整的编辑功能。有关更多详细信息,请访问Obtuse Software的网站。
并且指向Obtuse Software网站的链接似乎已断开。
ArcGIS 10.1 SP1可以本机连接到PostGIS 2.0.0数据库,但是该连接是只读的,并且大多数情况下用作查询层的更干净前端(实际上,它只是将任何层作为查询层加载)。数据库连接仅允许您查看目录中数据库中的所有表和层。
作为替代方案,还有arcgis-ogr,它允许作为ArcGIS插件连接到所有OGR矢量类型。。目前,它也是只读的。
首先:您只能通过OLE DB连接将ArcGIS与PostgreSQL一起使用,这意味着,您只能读取公用表和列(甚至可以读取空间列,但是ArcGIS无法做任何事情来他们,
要使用ArcGIS和PostgreSQL + PostGIS(意味着需要查看空间数据),将需要ArcSDE或ZigGIS。
使用这两个选项,您可以查询,编辑和分析存储在PostGIS中,ArcMap或其他ESRI工具中的数据。
ArcSDE是ESRI提供的中间件,可更改整个工作流程(安装,配置地理数据库等),而ZigGIS是桌面工具(我的意思是,仅在涉及ESRI桌面工具时使用)。
如果您具有ArcEditor或ArcInfo桌面级别,则可以使用SQL Server Express。即使一次只有一个用户可以编辑,但锁定和解锁可能会更好-您可以先尝试一下。关于如何执行此操作的文档很多,而且您不必一定是dba的人-尽管我喜欢postgres。没有冒犯QGIS的人;)
另外,请确保您的Esri销售人员为您提供“ ArcGIS Server工作组”而不是企业的报价。参见下文-您可以有10个并发编辑连接。它应该更像是$ 3-5k。定价http://www.esri.com/software/arcgis/arcgisserver/pricing
另请参阅此帖子,以获取有关许可的良好说明,以及有关SDE和SQL Server Express ArcSDE桌面许可的链接。
“您可以通过“目录”窗口或ArcCatalog中的“数据库服务器”节点创建地理数据库并执行其他数据库服务器管理任务。通过ArcGIS Desktop执行数据库服务器及其地理数据库管理意味着您不需要额外的软件或数据库管理专业知识创建和使用这些类型的ArcSDE地理数据库。
与数据库服务器上的地理数据库的连接始终是直接连接。他们使用客户端中的ArcSDE库文件进行连接。在这种情况下,客户端应用程序是ArcEditor或ArcInfo许可级别的ArcGIS Desktop,ArcGIS Engine和ArcGIS Server工作组。
这些产品的媒体包括SQL Server Express的安装文件。创建SQL Server Express实例并运行向导以使该实例能够存储地理数据库后,客户端应用程序中的库将允许您连接到数据库服务器并与之一起使用,并在数据库服务器上创建并使用地理数据库。
借助ArcGIS Desktop(ArcEditor和ArcInfo)和ArcGIS Engine,您可以设置数据库服务器并创建ArcSDE地理数据库,该数据库可以由几个用户访问并可以一次由一个用户编辑。
通过使用ArcGIS Desktop的ArcGIS Server Workgroup,您可以设置数据库服务器并创建ArcSDE地理数据库,一次最多可以有10个用户访问这些用户,所有这些用户都可以同时进行编辑。使用通过ArcGIS Server工作组许可的数据库服务器时,您也可以使用Web应用程序连接到地理数据库,而该应用程序没有连接限制。”
我编写了一个插件,使ArcGIS可以访问50多种矢量格式(包括PostGIS)。它仍处于实验阶段,但是您可以尝试一下,并告诉我它的进展情况。
与ArcGIS的内置功能相比,使用这种方法有很多优势(请参阅FAQ),但同样,它仍处于试验阶段。
我一直在监视本文和更广泛的网络,以寻求解决方案,因为我想要一个类似的工具。今天,我通过James Fee博客的 RSS feed进入了(我们的)解决方案。我相信你所寻求的解决方案是PgMap通过ST-链接。
我已经尝试过ArcGIS 9.3版本,它给人留下了深刻的印象。由于我仍然是PostGIS新手(身份列问题),因此仍在努力进行编辑。它还带有一个光滑的ESRI到PostGIS加载器,并且最重要的是它是免费的![使用OpenGeoSuite社区版2.4.1测试]
转到开始->控制面板->性能和维护->管理工具->数据源。
转到“系统DSN”选项卡。
单击添加。
在列表中向下滚动。如果安装了PostgreSQL ODBC驱动程序,则应该能够在其中看到它们。单击列表中的第一个PostgreSQL ODBC驱动程序。
在表格中输入您的连接详细信息。如果连接与PostgreSQL数据库在同一台机器上,则在服务器字段中输入localhost;否则为网络上计算机的名称。您必须在pg_hba.conf文件中进行一些更改才能连接到网络上的数据库。在PostgreSQL手册的User Authentication部分中阅读有关它的内容。完成后,单击“完成”。
同样,添加在列表中找到的所有PostgreSQL ODBC驱动程序。
单击确定。您现在可以通过ODBC驱动程序连接到PostgreSQL数据库。仅需使用连接信息将驱动程序定向到数据库。
从2011年开始,尝试使用ST-Links SpatialKit。该软件是免费软件,可与ArcGIS 9.3 / 10.0 / 10.1 / 10.2一起使用。
该下载文件具有漂亮的PDF文件来记录功能,包括查看,编辑等。
之前我已经完成了此操作,但是使用ArcGIS 10.1和10.2并没有太多麻烦,但是不幸的是,它不能与9.3和Postgres 9.2一起使用(我从内存中认为)。
我使用了esri的驱动程序。登录到ESRI客户服务站点,尽管我认为自编写说明以来情况已经改变。
向下滚动,直到看到“ PostgreSQLQL客户端库(Windows)”,其大小应为2.21 MB。
点击下载
对于PostgreSQL / PostGIS,下载的文件中应该是库的“ pg_client_windows86”客户端集,其中包含必需的32位版本的libeay32.dll,libiconv-2.dll,libintl-8.dll,libpq.dll和ssleay32.dll。将它们复制到ArcGIS bin目录。在我使用10.1的计算机上,它是:C:Program Files(x86)ArcGISDesktop10.1bin如果您使用的是32位窗口,则类似于:C:Program FilesArcGISDesktop10.1bin
完成此操作后,您应该能够连接到数据库并从数据库添加数据。要使用数据查询层,您首先需要连接到数据库。在ArcGIS 10.1中,您需要转到文件>添加数据>添加查询图层
唯一需要注意的是,返回的数据必须具有唯一的字段,ArcGIS可以将其用作主键。如果您使用的不仅仅是基本查询,并且ArcGIS无法计算要使用的字段,有时可能需要指定它。您可以通过以下方式做到这一点:
您也可以相对轻松地针对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工具传递。我还没有测试太多。因此,添加列之类的东西我会看到这造成了严重破坏。我认为您可以通过其他一些操作来创建动态ID字段,从而与其他数据库(如SQLServer和Oracle)进行空间SQL调用。
我前段时间做了完整的教程:http : //www.gisuser.org.nz/resources/tips-and-tricks/look-mum-dad-no-hands
在ArcGIS 10.4中有效,您可以在受支持的PostgreSQL数据库中读写PostGIS几何图形,而无需任何其他扩展。我只使用了高级许可证,但是我相信标准许可证也可以连接到非地理数据库PG服务器数据库,并将该工作空间用作矢量创建工具的目标。这比较麻烦,但是您也可以使用Basic许可客户端使用带有Python的SQL(通过arcpy.ArcSDESQLExecute
)写入表。自ArcGIS 10.0起,所有licemse级别均已选择只读查询层。
PostgreSQL 9是否可以与ArcGIS 10一起使用?
用于编辑Postgis ZigGIS 3.0
http://groups.google.com/group/ziggis/browse_thread/thread/8e17f4c2ac57f428?hl=zh-CN
可以通过正确的ODBC Postgres驱动程序并在ArcCatalog中进行直接连接来完成只读操作
GISquirrel只需 SDE成本的一小部分即可完成这项工作。它支持与MSSQL和PostGIS的arcgis连接。设置非常简单(可以从shapefile / featureclass导入到postgres),并且易于维护。对于需要多用户编辑功能的少数用户来说,它就好了。
我们对GIS“高级用户”使用GISquirrel / Arcgis,而QGIS可以为“基本用户”连接到同一个PostGIS服务器,从而节省了许可成本。
PgMap被st-linksspaceKit取代,不仅支持PostGIS,而且还支持SQL Server2008。它可以与ArcMap 9.3和ArcMap 10一起使用。它完全可以满足您的要求。在www.st-links.com上查看
ST-Links SpatialKit是一个ArcMap扩展,可使用No ArcSDE,ArcInfo,ArcGIS Server直接连接到空间数据库。
根据他们的许可证,费用为188加元,但他们说:“我们将继续为无法负担许可证费用的用户发放免费许可证。免费许可证有时间限制。如果您要求免费许可证,请在您的许可请求电子邮件。”
将PostGIS数据添加到ArcMap的一种简单方法是添加“互操作性连接”。为此,需要“数据互操作性扩展”。
创建连接之前,在PostGIS数据库表中添加“数字索引”和“主键”是一个好主意。