Oracle spatial sdo_buffer函数精度控制

来源:这里教程网 时间:2026-02-27 15:12:51 作者:

SDO_GEOM.sdo_buffer 函数用来做缓冲区查询使用,它有三个参数:其中arc_tolerance 越小,缓冲区图形越精确,同时也意味着sdo_ge

sdo_geom.sdo_buffer 函数用来做缓冲区查询使用,它有三个参数:
 
param1:需要查询的几何要素。
 
param2:用来过滤的几何要素。
 
param3:用来控制缓冲区半径值、缓冲弧容差和单位的控制。
 
当下,我有一个需求,对一线状地物进行缓冲区查询,并将缓冲区绘制在地图上。以下是我的代码:
 
public string getbufferline(string linewkt, double distance) {
  string response="";
  //tolerace值越小  图越精确    likehua  20121114
  stringbuffer  sql=new stringbuffer("select sdo_util.to_wktgeometry(sdo_geom.sdo_buffer(sdo_geometry('"+linewkt+"',8307),"+distance+",0.0002,'arc_tolerance=0.02 unit=m')) as wkt from dual");
  list result=this.getlistbyarg(sql.tostring(), null);
  if(result!=null&&result.size()>0){
  map one=result.get(0);
  response=one.get("wkt").tostring();
  }
  return response;
 }
 
其中arc_tolerance 越小,缓冲区图形越精确,同时也意味着sdo_geoemtry越庞大,,导致在前端绘制图形的响应时间越慢。

相关推荐