oracle空間字段shape維護


  首先說以shape字段在oracle中會被自動解析為5個子字段,分別是shape.sdo_gtype,類型分為點,線,面等,點是指只有一組坐標代號為2001,線就是兩個點了也就是有兩組坐標2002后面的應該都知道了,然后就是shape.sdo_srid,shape.sdo_point.x,shape.sdo_point.y,sdo_point.z

  操作空間字段主要用的就是mdsys.sdo_geometry()這個函數,有興趣的小伙伴可以詳細了解一下

  維護線設備的空間字段:

insert into tableName(shape) 

values(

mdsys.sdo_geometry(

2002,--

null, --srid根據公司規定來填

null,

mdsys.sdo_elem_info_array(1, 2, 1),

mdsys.sdo_ordinate_array(數據集合)--兩組坐標x1,y1,x2,y2

)

);

  維護點設備的空間字段:

insert into tableName(shape)
values(

mdsys.sdo_geometry(2001,--

null,--srid

mdsys.sdo_point_type(x坐標, y坐標, z坐標),--沒有z就填null
null,
null)
);

  后面給出獲取shape字段的坐標值代碼

    //參數是一個實體對象,也就是數據庫里的一條數據
public double[] getShapeXY(Map map) throws Exception{
    //獲取shape字段 
    STRUCT shape =(STRUCT)map.get("SHAPE");
    JGeometry geom=JGeometry.load(shape);
    int dimensions=geom.getDimensions();
    double[] geomxy=geom.getFirstPoint();
    double x1=geomxy[0];
    double y1=geomxy[1];
    double[] array={x1,y1};
    return array;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM