Welcome 微信登录

首页 / 数据库 / MySQL / 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越庞大,导致在前端绘制图形的响应时间越慢。Oracle 11g告警日志存储路径Oracle 关于WKT构造SDO_GEOMETRY的问题相关资讯      Oracle函数  Oracle基础知识  Oracle spatial  Oracle精度 
  • Oracle字符串函数总结  (06月20日)
  • Oracle lag()与lead() 函数  (12/01/2015 20:41:24)
  • Oracle ascii函数  (07/26/2015 08:46:01)
  • Oracle使用简单函数  (06月09日)
  • REGEXP_SUBSTR函数的整理  (08/20/2015 20:41:01)
  • Oracle dump函数  (07/26/2015 08:40:01)
本文评论 查看全部评论 (0)
表情: 姓名: 字数