欢迎来到天天文库
浏览记录
ID:12026610
大小:72.50 KB
页数:16页
时间:2018-07-15
《arcgis 10中查询图层学习笔记》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ArcGIS10中查询图层学习笔记1、准备查询图层1.1定义查询图层需要准备的工作(1)支持的数据库关系型数据库需要是ArcGIS支持的数据库类型,如:IBMDB2、IBMInformix、SQLServer、Oracle、PostgreSQL。(2)唯一非空列定义查询图层的数据表必须包含唯一非空列或组合列,查询图层需要使用该列作为ObjectID。(3)使用空间数据类型数据表中需要使用空间数据类型。(4)保证查询图层所在客户端能连接数据库1.2数据库配置(1)SqlServer数据库 如果创建的查询图层需要包含空
2、间列,只能使用SQLServer2008或更高的版本,并且使用MicrosoftGeometry和Geography空间数据类型。如果查询图形不需要包含空间列,可使用SQLServer2005。(2)Oracle数据库 Oracle中支持的空间数据类型有两个:ST_Geometry和SDO_Geometry。其中ST_Geometry是ArcSDE的空间数据类型。SDO_Geometry是Oracle自己的默认空间数据类型。 创建查询图层前需要安装Oracle客户端,并保证能正常连接。 如果在Oracle中需要
3、使用sql命令直接操作ST_Geometry类型,需要作如下的配置:[1]配置Oracle监听器以允许使用SQL访问GDB ST_Geometry和ST_Raster的SQL函数使用的是Oracle共享类库,这些共享类库允许Oracle的外部存储过程代理或者extproc访问。要使用这些函数必须配置Oracle,以允许Oracle访问这些类库。Oracle的两个监听配置文件是:tnsnames.ora和listener.ora。其中listener.ora说明如下:SID_LIST_LISTENER:SID列表的起
4、始标签,默认监听器名是LISTENER。SID_LIST和SID_DESC:第一个处理extproc请求,第二个处理客户端会话。SID_NAME:其值必须与tnsnames.ora文件中为extporc指定的SID一致。ORACLE_HOME:指向oracle的安装目录。PROGRAMER:extproc执行的文件名,通常为extproc或者extproc.exe。ENVS:用于设置extproc执行时需要的环境变量。多个变量之间以冒号隔开。EXTPROC_DLLS是必须包含的变量,此外,Unix和linux平台下,
5、可能包含LD_LIBRARY_PATH、SHLIB_PATH、LIBPATH。windows平台下可能包含PATH。EXTPROC_DLLS:用于定义extproc能直接加载或者调用其函数的类库路径。对于ST_Geometry类型,需要包含ST_SHAPELIB类库的路径;ST_Raster类型则需要包含LIBST_RASTER类库的路径。Unix平台下,多个路径用冒号隔开,windows平台下用分号隔开。KEY:其值必须与tnsnames.ora中的key值一致。[2]配置方法打开tnsnames.ora文件,检查
6、是否包含如下的内容:EXTPROC_CONNECTION_DATA=(DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=IPC)(Key=EXTPROC1)) ) (CONNECT_DATA= (SID=PLSExtProc) (PRESENTATION=RO) ))打开listener.ora文件,添加sde相关的类库文件:#ST_Geometry和ST_RasterSID_LIST_LISTENER= (SID_LIST= (SID_DES
7、C= (SID_NAME=PLSExtProc) (ORACLE_HOME=C:oracleproduct11.1.0db_1) (PROGRAM=extproc) (ENVS="EXTPROC_DLLS=C:ArcSDEsdeexebinst_shapelib.dll;c:ArcSDEsdeexebinlibst_raster_ora.dll")) )(3)PostgreSQL数据库PostgreSQL中支持的空间数据类型有两个:ST_Geometry和Post
8、GISGeometry。PostGIS需要单独安装。2、连接数据库2.1打开ArcMap->File->AddData->AddQueryLayer2.2创建新连接点击New打开数据库连接对话框。选择合适的数据库。DataSource中根据数据库的不同输入合适的值:Oracle输入Net服务名;PostgreSQL输入服务器名;SQLServe
此文档下载收益归作者所有