Answers:
使用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实用程序
既然已为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中存在错误。
通过有效地向表中添加空间列,ArcSDE允许您将空间数据存储在SQL Server实例中。它不会改变它,也不会影响现有的连接/应用程序。如果您愿意,ArcSDE可以用作空间数据的元数据存储,例如要素类名称,所有者,范围,要存储的几何类型等(全部位于安装ArcSDE的元数据表中)。它允许您存储任何您喜欢的东西,图像等,并且仍然具有空间引用(在SQL Server中,如果我没记错的话,空间数据存储为tpe图像吗?)。ArcSDE管理此数据的存储。实际上,这是一个很好的工具,所有来自怀疑ESRI用户的东西。
我目前正在使用带有ArcSDE的ArcGIS Server,并在Oracle 11g后端上直接连接(使用tnsnames),这非常好。我不明白为什么我认为SQL Server还不成熟,却为什么要使用SQL Server来存储空间数据。
您可以通过安装GISquirrel扩展名(可从www.gisquirrel.com获得)来编辑ArcGIS中SQL 2008或2012中存储的矢量数据。 这也提供了将空间数据从任何数据源导入SQL Server的工具,这些数据源可以在ArcMap中作为图层查看。我最近导入了一个包含9000万个多边形的表格-用了4天,但使用2岁的笔记本电脑却毫不费力地工作了!