zoukankan      html  css  js  c++  java
  • 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取字符串长度的函数length()和hengthb()
    文件操作
    numpy 库使用
    numpy 与 matplotlib 的应用过程
    使用numpy与matplotlib.pyplot画图
    面向对象的解读
    Python PIL
    Note of Jieba
    python 游戏 —— 汉诺塔(Hanoita)
    有进度条圆周率Π计算
  • 原文地址:https://www.cnblogs.com/likehua/p/2769557.html
Copyright © 2011-2022 走看看