从经纬度创建线几何
Create line geometry from lat long
我需要根据另一个查询返回的经纬度值创建线串几何。
此查询返回的值
SELECT LATITUDE, LONGITUDE FROM POINTS
应该进入sdo_ordinate_array
sdo_geometry (2002, null, null, sdo_elem_info_array (1,2,1), sdo_ordinate_array ( 1,1,2,2,3,4 ))
不知道如何将结果集转换成数组。
declare
elem mdsys.sdo_elem_info_array;
ordinates mdsys.sdo_ordinate_array;
srid number := 4326;
gtype number := 2002;
begin
elem:=mdsys.sdo_elem_info_array();
ordinates:=mdsys.sdo_ordinate_array();
elem.EXTEND(3);
elem(1):=1;
elem(2):=2;
elem(3):=1;
FOR cur_rec IN (SELECT LONGITUDE,LATITUDE FROM POINTS) LOOP
ordinates.EXTEND(2);
ordinates(ordinates.last-1):=cur_rec.LONGITUDE;
ordinates(ordinates.last):=cur_rec.LATITUDE;
END LOOP;
INSERT INTO MYLINETABLE (ID,GEOM) VALUES (MYSEQUENCE.NEXTVAL,SDO_UTIL.SIMPLIFY(MDSYS.SDO_GEOMETRY(gtype,srid,null,elem,ordinates),6,0.5));
commit;
end;
我需要根据另一个查询返回的经纬度值创建线串几何。
此查询返回的值
SELECT LATITUDE, LONGITUDE FROM POINTS
应该进入sdo_ordinate_array
sdo_geometry (2002, null, null, sdo_elem_info_array (1,2,1), sdo_ordinate_array ( 1,1,2,2,3,4 ))
不知道如何将结果集转换成数组。
declare
elem mdsys.sdo_elem_info_array;
ordinates mdsys.sdo_ordinate_array;
srid number := 4326;
gtype number := 2002;
begin
elem:=mdsys.sdo_elem_info_array();
ordinates:=mdsys.sdo_ordinate_array();
elem.EXTEND(3);
elem(1):=1;
elem(2):=2;
elem(3):=1;
FOR cur_rec IN (SELECT LONGITUDE,LATITUDE FROM POINTS) LOOP
ordinates.EXTEND(2);
ordinates(ordinates.last-1):=cur_rec.LONGITUDE;
ordinates(ordinates.last):=cur_rec.LATITUDE;
END LOOP;
INSERT INTO MYLINETABLE (ID,GEOM) VALUES (MYSEQUENCE.NEXTVAL,SDO_UTIL.SIMPLIFY(MDSYS.SDO_GEOMETRY(gtype,srid,null,elem,ordinates),6,0.5));
commit;
end;