oracle spatial sdo_buffer函数精度控制

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<Map> 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越庞大,导致在前端绘制图形的响应时间越慢。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值