使用带有SQL Server Spatial作为后端的ArcGIS Desktop?


15

我想知道如何最好地结合使用ArcGIS Desktop和SQL Server 2008。目前,我们在sql 2008和arcgis 10 shape文件之间运行手动导入和导出。对于具有地理数据类型的sql 2008,我期望可以很容易地用关系数据库替换地图文件,但是由于某些原因,它似乎并不像我期望的那么简单。

有谁知道如何使用sql 2008进行数据存储并删除shape文件?我已经读过关于arcsde的文章,但实际上不了解另一层的意义。不知道它实际上应该做什么。

Answers:


9

使用ArcSDE,您可以基本以2种格式存储空间数据。要么使用SDE本机格式(这是BLOB),要么根据您使用的数据库(SQL Server,Oracle,PostGIS,我也认为DB2空间)取决于相应的数据库本机格式。例如,对于Oracle,是SDO_GEOMETRY类型,对于SQL Server,是Geography或Geometry空间类型。

最终使用哪种格式完全取决于您自己,并且不会/不应该在客户端产生任何(巨大)差异。任何ESRI客户端(例如Arcmap)都将以相同的方式处理数据。我的建议是采用SQL Server本机格式(如果使用的话则为Oracle),否则我认为您必须使用仅ESRI的工具来进行最简单的空间查询或分析。另一方面,使用本机db格式将允许您从其他客户端甚至从SQL Server Management Studio查询数据。正如@Blomster所说,您可以将许多空间逻辑移到存储过程中。

将shapefile导入SQL Server的第一步是下载Morten Nielsen的Extremeley便捷Shape2SQL实用程序


13

既然已为ArcGIS 10标记了问题,请签出“查询图层”: http //help.arcgis.com/zh-CN/arcgisdesktop/10.0/help/index.html#/What_is_a_query_layer/00s50000000n000000/

我已使用它连接到非ArcSDE SQL Server 2008数据库。

您可以从文件菜单中找到它:

在此处输入图片说明

还有其他两个屏幕将引导您完成定义ArcMap所需的知识以构成查询层。

在此处输入图片说明
(请确保您的查询包含几何字段和唯一ID字段)

在此处输入图片说明

您将要对其进行测试,因为我知道它在发行版和SP1中存在错误。


6

以我的经验,添加SQL空间列类型使我能够将很多空间操作(距离,缓冲区)移到存储过程中,这确实非常方便。

ArcGIS工具箱具有“复制功能”工具,可将数据推送到sde地理数据库中,如果您指定“几何”或“地理”的配置关键字,则应生成sql空间列。


4

通过有效地向表中添加空间列,ArcSDE允许您将空间数据存储在SQL Server实例中。它不会改变它,也不会影响现有的连接/应用程序。如果您愿意,ArcSDE可以用作空间数据的元数据存储,例如要素类名称,所有者,范围,要存储的几何类型等(全部位于安装ArcSDE的元数据表中)。它允许您存储任何您喜欢的东西,图像等,并且仍然具有空间引用(在SQL Server中,如果我没记错的话,空间数据存储为tpe图像吗?)。ArcSDE管理此数据的存储。实际上,这是一个很好的工具,所有来自怀疑ESRI用户的东西。

我目前正在使用带有ArcSDE的ArcGIS Server,并在Oracle 11g后端上直接连接(使用tnsnames),这非常好。我不明白为什么我认为SQL Server还不成熟,却为什么要使用SQL Server来存储空间数据。


0

您可以通过安装GISquirrel扩展名(可从www.gisquirrel.com获得)来编辑ArcGIS中SQL 2008或2012中存储的矢量数据。 这也提供了将空间数据从任何数据源导入SQL Server的工具,这些数据源可以在ArcMap中作为图层查看。我最近导入了一个包含9000万个多边形的表格-用了4天,但使用2岁的笔记本电脑却毫不费力地工作了!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.