sdo_geometry理解起来稍微难一点,但常用的需求就两个,插入点和插入面
1.插入点
insert into t_sxt2 (shape) values (
t_sxt2.SDO_GEOMETRY( 2001,4326, sdo_point_type(120.1,30.1,0),null,null ));
解释:2001表示二维单点,其中2表示二维,第二位一般为0,后面01表示单点。
4326表示坐标系srid
sdo_point_type(120.1,30.1,0)表示 点坐标,xyz三个参数都要,即使是二维的
后面两个null,分别表示SDO_ELEM_INFO 和SDO_ORDINATES,当类型为点的时候,都是null
2.插入多边形
insert into zz_wg (shape) VALUES (
zz_wg.SDO_GEOMETRY( 2003, 4326,NULL,MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),MDSYS.SDO_ORDINATE_ARRAY(119,29,119,30,120,30,119,29)));
解释:2003同上,03表示多边形,polygon
4326同上
null:当为多边形时,第三个参数会被忽略,即设为null
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1):MDSYS为oracle空间数据账户,是一个默认账户。
SDO_ELEM_INFO_ARRAY定义了如何理解后面一个参数(坐标串):1表示从第一个坐标端开始,后面两个参数要连起来理解:在这里1003为逆时针,1表示直线多边形
SDO_ORDINATE_ARRAY(119,29,119,30,120,30,119,29):具体坐标
以上理解虽然不全面,但至少能用,下面有详解链接。
https://www.cnblogs.com/upDOoGIS/archive/2009/05/20/1469871.html