全国高分辨率土地利用数据服务 土地利用数据服务 土地覆盖数据服务 坡度数据服务 土壤侵蚀数据服务 全国各省市DEM数据服务 耕地资源空间分布数据服务 草地资源空间分布数据服务 林地资源空间分布数据服务 水域资源空间分布数据服务 建设用地空间分布数据服务 地形、地貌、土壤数据服务 分坡度耕地数据服务 全国大宗农作物种植范围空间分布数据服务
多种卫星遥感数据反演植被覆盖度数据服务 地表反照率数据服务 比辐射率数据服务 地表温度数据服务 地表蒸腾与蒸散数据服务 归一化植被指数数据服务 叶面积指数数据服务 净初级生产力数据服务 净生态系统生产力数据服务 生态系统总初级生产力数据服务 生态系统类型分布数据服务 土壤类型质地养分数据服务 生态系统空间分布数据服务 增强型植被指数数据服务
多年平均气温空间分布数据服务 多年平均降水量空间分布数据服务 湿润指数数据服务 大于0℃积温空间分布数据服务 光合有效辐射分量数据服务 显热/潜热信息数据服务 波文比信息数据服务 地表净辐射通量数据服务 光合有效辐射数据服务 温度带分区数据服务 山区小气候因子精细数据服务
全国夜间灯光指数数据服务 全国GDP公里格网数据服务 全国建筑物总面积公里格网数据服务 全国人口密度数据服务 全国县级医院分布数据服务 人口调查空间分布数据服务 收入统计空间分布数据服务 矿山面积统计及分布数据服务 载畜量及空间分布数据服务 农作物种植面积统计数据服务 农田分类面积统计数据服务 农作物长势遥感监测数据服务 医疗资源统计数据服务 教育资源统计数据服务 行政辖区信息数据服务
Landsat 8 高分二号 高分一号 SPOT-6卫星影像 法国Pleiades高分卫星 资源三号卫星 风云3号 中巴资源卫星 NOAA/AVHRR MODIS Landsat TM 环境小卫星 Landsat MSS 天绘一号卫星影像
通过SQL从Geodatabase中获取空间数据库信息,使得Nongeographic database 应用者或者不是用ArcObjects开发的空间应用也可以获取存储在Geodatabase中的信息。
通过SQL从Geodatabase中获取空间数据库信息,使得Nongeographic database 应用者或者不是用ArcObjects开发的空间应用也可以获取存储在Geodatabase中的信息。
ArcGIS SQL支持很多Spatial Relationship,例如ST_Equals 、ST_Disjoint等等,如果空间要素之间满足这种关系,则返回结果为1或者TRUE,如果不满足这种关系,则返回结果为0或FALSE。
Spatial Operations是指能够通过指定的输入数据生成新的空间数据的功能函数(Functions)。例如ST_Distance能够计算要素之间的最短距离,ST_Union能够把输入空间数据集合并。还包括很多其它的Spatial Operations。
Informix、DB2、Oracle的Spatial SQL之间的差异很小。
Creating a table with an ST_Geometry column
Spatial Table是包含一个或者多个Spatial Columns的Table:
CREATE TABLE sensitive_areas (area_id integer、name varchar(128) 、area_size float、type varchar(10) 、zone ST_Geometry);
Spatial Column只接受满足数据类型要求的数据。例如,ST_Polygon类型的空间列就不可以存储Integers、Characters等等。ST_Geometry能够存储其所有的Subtype类型的数据。在一个Table中可以创建多个ST_Geometry列,但是ArcGIS在同一个Table中不支持多个空间几何列,可以创建多个只包含一个ST_Geometry列的Spatial Views。
ArcSDE必须要包含一个唯一的注册Feature Identifier列以支持Spatial Query、Log File Query、Single-row Operations、Multiversioned Database Operations。这一列通常称为OBJECTID,但是也可以是其它的名字。
Creating spatial references using SQL
ArcGIS用户除了可以利用桌面程序提供的工具创建空间参考以外,还可以采用SQL创建。所有的Spatial Reference Systems都是存储在Database的System Table中的。在用ST_Geometry 存储空间信息的Oracle数据库中,空间参考是存储在ST_Spatial_References table;在Informix中是 Spatial_References表; DB2中是ST_Spatial_Reference_Systems。利用SQL创建Spatial Reference System,实际上就是利用SQL向以上表中添加记录。
Inserting features to a table with an ST_Geometry column
能够被插入到ST_Geometry列的数据类型必须是以下两种之一:
OGC well-known text (WKT) representation
OGC well-known binary (WKB) representation
但是必须利用SQL函数将以上类型的数据转换成ST_Geometry格式的数据,才能够进行存储。以下例子利用ST_PolyFromText()函数将well-known text representation格式的polygon 数据转换为ST_Polygon类型,以存储到sensitive_areas table 中的ZONE空间列中。
INSERT INTO sensitive_areas VALUES (1, 'Summerhill Elementary School', 67920.64, 'school', ST_PolyFromText('polygon ((52 28,58 28,58 23,52 23,52 28))',1));
Querying tables with an ST_Geometry column
以下为三种数据库支持的SQL查询语句:
Spatial Type for Oracle:SELECT sa.name "Sensitive Areas", hs.name "Hazardous Sites" FROM sensitive_areas sa, hazardous_sites hs WHERE ST_Overlaps (sa.zone, ST_Buffer (hs.location,.01)) = 1;
Informix:SELECT sa.name sensitive_area, hs.name hazardous_siteFROM sensitive_areas sa, hazardous_sites hsWHERE ST_Overlaps(sa.zone, ST_Buffer(hs.location, .01));
DB2:db2 => SELECT sa.name "Sensitive Areas", hs.name "Hazardous Sites" FROM sensitive_areas sa, hazardous_sites hs WHERE db2gse.ST_Overlaps (sa.zone, db2gse.ST_Buffer (hs.location,.01)) = 1
Enhancing ArcGIS functionality using spatial types (ArcInfo and ArcEditor only)
可以利用SQL向已经存在的Feature Class中填加记录,或者是利用SQL创建自定义的查询以显示某条记录,或者是利用SQL创建一个具备Spatial Type列的新表,然后Register这个表以在ArcGIS中使用。
(1)如果利用SQL向已有的Feature Class添加新的记录:
首先在ArcCatalog中新建一个要素图层,如果数据库是Oracle,则创建的时候应该在Use Configuration Keyword中将空间列的类型设置为ST_GEOMETRY,然后将数据添加 到ArcMap中,然后利用SQL添加一行记录:
insert into buildings(OBJECTID, FID, BUILDING_, BUILDING_I, TAG, TYPE, SUBTYPE, SYMBOL, LOCK__ID, PHASE__ID, ZOOM_SYMBO, SHAPE) Values (1, 0, 12972, 18907, '22JSM0000023946', 'BLD', 'RES', 6, 0, 0, 1, ST_GEOMETRY ('POLYGON (( 2219520.56768649 387051.66985716, 2219525.34823696 387079.52399077,2219536.03133855 387077.71905252, 2219539.05578917 387095.47546386, 2219528.17754562 387097.32910505,2219528.61661291 387099.81695550, 2219489.00622816 387106.54876471, 2219480.81097279 387058.40167483, 2219520.56768649 387051.66985716))', 3));
(2)利用SQL创建的自定义查询表达式以查询要素:首先将要素添加到ArcMap中,右键单击图层,选择Properties/Definition Query 面板,创建以下SQL查询语句:
objectid in (select p.objectid FROM buildings b, water_lines w where watertype = 'MAIN' and ST_Overlaps (p.shape, ST_Buffer (f.shape, 55)) = 1)
(3)ESRI推荐使用ArcGIS创建Feature Class,这样能够保证数据的完整性,但是也支持将SQL创建的Feature Class或者第三方应用创建的Feature Class注册为ArcGIS识别的类型。
可以利用ArcSDE Administrator Command:sdelayer –o register,手动实现将Table注册为Feature Class,以下为将SQL创建的Table,用ArcSDE注册为Feature Class,以下为例子:
首先在SQL中创建一个Table:
create table comm._bldgs as select * from buildings where SUBTYPE = 'COM';
然后利用ArcSDE进行注册:
sdelayer -o register -l comm_bldgs,shape -e a -C OBJECTID,SDE -R -u -p
需要注意的是:需要Register的Table必须满足以下条件:
(1)注册该表的用户必须是该表的所有者;
(2)必须具备单一的ST_GEOMETRY列;
(3)不包括其它User-defined类型;
(4)具备单一的几何类型(Points,Lines,Polygons);
(5)必须具备ID列,该列必须是Integer,Unique,NonNull;
(6)应该具备Spatial Index。
如果以上注册的Feature Class将参与到Relationship、Geometric Networks、Topology、Subtypes、Default Types、Domains、Validation Rules,则需要Registered with the Geodatabase:在ArcCatalog中右键单击要注册的Feature Class或者Table,选择Register With Geodatabase。
Using Multiversioned Views
如果用户自定义的应用不支持ArcGIS Geodatabase Versioning,则只能够查询Base Table,而不能够获取Delta Table中的信息。因此,为了保证这样的用户也能够利用SQL获取Geodatabase中的Versioned Table的信息,应该创建Multiversioned Views。
Multiversional Views是将Base Table和Delta Table中的数据按照版本不同组织成完整的View,在这个View中可以得到该版本中数据库的变化情况。
为了能够创建Multiversional View,首先要利用管理命令sdetable –o create_mv_view。创建完Multiversional View以后,可以利用set_current_version (' < desired_version_name > ')设置想要了解的版本,如果不提供版本名字,则缺省值是SDE.DEFAULT,然后就可以利用SQL查询设定版本的属性了。如果要删除一个Multiversional View,可以采用sdetable –o delete_mv_view。能够利用Multiversional View编辑版本化的Table,不能够在一个View的基础上再创建一个Multiversional View。
要注意的地方是:
(1)在一个Feature Class中只能有一个Multiversional View;
(2)能够对Multiversional View执行所有的版本化操作,包括:creating versions, resolving conflicts, reconciling, and posting;
(3)Multiversional View不能用来获取或者修改复杂要素,例如Geometric Networks,Topology,Relationship;
(4)不能利用Multiversional View编辑Default版本,或者属于其它编辑和协调操作的版本;
(5)不能够利用DBMS工具更新任何ID字段(OBJECTID)
Spatial View
如果某个ArcSDE Spatial Type Table中包括多个Spatial Column,则唯一的办法是将其注册成Spatial Views。在每一个Spatial View中,只能选择一个Spatial Column,然后就可以将其利用ArcSDE注册。以下为例子:
create view quake_v as select objectid,shape from quakes4;