STGeometry教程
- 格式:doc
- 大小:913.00 KB
- 文档页数:37
a n s o f t操作步骤(共23页) -本页仅作为预览文档封面,使用时请删除本页-1、创建二维电磁设计模型Utility Menu-project-insert Maxwell 2D design2、选择模型设计坐标系以及电磁分析求解器Utility Menu-Maxwell 2D design-Solution type→Cartesian xy (笛卡儿坐标)-Transient(瞬态)(1)电磁场的geometry [dʒi'ɔmitri] mode 几何模型有:平面xy坐标系和轴对称坐标系(2_1)磁场Magnetic分析类型有:Magnetostatic [mæɡ,ni:təu'stætik] 静磁的Eddy current 涡流Transient ['trænziənt ] 瞬态场(2_2)电场Electric分析类型有:electrostatic [i,lektrə'stætik] 静电AC conduction [kən'dʌkʃən]传导DC conduction3、建模建模命令:Utility Menu-Draw-相关指令(1)初级铁心绘制矩形(初级铁轭:0,0—@316,50)绘制矩形(齿槽:,0—@12,35)-复制齿槽(edit-duplicate-along line-选择基点dx=,dy=0,total num=15)Boolean-substract运算减去中间槽部定义初级名称为CORE、材料(steel-1008)、颜色等属性。
(2)线圈绘制矩形(线圈:,1—@10,16)→纵向复制(dx=0,dy=17;total num=2)选择槽1内的两个线圈横向复制(dx=,dy=0,total num=15)定义线圈材料(copper)、颜色等属性/注意:可以先确定线圈的属性在进行复制等命令,以免重复定义/(3)次级铝板绘制矩形(铝板:-50,-3—@150,-3)定义次级铝板(aluminum)、颜色等属性。
中级教程 5From Ogre Wiki中级教程5: StaticGeometry内容[hide]∙ 1 介绍∙ 2 必要条件∙ 3 创建场景o 3.1 创建Mesho 3.2 添加静态几何体[edit]介绍很多情况,你需要在场景中添加物体,但是却根本不需要移动它们。
比如,除非你加入了物理因素,一块石头或者一棵树将永远不会被移动。
Ogre为这种情况提供了StaticGeometry类,它允许你批渲染很多物体。
这个通常要比手动在SceneNodes添加要快多了。
在这个教程里我们要涵盖StaticGeometry的基本使用方法,另外还会再提及ManualObject 的使用。
请在前一个教程中获取ManualObject的使用方法。
在这个教程中,我们将手动创建一个草地mesh,然后在我们的场景中的StaticGeometry 实例中添加许多这样的草地。
本教程的代码在这里下载。
必要条件创建一个cpp 文件,添加下面代码:#include "ExampleApplication.h"class TutorialApplication : public ExampleApplication{protected:public:TutorialApplication(){}~TutorialApplication(){}protected:MeshPtr mGrassMesh;void createGrassMesh(){}void createScene(void){createGrassMesh();mSceneMgr->setAmbientLight(ColourValue(1, 1, 1));mCamera->setPosition(150, 50, 150);mCamera->lookAt(0, 0, 0);Entity *robot = mSceneMgr->createEntity("robot", "robot.mesh");mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(robot);Plane plane;plane.normal = Vector3::UNIT_Y;plane.d = 0;MeshManager::getSingleton().createPlane("floor",ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane,450,450,10,10,true,1,50,50,Vector3::UNIT_Z);Entity* pPlaneEnt = mSceneMgr->createEntity("plane", "floor");pPlaneEnt->setMaterialName("Examples/GrassFloor");pPlaneEnt->setCastShadows(false);mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(pPlaneEnt);}};#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32#define WIN32_LEAN_AND_MEAN#include "windows.h"INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)#elseint main(int argc, char **argv)#endif{// Create application objectTutorialApplication app;try {app.go();} catch(Exception& e) {#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32MessageBoxA(NULL, e.getFullDescription().c_str(), "An exception has occurred!", MB_OK | MB_ICONERROR | MB_TASKMODAL);#elsefprintf(stderr, "An exception has occurred: %s\n",e.getFullDescription().c_str());#endif}return 0;}在继续教程之前,确信你的代码可以编译。
sde st_geometry 点转面的函数SDE(Spatial Database Engine)是由Esri所开发的一款用于地理信息系统(GIS)的数据库引擎。
它提供了一些强大的功能,其中一个是st_geometry函数。
st_geometry函数可以用于将一些点转换为面,从而实现面的建立和计算。
本文将重点介绍如何使用sde st_geometry 点转面的函数。
1. 函数概述SDE st_geometry函数是一个用于建立点和面之间关系的函数。
在执行该函数之前,需要先确定点和面的位置关系,知道哪些点应该连接成面。
该函数通常使用以下几种方法:- 使用堆栈方法将点连接成面。
- 使用三角形网格方法将点连接成面。
- 使用泰森多边形方法将点连接成面。
- 使用缓冲区方法将点连接成面。
这些方法均出现过建立点和面之间关系的应用程序中。
在使用这些方法的过程中,需要将点转换成适当的地图单元,例如三角形或多边形。
然后,使用这些单元来创建面。
这些地图单元是由sde st_geometry函数生成的。
2. 函数实现在实现sde st_geometry函数之前,需要先处理输入的点数据。
这包括对点数据进行排序和筛选,以确保其正确性。
然后选择转换方法和地图单元类型。
对于大数据集,还需要考虑性能和可扩展性。
接下来,介绍一些常用的转换方法和地图单元类型。
2.1 堆栈方法这个方法将点按照特定的顺序进行排序,并将它们连接成一个连续的环。
这需要对输入点进行排序,并使用基于堆栈的算法将它们连接成一个环。
该方法通常用于处理复杂的几何形状。
但是,它需要大量的计算和内存以处理大数据集。
以下是堆栈方法的步骤:- 对点进行排序,使其按照一定的顺序排序。
- 从第一个点开始,将所有点都压入堆栈中。
- 选择一个没有连接过的点,连接它到堆栈顶端的点。
- 如果连接的新点是堆栈底端的点,则结束连接过程并形成面。
2.2 三角形网格方法这个方法将点连接成一系列三角形,将其作为面形成。
PostGIS操作geometry⽅法WKT定义⼏何对象格式:POINT(0 0) ——点LINESTRING(0 0,1 1,1 2) ——线POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1)) ——⾯MULTIPOINT(0 0,1 2) ——多点MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) ——多线MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1))) ——多⾯GEOMETRYCOLLECTION(POINT(2 3),LINESTRING((2 3,3 4))) ——⼏何集合常⽤函数:wkt转geometry st_geomfromtext(wkt,wkid)geometry转wkt st_astext(geom)获取点对象x、y坐标值 st_x(geom)、st_y(geom)获取线/⾯对象四⾄ st_xmin(geom)、st_ymin(geom)、st_xmax(geom)、st_ymax(geom)计算两点之间距离 st_distance(geom,geom) / st_distance(wkt,wkt)计算线的长度 st_length(geom) / st_length(wkt)计算⾯积 st_area(geom) / st_area(wkt)缓冲区计算 st_buffer(geom,distance) / st_buffer(wkt,distance)管理函数:添加⼏何字段 AddGeometryColumn(, , , , , )删除⼏何字段 DropGeometryColumn(, , )检查数据库⼏何字段并在geometry_columns中归档 Probe_Geometry_Columns()给⼏何对象设置空间参考(在通过⼀个范围做空间查询时常⽤) ST_SetSRID(geometry, integer)⼏何对象关系函数:获取两个⼏何对象间的距离 ST_Distance(geometry, geometry)如果两个⼏何对象间距离在给定值范围内,则返回TRUE ST_DWithin(geometry, geometry, float)判断两个⼏何对象是否相等(⽐如LINESTRING(0 0, 2 2)和LINESTRING(0 0, 1 1, 2 2)是相同的⼏何对象) ST_Equals(geometry, geometry)判断两个⼏何对象是否分离 ST_Disjoint(geometry, geometry)判断两个⼏何对象是否相交 ST_Intersects(geometry, geometry)判断两个⼏何对象的边缘是否接触 ST_Touches(geometry, geometry)判断两个⼏何对象是否互相穿过 ST_Crosses(geometry, geometry)判断A是否被B包含 ST_Within(geometry A, geometry B)判断两个⼏何对象是否是重叠 ST_Overlaps(geometry, geometry)判断A是否包含B ST_Contains(geometry A, geometry B)判断A是否覆盖 B ST_Covers(geometry A, geometry B)判断A是否被B所覆盖 ST_CoveredBy(geometry A, geometry B)通过DE-9IM 矩阵判断两个⼏何对象的关系是否成⽴ ST_Relate(geometry, geometry, intersectionPatternMatrix)获得两个⼏何对象的关系(DE-9IM矩阵) ST_Relate(geometry, geometry)⼏何对象处理函数:获取⼏何对象的中⼼ ST_Centroid(geometry)⾯积量测 ST_Area(geometry)长度量测 ST_Length(geometry)返回曲⾯上的⼀个点 ST_PointOnSurface(geometry)获取边界 ST_Boundary(geometry)获取缓冲后的⼏何对象 ST_Buffer(geometry, double, [integer])获取多⼏何对象的外接对象 ST_ConvexHull(geometry)获取两个⼏何对象相交的部分 ST_Intersection(geometry, geometry)将经度⼩于0的值加360使所有经度值在0-360间 ST_Shift_Longitude(geometry)获取两个⼏何对象不相交的部分(A、B可互换) ST_SymDifference(geometry A, geometry B)从A去除和B相交的部分后返回 ST_Difference(geometry A, geometry B)返回两个⼏何对象的合并结果 ST_Union(geometry, geometry)返回⼀系列⼏何对象的合并结果 ST_Union(geometry set)⽤较少的内存和较长的时间完成合并操作,结果和ST_Union相同 ST_MemUnion(geometry set)⼏何对象存取函数:获取⼏何对象的WKT描述 ST_AsText(geometry)获取⼏何对象的WKB描述 ST_AsBinary(geometry)获取⼏何对象的空间参考ID ST_SRID(geometry)获取⼏何对象的维数 ST_Dimension(geometry)获取⼏何对象的边界范围 ST_Envelope(geometry)判断⼏何对象是否为空 ST_IsEmpty(geometry)判断⼏何对象是否不包含特殊点(⽐如⾃相交) ST_IsSimple(geometry)判断⼏何对象是否闭合 ST_IsClosed(geometry)判断曲线是否闭合并且不包含特殊点 ST_IsRing(geometry)获取多⼏何对象中的对象个数 ST_NumGeometries(geometry)获取多⼏何对象中第N个对象 ST_GeometryN(geometry,int)获取⼏何对象中的点个数 ST_NumPoints(geometry)获取⼏何对象的第N个点 ST_PointN(geometry,integer)获取多边形的外边缘 ST_ExteriorRing(geometry)获取多边形内边界个数 ST_NumInteriorRings(geometry)同上 ST_NumInteriorRing(geometry)获取多边形的第N个内边界 ST_InteriorRingN(geometry,integer)获取线的终点 ST_EndPoint(geometry)获取线的起始点 ST_StartPoint(geometry)获取⼏何对象的类型 GeometryType(geometry)类似上,但是不检查M值,即POINTM对象会被判断为point ST_GeometryType(geometry)获取点的X坐标 ST_X(geometry)获取点的Y坐标 ST_Y(geometry)获取点的Z坐标 ST_Z(geometry)获取点的M值 ST_M(geometry)⼏何对象构造函数:参考语义:Text:WKTWKB:WKBGeom:GeometryM:MultiBd:BuildAreaColl:Collection ST_GeomFromText(text,[])ST_PointFromText(text,[])ST_LineFromText(text,[])ST_LinestringFromText(text,[])ST_PolyFromText(text,[])ST_PolygonFromText(text,[])ST_MPointFromText(text,[])ST_MLineFromText(text,[])ST_MPolyFromText(text,[])ST_GeomCollFromText(text,[])ST_GeomFromWKB(bytea,[])ST_GeometryFromWKB(bytea,[])ST_PointFromWKB(bytea,[])ST_LineFromWKB(bytea,[])ST_LinestringFromWKB(bytea,[])ST_PolyFromWKB(bytea,[])ST_PolygonFromWKB(bytea,[])ST_MPointFromWKB(bytea,[])ST_MLineFromWKB(bytea,[])ST_MPolyFromWKB(bytea,[])ST_GeomCollFromWKB(bytea,[])ST_BdPolyFromText(text WKT, integer SRID)ST_BdMPolyFromText(text WKT, integer SRID)。
创建空间数据存储类型为ST_Geometry的要素类有2种方法:1)使用SDE创建要素类从9.3 开始,默认创建的要素类都使用ST_Geometry存储空间数据,9.3 版本之前,可以通过配置dbtune 参数来完成。
2)直接使用SQL语句创建要素类。
1. 首先使用sqlplus连接到oracle服务器,确保登陆用户有如下权限:CREATE TYPEUNLIMITED TABLESPACECREATE LIBRARYCREATE OPERATORCREATE INDEXTYPECREATE PUBLIC SYNONYMDROP PUBLIC SYNONYMThe CONNECT and RESOURCE roles include these privileges.2. 使用SQL语句创建包含ST_Geometry列的表,注意:要使SDE能够认识你创建的要素类,新建的表中有且只能有一个ST_Geometry列,并且最好包含唯一标识的列。
执行下面的sql语句CREATE TABLE sensitive_areas (area_id integer, name varchar(128),area_size float, type varchar(10), zone sde.st_geometry);注意st_geometry前面应添加sde schema 名,否则会报错。
51.png3. 使用sdelayer命令,将创建好的表注册到SDE中注册的时候一定要保证下面几点才能成功:1必须是表的所有者才能注册。
2表中只能有一个ST_Geometry列。
3没有其他用户自定义类型的列。
4必须是简单的集合类型(points, lines, or polygons)。
5Geometry 必须是有效的,否则读取的时候会产生不可预期的错误。
sdelayer 命令参数如下:sdelayer -o register -l <table,column> -e <entity_mask> [Spatial_Index][{-R <SRID> | [Spatial_Ref_Opts]}] [-P {BASIC | HIGH}]{[-C NONE] | [-C <row_id_column>[,{SDE|USER}[,<min_ID>]]]}[-E {empty | xmin,ymin,xmax,ymax}] [-t <storage_type>][-S <layer_description_str>] [-q][-k <config_keyword>] [-i <service>] [-s <server_name][-u <DB_User_name>] [-p <DB_User_password>] [-D <database>]在命令行中执行下列命令sdelayer -o register -l sensitive_areas,zone -e a -C area_id,SDE -u data -p sa -t ST_GEOMETRY-o参数为register -l参数为表名/ST_Geometry列-e 几何类型-C 用户唯一id/SDE 其中SDE表示由sde 维护唯一id,使用USER选项,则有用户维护唯一ID -u 注册地用户名-p 用户密码-t 数据存储类型sdelayer.pngbarry~~~~~~~~~~~~~4. 在catalog中查看,可以看到sensitive_areas已经被注册到sde中,并且图标显示为polygon类型。
数据库中的st函数以及空间对象线路自定义切割方法是目前在地理信息系统和数据处理领域中比较热门的话题。
作为一种高级的数据库功能,st函数可以帮助用户处理和分析地理空间数据,而空间对象线路自定义切割方法则可以帮助用户更灵活地处理线状地理空间对象。
在本篇文章中,我将从简到繁地介绍这两个主题,让你能够更深入地理解它们的概念、用法和意义。
一、st函数1. st函数是什么?st函数是一种用于处理空间数据的数据库函数,它能够对空间对象进行空间分析和空间操作,例如空间查询、几何运算、距离计算等。
2. st函数的使用场景在地理信息系统中,st函数被广泛应用于地图制图、地理空间分析、位置导航等领域,它能够帮助用户快速准确地处理各种空间数据,提高数据的可视化和分析效率。
3. st函数的优势和局限尽管st函数在空间数据处理方面有着诸多优势,但它也存在一些局限性,如不同数据库系统之间的兼容性、性能表现等方面需要用户注意。
二、空间对象线路自定义切割方法1. 空间对象线路自定义切割方法的定义空间对象线路自定义切割方法是一种用户根据实际需求,自定义划分线状地理空间对象的方法,以便更灵活地处理和展现地理空间信息。
2. 切割方法的实现步骤用户可以通过指定线路、节点等地理元素,进行自定义的切割操作,以满足特定的地理信息处理需求。
3. 切割方法的应用场景空间对象线路自定义切割方法适用于道路交通分析、地块划分、环境规划等领域,它能够为用户提供更个性化、精准的地理数据处理解决方案。
总结与展望通过对st函数和空间对象线路自定义切割方法的深入介绍,我们可以看到它们的重要性和应用前景。
随着地理信息技术的不断发展,对空间数据处理的需求也越来越复杂和多样化,因此掌握这两个主题的知识将对我们未来的工作和研究具有重要意义。
个人观点及理解作为地理信息技术的从业者,我深知st函数和空间对象线路自定义切割方法在实际工作中的重要性。
它们能够帮助我们更快速、更精准地处理和分析地理空间数据,为地理信息技术的应用提供了强大的支持。
ArcGIS GeoDatabase ST_Geometry1 ST_Geometry oracle1.1ArcSDE for Oracle ST_Geometry ST_Geometry ISO OGC SQL oracle oracle ST_Geometry SDENBLOB B F ST_Geometry ( )ArcGIS 9.3 ArcSDE geodatabases for Oracle ST_Geometry SQL3 user-defined data types ST_GeometryST_Geometry1 SQL ISO SQL/MM2 SQL34 SQL geodatabase ArcGIS 9.3 ArcSDE geodatabases for Oracle ST SDE schema union SQL "sde.ST_Union", 9 2 SDE schema1.2ST_GeometryName TypeENTITY NUMBER(38)NUMPTS NUMBER(38)MINX FLOAT(64)MINY FLOAT(64)MAXX FLOAT(64)MAXY FLOAT(64)MINZ FLOAT(64)MAXZ FLOAT(64)MINM FLOAT(64)MAXM FLOAT(64)AREA FLOAT(64)LEN FLOAT(64)SRID NUMBER(38)POINTS BLOBEntity (linestring, multilinestring, multipoint, multipolygon, point, or polygon st_geom_util NUMPTSMinx, miny, maxx, maxyAreaLenSRID ID ST_Spatial_References POINTS1.3ST_Geometry ST_Geometry NumberST_AreaST_LenST_Entity .ST_NumPoints .ST_MinM, ST_MinX, ST_MinY, ST_MinZ . ST_MaxM, ST_MaxX, ST_MaxY, ST_MaxZ . ST_SRID ID.Get_release .us_states state state SELECT name, st_area(geometry)FROM us_statesORDER BY name;1.4 ST_GeometryST_LineString, ST_MultiLineString, ST_MultiPoint, ST_MultiPolygon, ST_Point, ST_Polygon ST_Geometry . ST_Geometry . ST_LineString, ST_MultiLineString, ST_MultiPoint, ST_MultiPolygon, ST_Point and ST_PolygonST_Point 1 xy SRID ST_PointMETHODFINAL CONSTRUCTOR FUNCTION ST_POINT RETURNS SELF AS RESULTArgument Name Type In/Out Default?PT_X NUMBER INPT_Y NUMBER INSRID NUMBER INSQL> insert into sample_pt values (ST_Point (10, 20, 1) );2 xy z SRID ST_PointMETHODFINAL CONSTRUCTOR FUNCTION ST_POINT RETURNS SELF AS RESULTArgument Name Type In/Out Default?PT_X NUMBER INPT_Y NUMBER INPT_Z NUMBER INSRID NUMBER INSQL> insert into sample_pt values (ST_Point (10, 20, 5, 1) );3 xy z m SRID ST_Point METHODFINAL CONSTRUCTOR FUNCTION ST_POINT RETURNS SELF AS RESULTArgument Name Type In/Out Default?PT_X NUMBER INPT_Y NUMBER INPT_Z NUMBER INMEASURE NUMBER INSRID NUMBER INSQL> insert into sample_pt values (ST_Point (10, 20, 5, 401, 1) );1.5oracle ST_GeometryCREATE TYPE l i k u W P D F -X C h a n g e ww .d o c u -t r a c k .c m C c t o b y N O !P D F -X C h a n g e w w .d o c u -t r a c k .c oUNLIMITED TABLESPACECREATE LIBRARYCREATE OPERATORCREATE INDEXTYPECREATE PUBLIC SYNONYMDROP PUBLIC SYNONYMThe CONNECT and RESOURCE roles include these privileges.2 ST_Geometry SQL oracleoracle ST_Geometry SQL oracle external procedure agent extproc SQL oracle listener oracle SDEST_Geometry PL/SQL PL/SQL c ST_SHAPELIBoracle listener oracle windows1 oracle oraclehome\NETWORK\ADMIN2 listener.ora oracle3 listener.ora (PROGRAM = extproc) ST_SHAPELIB ST_SHAPELIB (ENVS="EXTPROC_DLLS=C:\ProgramFiles\ArcGIS\ArcSDE\ora10gexe\bin\st_shapelib.dll")“C:\Program Files\ArcGIS\ArcSDE\ora10gexe\bin\st_shapelib.dll”ST_SHAPELIB4 listener.oralistener.ora# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1 \network\admin\listener.ora# Generated by Oracle configuration tools.SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)(PROGRAM = extproc)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))(ADDRESS = (PROTOCOL = TCP)(HOST = zbc)(PORT = 1521)) ))listener.ora# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1 \network\admin\listener.ora# Generated by Oracle configuration tools.SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)(PROGRAM = extproc)(ENVS="EXTPROC_DLLS=C:\ProgramFiles\ArcGIS\ArcSDE\ora10gexe\bin\st_shapelib.dll")))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))(ADDRESS = (PROTOCOL = TCP)(HOST = zbc)(PORT = 1521))))3 ST_GeometryST_Geometry 21 SDE9.3 ST_Geometry 9.3 dbtune2 SQL1. sqlplus oracle CREATE TYPEUNLIMITED TABLESPACECREATE LIBRARYCREATE OPERATORCREATE INDEXTYPECREATE PUBLIC SYNONYMDROP PUBLIC SYNONYMThe CONNECT and RESOURCE roles include these privileges.2. SQL ST_Geometry SDE ST_GeometrysqlCREATE TABLE sensitive_areas (area_id integer, name varchar(128),area_size float, type varchar(10), zone sde.st_geometry);st_geometry sde schema51.png3. sdelayer SDE12 ST_Geometry34 (points, lines, or polygons)5Geometry sdelayersdelayer -o register -l <table,column> -e <entity_mask> [Spatial_Index][{-R <SRID> | [Spatial_Ref_Opts]}] [-P {BASIC | HIGH}]{[-C NONE] | [-C <row_id_column>[,{SDE|USER}[,<min_ID>]]]}[-E {empty | xmin,ymin,xmax,ymax}] [-t <storage_type>][-S <layer_description_str>] [-q][-k <config_keyword>] [-i <service>] [-s <server_name][-u <DB_User_name>] [-p <DB_User_password>] [-D <database>]sdelayer -o register -l sensitive_areas,zone -e a -C area_id,SDE -u data -p sa -t ST_GEOMETRY-o register -l /ST_Geometry -e -C id/SDE SDE sde id USER ID -u -p -tsdelayer.pngbarry~~~~~~~~~~~~~4. catalog sensitive_areas sde polygonSQL FeatureClass(oracle), ST_GeometryFeatureClass1insert ST_Geometry :1 WKT2 WKBOGC ST_PolyFromText() ST_PointFromWKB() WKT WKB ST_GeometrySTST_GeomFromText—Creates an ST_Geometry from a text representation of any geometry typeST_PointFromText—Creates an ST_Point from a point text representationST_LineFromText—Creates an ST_LineString from a linestring text representationST_PolyFromText—Creates an ST_Polygon from a polygon text representationST_MPointFromText—Creates an ST_MultiPoint from a multipoint representationST_MLineFromText—Creates an ST_MultiLineString from a multilinestring representationST_MPolyFromText—Creates an ST_MultiPolygon from a multipolygon representationST_AsText—converts an existing geometry into a text representationST_GeomFromWKB—Creates an ST_Geometry from a WKB representation of any geometry typeST_PointFromWKB—Creates an ST_Point from a point WKB representation ST_LineFromWKB—Creates an ST_LineString from a linestring WKB representationST_PolyFromWKB—Creates an ST_Polygon from a polygon WKB representationST_MPointFromWKB—Creates an ST_MultiPoint from a multipoint WKB representationST_MLineFromWKB—Creates an ST_MultiLineString from a multilinestring WKB representationST_MPolyFromWKB—Creates an ST_MultiPolygon from a multipolygon WKB representationST_AsBinary—converts an existing geometry value into well-known binary representation.wkt wkbsql sqlINSERT INTO sensitive_areas (area_id , name, area_size, type , zone,fid) VALUES (1, 'Summerhill Elementary School', 67920.64, 'school', sde.ST_PolyFromText('polygon((52 28,58 28,58 23,52 23,52 28))', 0));sensitive_areasinsert.pngArcMap featureClassarcmap.pngUPDATEsensitive_areasSET zone= sde.st_pointfromtext('polygon ((52 30,58 30,58 23,50 23,50 28))', 0))WHERE area_id = 1;DELETE FROM sensitive_areas WHERE names(SELECT sFROM sensitive_areas sa, hazardous_sites hsWHERE sde.st_overlaps (sa.zone, sde.st_buffer (hs.location,.01)) = 1);2infomix R PostgreSQ Generalized Search Tree (GiST) R-tree oracle DB2oracle1 grid grid2 grid34 ST ST_Intersects ST_ContainsSELECT "Sensitive Areas", "Hazardous Sites"FROM sensitive_areas sa, hazardous_sites hsWHERE sde.st_overlaps (sa.zone, sde.st_buffer(hs.location,.01)) = 1;3CREATE INDEX sa_idx ON sensitive_areas(zone)INDEXTYPE IS sde.st_spatial_indexPARAMETERS('st_grids=1,3,0 st_srid=0');createindex.png4ESRI ArcGIS Desktop SQL sqlINSERT INTO SDE.ST_SPATIAL_REFERENCES VALUES (GCS_North_American_1983,1,-400,-400,1000000000,-100000,10000,-100000,10000,9.999E35,-9.999E35,9.999E35,-9.999E35,9.999E35,-9.999E35,9.999E35,-9.999E35,4269,'GCS_North_American_1983','PROJECTED',NULL,'GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983", SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT ["Degree",0.0174532925199433]]','ArcSDE SpRef');4Wkt Wkbwkt(OGC well-known text) wkb(OGC well-known binary) OGC wkt wkbwkt wkbwktGeometrytype Textdescription Comment ST_Point 'pointempty' emptypointST_Point 'pointzempty'empty point with z-coordinateST_Point 'pointmempty'empty point withmeasureST_Point 'pointzmempty'empty point with z-coordinate andmeasureST_Point 'point(10.0510.28)' point ST_Point 'point z( 10.05 10.28 2.51 )'ST_Point 'point m( 10.05 10.28 4.72 )'poST_Point 'point zm(10.05 10.28 2.514.72 )'point withz-coordinate andmeasureST_LineString 'linestringempty' emptylinestringST_LineString 'linestringzempty'empty linestring with z-coordinatesST_LineString 'linestringmempty'empty linestring with measuresST_LineString 'linestring zm empty'empty linestring with z-coordinates and measuresST_LineString 'linestring (10.05 10.28 ,20.95 20.89 )'linestringST_LineString'linestring z(10.05 10.283.09, 20.95 31.984.72, 21.9829.80 3.51 )'linestring withz-coordinatesST_LineString'linestring m(10.05 10.285.84, 20.95 31.98 9.01, 21.98linestring withmeasures29.80 12.84 )'ST_LineString 'linestring zm(10.05 10.283.09 5.84, 20.95 31.984.729.01, 21.98 29.80 3.5112.84)'linestring withz-coordinates andmeasuresST_Polygon 'polygonempty' emptypolygonST_Polygon 'polygonzempty'empty polygon with z-coordinatesST_Polygon 'polygonmempty'empty polygon withmeasuresST_Polygon 'polygonzmempty'empty polygon with z-coordinates andmeasuresST_Polygon 'polygon ((10 10, 10 20, 2020, 20 15, 10 10))'polygonST_Polygon 'polygon z((10 10 3, 10 20 3, 20 20 3, 20 15 4, 10 10 3))'ST_Polygon 'polygon m((10 10 8, 10 20 9, 20 20 9, 20 15 9, 10 10 8 ))'ST_Polygon 'polygon zm((10 10 3 8, 10 203 9, 20 20 3 9, 20 154 9, 1010 3 8 ))'polygon withz-coordinates andmeasuresST_MultiPoint 'multipointempty' emptymultipointST_MultiPoint 'multipointzempty'empty multipoint with z-coordinatesST_MultiPoint 'multipointmempty'empty multipoint with measuresST_MultiPoint 'multipoint zm empty'empty multipoint with z-coordinates and measuresST_MultiPoint 'multipoint (10 10, 20 20)'pointsST_MultiPoint 'multipoint z(10 10 2, 20 203)'multipoint withz-coordinatesST_MultiPoint 'multipoint m(10 10 4, 20 205)'multipoint withmeasuresST_MultiPoint 'multipoint zm(10 10 2 4, 2020 3 5)'multipoint withz-coordinates andmeasuresST_MultiLineStringST_MultiLineString'ST_MultiLineString'ST_MultiLineString'wi coordinatesand measuresST_MultiLineString1020.95 20.89 ),( 20.9520.89, 31.92 21.45))'multilinestringST_MultiLineString4.5),( 20.95 20.89 4.5, 31.9221.45 3.6))'multilinestring with z-coordinatesST_MultiLineString 1028 8.4, 20.95 20.89 9.5),(20.95 20.89 9.5, 31.92 21.458.6))'multilinestringwith measuresST_MultiLineString '1tesand measures9.5, 31.92 21.45 3.6 8.6))'ST_MultiPolygon 'multipolygonempty' emptymultipolygonST_MultiPolygon 'multipolygon z empty'empty multipolygon with z-coordinatesST_MultiPolygon 'multipolygon m empty'empty multipolygon with measuresST_MultiPolygon 'multipolygonzmempty' emptyST_MultiPolygon'multipolygon (((10 10, 1020, 20 20, 20 15 , 10 10), (5040, 50 50, 60 50, 60 40, 5040)))'multipolygonST_MultiPolygon 'multipolygon z(((10 10 7, 1020 8, 20 20 7, 20 15 5, 10 107), (50 40 6, 50 50 6, 60 505, 60 40 6, 50 40 6)))'multipolygon withz-coordinatesST_MultiPolygon 'multipolygon m(((10 10 2, 1020 3, 20 20 4, 20 15 5, 10 102), (50 40 7, 50 50 3, 60 504, 60 40 5, 50 40 7)))'multipolygon withmeasuresST_MultiPolygon 'multipolygon zm(((10 10 7 2,1020 8 3, 20 20 7 4, 20 15 55, 10 10 7 2), (50 40 6 7, 5050 6 3, 60 50 5 4, 60 40 6 5,50 40 6 7)))'multipolygon withz-coordinates andmeasureswkbbyte : 1 byteuint32 : 32 bit unsigned integer (4 bytes) double : double precision number (8 bytes) Building Blocks : Point, LinearRingPoint {double x;double y;};LinearRing {uint32 numPoints;Point points[numPoints];}enum wkbGeometryType { wkbPoint = 1,wkbLineString = 2, wkbPolygon = 3, wkbMultiPoint = 4, wkbMultiLineString = 5, wkbMultiPolygon = 6, wkbGeometryCollection = 7 };enum wkbByteOrder {wkbXDR = 0, Big Endian wkbNDR = 1 Little Endian };WKBPoint {byte byteOrder;uint32 wkbType; 1 Point point;}WKBLineString {byte byteOrder;uint32 wkbType; 2uint32 numPoints;Point points[numPoints];}WKBPolygon {byte byteOrder;uint32 wkbType; 3uint32 numRings;LinearRing rings[numRings];}WKBMultiPoint {byte byteOrder;uint32 wkbType; 4uint32 num_wkbPoints;WKBPoint WKBPoints[num_wkbPoints];}WKBMultiLineString {byte byteOrder;uint32 wkbType; 5uint32 num_wkbLineStrings;WKBLineString WKBLineStrings[num_wkbLineStrings]; }wkbMultiPolygon {byte byteOrder;uint32 wkbType; 6uint32 num_wkbPolygons;WKBPolygon wkbPolygons[num_wkbPolygons];}WKBGeometry {union {WKBPoint point;WKBLineString linestring;WKBPolygon polygon;WKBGeometryCollection collection;WKBMultiPoint mpoint;WKBMultiLineString mlinestring;WKBMultiPolygon mpolygon;}};WKBGeometryCollection {byte byte_order;uint32 wkbType; 7uint32 num_wkbGeometries;WKBGeometry wkbGeometries[num_wkbGeometries]}point(1,1) WKB0101000000000000000000F03F000000000000F03FWKBPointByte order : 01WKB type : 01000000X : 000000000000F03FY : 000000000000F03Fbyte order little-endian (NDR) big-endian (XDR)WKB type wkbGeometryType . 1-7 Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, and GeometryCollection.x,y double5SQLSDE SQL1ST_Containstruesde.st_contains (g1 sde.st_geometry, g2 sde.st_geometry)st_contains SQL functions reference ST_CrossestrueST_MultiPoint/ST_Polygon,ST_MultiPoint/ST_LineString,ST_Linestring/ST_LineString,ST_LineString/ST_Polygon, andST_LineString/ST_MultiPolygonsde.st_crosses (g1 sde.st_geometry, g2 sde.st_geometry)st_crosses SQL functions reference ST_Disjointtruesde.st_disjoint (g1 sde.st_geometry, g2 sde.st_geometry)st_disjoint SQL functions reference ST_Equalstruesde.st_equals (g1 sde.st_geometry, g2 sde.st_geometry)st_equals SQL functions referenceST_Intersectstrue st_disjointsde.st_intersects (g1 sde.st_geometry, g2 sde.st_geometry)st_intersects SQL functions reference ST_Overlapstruesde.st_overlaps (g1 sde.st_geometry, g2 sde.st_geometry)st_overlaps SQL functions referenceST_Touches truesde.st_touches (g1 sde.st_geometry, g2 sde.st_geometry)st_touches SQL functions referenceST_Withintrue ST_Containssde.st_within (g1 sde.st_geometry, g2 sde.st_geometry)st_within SQL functions referenceSQL SQL WHERE2ST_Buffersde.st_buffer (g1 sde.st_geometry, distance double_precision)st_buffer SQL functions referenceConvexHullConvexHull nullsde.st_convexhull (g1 sde.st_geometry)st_convexhull SQL functions referenceST_DifferenceDifferencesde.st_difference (g1 sde.st_geometry, g2 sde.st_geometry)st_difference SQL functions referenceST_Intersectionsde.st_intersection (g1 sde.st_geometry, g2 sde.st_geometry)st_intersection SQL functions reference ST_SymmetricDiffsde.st_symmetricdiff (g1 sde.st_geometry, g2 sde.st_geometry)st_symmetricdiff SQL functions reference ST_Unionsde.st_union (g1 sde.st_geometry, g2 sde.st_geometry)st_union SQL functions reference ST_Distancesde.st_distance (g1 sde.st_geometry, g2 sde.st_geometry)st_distance SQL functions referenceST_Aggr_ConvexHullmultipolygon multipolygon ST_Aggr_IntersectionST_Aggr_UnionST_DimensionST_CoordDimzST_Is3DST_ZST_MaxZST_MinZST_IsMeasuredST_MST_GeometryTypeST_EntityST_PointST_XST_YST_ZST_MST_LengthST_AreaST_LineStringST_StartPoint—Returns the first point of the specified ST_LineString ST_EndPoint—Returns the last point of an ST_LineStringST_PointN—Takes an ST_LineString and an index to nth point and returns that pointST_Length—Returns the length of an ST_LineString as a double-precision numberST_NumPoints—Evaluates an ST_LineString and returns the number of points in its sequenceas an integerST_IsRing—A predicate function that returns 1 (TRUE) if the specified ST_LineString is aring and 0 (FALSE) otherwiseST_IsClosed—A predicate function that returns 1 (TRUE) if the specified ST_LineString isclosed and 0 (FALSE) if it is notST_MultiLineStringST_Length —returns the cumulative length of all of its ST_LineString elements as a double-precision number.ST_IsClosed—returns 1 (TRUE) if the specified ST_MultiLineString is closed and 0 (FALSE)if it is not closed.ST_PolygonST_Area—Returns the area of an ST_Polygon as a double-precision number ST_Centroid—Returns an ST_Point that represents the center of theST_Polygon's envelopeST_ExteriorRing—Returns the exterior ring of an ST_Polygon as anST_LineStringST_InteriorRingN—Evaluates an ST_Polygon and an index and returns the nth interior ring asan ST_LineStringST_NumInteriorRing—Returns the number of interior rings that anST_Polygon containsST_PointOnSurface—Returns an ST_Point that is guaranteed to be on the surface of thespecified ST_Polygon10 ST_MultiPolygonST_Area —returns a double-precision number that represents the cumulative ST_Area of anST_MultiPolygon's ST_Polygon elements.ST_Centroid — an ST_Point that is the center of an ST_MultiPolygon's envelope.ST_PointOnSurface —returns an ST_Point that is guaranteed to be normal to the surface ofone of its ST_Polygon elements.11ST_NumGeometries— returns a count of the individual elements in a collection ofgeometries.ST_GeometryN — you can determine which geometry in the multipart geometry exists inposition N; N being a number you provide with the funciton12ST_SRIDST_EqualSRS13ST_BoundaryST_IsSimpleST_IsClosedST_IsRingST_IsEmptyST_Envelope。
geometry宏包使用说明Hideo UmekiReleased by ChinaT E X Documentation Workshop.April30,2011Maker:Ruifeng DuTranslator:Ruifeng Dugeometry宏包使用说明2011年3月21日摘要这个宏包提供了一个能够方便灵活地管理页面规格的接口。
用户能够利用直观的参数来改变页面的布局。
比如说:如果你想让文章边缘和纸张边缘的距离为2厘米,你只需要输入如下命令:\usepackage[margin=2cm]{geometry}。
页面的布局可以利用\newgeometry命令在文章的任意位置来修改。
1第五版前言•能够在文章中改变页面样式这里要利用两个新的命令:\newgeometry{···}和\restoregeometry。
这两个新的命令使得用户能够在文章中改变页面的布局。
\newgeometry这个命令使得在之前声明的所有关于页面布局的选项无效化,并将忽略一切与纸张大小相关的参数,这些参数包括:landscape,portrait和纸张大小的参数(比如说papersize,paper=a4paper等)。
在其他的方面\newgeometry和\geometry命令相同。
•加入了一些新的表示布局区域的参数一些新的参数在计算页面区域和布局的时候可以用到,这些参数有:layout,layoutsize,layoutwidth,layoutheight等等。
这些参数可以帮助我们在不同的纸张大小下打印特定的页面布局。
举例来说,在a4paper和layout=a5paper这两个命令的作用下,geometry宏包会在’A4’的纸张上使用’A5’的布局来计算边界。
•一个新的驱动选项——xetex在第五版中新加入了一个驱动选项xetex。
程序自动检测驱动系统已经做了完善,以避免’undefined control sequences’这种错误。
st_geomfromtext函数ST_GeomFromText函数是PostGIS空间数据库中的一种函数,它是将文本表达式转换为几何图形的函数。
本文将从以下方面介绍ST_GeomFromText函数:函数的语法、参数表达式、函数的使用方式以及函数的案例分析。
1. 函数的语法:ST_GeomFromText函数的语法如下:ST_GeomFromText(text, SRID)其中text是一个表示几何图形的文本表达式,SRID 是空间参考标识符。
text和SRID是函数的两个参数,都是必须的。
2. 参数表达式:ST_GeomFromText函数可以接受多种几何类型的文本表达式,如点、线、多边形等等。
每种几何类型的文本表达式都有特定的语法格式。
点的文本表达式语法格式如下:POINT(x y)其中x和y是点的坐标。
线的文本表达式语法格式如下:LINESTRING(x1 y1, x2 y2, ... , xn yn)其中x1 y1、x2 y2、xn yn表示线的各个点的坐标。
多边形的文本表达式语法格式如下:POLYGON((x1 y1, x2 y2, ... , xn yn, x1 y1), (x1 y1, x2 y2, ... , xn yn, x1 y1), ...)其中括号中的每个坐标串表示一个多边形的边界。
第一个坐标串和最后一个坐标串是相同的,因为多边形是封闭的。
3. 函数的使用方式:ST_GeomFromText函数可以用于创建几何类型的列、计算几何图形之间的距离、空间查询等等。
下面是ST_GeomFromText函数的一些使用方式。
创建几何类型的列:可以使用ST_GeomFromText函数在表中创建几何类型的列。
例如,创建一个points表,包含点的几何类型列和名称列。
CREATE TABLE points (the_geom geometry(Point, 4326), name varchar(20));INSERT INTO points (the_geom, name) VALUES (ST_GeomFromText('POINT(-71.102343 42.346723)', 4326), 'A'), (ST_GeomFromText('POINT(-71.099832 42.345899)', 4326), 'B');计算几何图形之间的距离:可以使用ST_GeomFromText函数来计算几何图形之间的距离。
MySQL中的Geometry方法用于处理和操作空间数据,包括点、线、多边形等几何对象。
下面是一些常用的Geometry方法:
1.ST_GeomFromText(wkt:将Well-Known Text(WKT)格式的字符串转换为Geometry对象。
2.ST_AsText(geom):将Geometry对象转换为Well-Known Text(WKT)格式的字符串。
3.ST_Point(x, y):创建一个二维点对象。
4.ST_LineString(p1,p2,...):创建一个线对象,由一系列点构成。
5.ST_Polygon(outer_ring, inner_ring1, inner_ring2,...):创建一个多边形对象,由外环和内环(可选)组成。
6.ST_Buffer(geom, distance):根据指定距离创建一个缓冲区。
7.ST_Intersection(geom1, geom2):计算两个几何对象的交集。
8.ST_Union(geom1, geom2):计算两个几何对象的并集。
9.ST_Distance(geom1, geom2):计算两个几何对象之间的最短距离。
10.ST_Area(geom):计算几何对象的面积。
这只是一小部分常用的Geometry方法,还有很多其他方法可用于更复杂的空间操作。
您可以参考MySQL官方文档或其他资源以获取更详细的信息和示例。
1。
ArcGIS GeoDatabase ST_Geometry简介1使用ST_Geometry存储空间数据(oracle)1.1简介ArcSDE for Oracle提供了ST_Geometry类型来存储几何数据。
ST_Geometry是一种遵循ISO和OGC规范的,可以通过SQL直接读取的空间信息存储类型。
采用这种存储方式能够更好的利用oracle的资源,更好的兼容oracle的特征,比如复制和分区,并且能够更快的读取空间数据。
使用ST_Geometry存储空间数据,可以把业务数据和空间数据存储到一张表中(使用SDENBLOB方式业务数据和空间数据是分开存储在B表和F表中的),因此可以很方便的在业务数据中增加空间数据(只需要在业务表中增加ST_Geometry列)。
使用这种存储方式还能够简化多用户的读取,管理(只需要管理一张表)。
从ArcGIS 9.3开始,新的ArcSDE geodatabases for Oracle 会默认使用ST_Geometry 方式来存储空间数据。
它实现了SQL3规范中的用户自定义类型(user-defined data types),允许用户使用ST_Geometry类型创建列来存储诸如界址点,街道,地块等空间数据。
使用ST_Geometry类型存储空间数据,具有以下优势:1)通过SQL函数(ISO SQL/MM 标准)直接访问空间数据;2)使用SQL语句存储、检索操纵空间数据,就像其他类型数据一样。
3)通过存储过程来进行复杂的空间数据检索和分析。
4)其他应用程序可以通过SQL语句来访问存储在geodatabase中的数据。
从ArcGIS 9.3开始,新的ArcSDE geodatabases for Oracle 要求所以ST 函数调用的时候前面都要加上SDE schema名称。
例如:要对查询出来的空间数据进行union操作,则SQL函数需要这样写:"sde.ST_Union",在9,2版本之前,可以不加SDE schema名称。
1.2存储结构ST_Geometry 存储空间数据的结构如下表:Name TypeENTITY NUMBER(38)NUMPTS NUMBER(38)MINX FLOAT(64)MINY FLOAT(64)MAXX FLOAT(64)MAXY FLOAT(64)MINZ FLOAT(64)MAXZ FLOAT(64)MINM FLOAT(64)MAXM FLOAT(64)AREA FLOAT(64)LEN FLOAT(64)SRID NUMBER(38)POINTS BLOBEntity:为要素类型,包括(linestring, multilinestring, multipoint, multipolygon, point, or polygon)。
具体的值对应的类型可以通过st_geom_util 存储过程获得。
NUMPTS为坐标点的个数Minx, miny, maxx, maxy :对应几何的外包络矩形Area:几何的面积Len :几何的周长SRID :空间参考系ID,对应ST_Spatial_References 表中的空间参考信息POINTS:坐标序列1.3操作函数下面是一些针对ST_Geometry进行操作的函数,输入为ST_Geometry类型数据,输出为Number型数据、ST_Area 返回几何的面积。
ST_Len 返回几何的周长。
ST_Entity 返回几何类型.ST_NumPoints 返回几何坐标点的个数.ST_MinM, ST_MinX, ST_MinY, ST_MinZ 返回几何不同维度的最小坐标. ST_MaxM, ST_MaxX, ST_MaxY, ST_MaxZ 返回几何不同维度的最大坐标. ST_SRID 返回空间参考系ID.Get_release 返回版本信息.如下面例子,在us_states表中查找所有state的名字并计算state的面积。
SELECT name, st_area(geometry)FROM us_statesORDER BY name;1.4构造ST_Geometry对象ST_LineString, ST_MultiLineString, ST_MultiPoint, ST_MultiPolygon, ST_Point, 和ST_Polygon 全部是ST_Geometry的子类. ST_Geometry和他的子类共享属性和方法. ST_LineString, ST_MultiLineString, ST_MultiPoint, ST_MultiPolygon, ST_Point and ST_Polygon的构造函数的定义是相同的,构造函数的名字就是类型名。
ST_Point是个有限对象(只有一个点),因此可以使用下面的方法来构造。
1,使用xy坐标和SRID来构造ST_PointMETHODFINAL CONSTRUCTOR FUNCTION ST_POINT RETURNS SELF AS RESULTArgument Name Type In/Out Default?PT_X NUMBER INPT_Y NUMBER INSRID NUMBER INSQL> insert into sample_pt values (ST_Point (10, 20, 1) );2,使用xy坐标、高程值(z)和SRID来构造ST_PointMETHODFINAL CONSTRUCTOR FUNCTION ST_POINT RETURNS SELF AS RESULTArgument Name Type In/Out Default?PT_X NUMBER INPT_Y NUMBER INPT_Z NUMBER INSRID NUMBER INSQL> insert into sample_pt values (ST_Point (10, 20, 5, 1) );3,使用xy坐标、高程值(z),量测值(m)和SRID来构造ST_Point METHODFINAL CONSTRUCTOR FUNCTION ST_POINT RETURNS SELF AS RESULTArgument Name Type In/Out Default?PT_X NUMBER INPT_Y NUMBER INPT_Z NUMBER INMEASURE NUMBER INSRID NUMBER INSQL> insert into sample_pt values (ST_Point (10, 20, 5, 401, 1) );1.5用户权限限制在oracle使用ST_Geometry ,用户必须有以下权限:CREATE TYPEUNLIMITED TABLESPACECREATE LIBRARYCREATE OPERATORCREATE INDEXTYPECREATE PUBLIC SYNONYMDROP PUBLIC SYNONYMThe CONNECT and RESOURCE roles include these privileges.2为使用ST_Geometry SQL函数配置oracle 的网络服务访问存储在oracle中的ST_Geometry类型数据的SQL函数通过扩展oracle的external procedure agent或者extproc来实现,因此,直接使用这些SQL函数需要配置oracle的listener,让oracle能够找到这些扩展库。
如果使用SDE读取这些数据,则不需要配置。
这些对ST_Geometry类型数据进行操作的函数是用PL/SQL实现的,在PL/SQL 中其实是转调的使用c语言编写的外部扩展库(ST_SHAPELIB)。
关于oracle的listener的详细配置方法请参考oracle的相关文档,下面主要介绍一下默认情况下如何配置(windows下面)。
1)找到oracle数据库的安装目录(服务器端),然后定位到oraclehome\NETWORK\ADMIN目录2)备份listener.ora文件,这点很重要,在对oracle的配置做任何更改的时候都要进行备份3)打开listener.ora文件,找到(PROGRAM = extproc) 这一行,在这行下面添加对ST_SHAPELIB的引用,即指定ST_SHAPELIB的地址,如下:(ENVS="EXTPROC_DLLS=C:\ProgramFiles\ArcGIS\ArcSDE\ora10gexe\bin\st_shapelib.dll")其中“C:\Program Files\ArcGIS\ArcSDE\ora10gexe\bin\st_shapelib.dll”为ST_SHAPELIB的物理路径,可以根据安装情况自己修改。
4)保存listener.ora文件,重新启动监听程序。
附录:未修改前的listener.ora# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1 \network\admin\listener.ora# Generated by Oracle configuration tools.SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)(PROGRAM = extproc)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))(ADDRESS = (PROTOCOL = TCP)(HOST = zbc)(PORT = 1521)) ))修改后的listener.ora# listener.ora Network Configuration File: D:\oracle\product\10.2.0\db_1 \network\admin\listener.ora# Generated by Oracle configuration tools.SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)(PROGRAM = extproc)(ENVS="EXTPROC_DLLS=C:\ProgramFiles\ArcGIS\ArcSDE\ora10gexe\bin\st_shapelib.dll")))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))(ADDRESS = (PROTOCOL = TCP)(HOST = zbc)(PORT = 1521))))3创建空间数据存储类型为ST_Geometry 的要素类创建空间数据存储类型为ST_Geometry的要素类有2种方法:1)使用SDE创建要素类从9.3 开始,默认创建的要素类都使用ST_Geometry存储空间数据,9.3 版本之前,可以通过配置dbtune参数来完成。