Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Lấy trung điểm của đa tuyến SDO.GEOMETRY

Oracle Spatial có tham chiếu tuyến tính gói có tên SDO_LRS . Nó có thể được sử dụng để tìm tọa độ trung điểm của một polyline.

--In this case, 'sdo' is the name of the sdo_geometry column.

sdo_lrs.convert_to_std_geom(sdo_lrs.locate_pt(sdo_lrs.convert_to_lrs_geom(sdo,3)
    ,sdo_geom.sdo_length(sdo,3)/2)).sdo_point.x as midpoint_x,

sdo_lrs.convert_to_std_geom(sdo_lrs.locate_pt(sdo_lrs.convert_to_lrs_geom(sdo,3)
    ,sdo_geom.sdo_length(sdo,3)/2)).sdo_point.y as midpoint_y

Để có điểm thưởng:

Đây là cách làm của ESRI SDE.ST_GEOMETRY có thể được chuyển đổi thành SDO_GEOMETRY với mục đích lấy tọa độ điểm giữa:

select
    sdo_lrs.convert_to_std_geom(sdo_lrs.locate_pt(sdo_lrs.convert_to_lrs_geom(sdo,3),sdo_geom.sdo_length(sdo,3)/2)).sdo_point.x as midpoint_x,
    sdo_lrs.convert_to_std_geom(sdo_lrs.locate_pt(sdo_lrs.convert_to_lrs_geom(sdo,3),sdo_geom.sdo_length(sdo,3)/2)).sdo_point.y as midpoint_y
from
    (select
        sdo_util.from_wktgeometry(sde.st_astext(shape)) as sdo
    from
        roads)

Câu trả lời này được lấy cảm hứng từ câu trả lời trên Đánh giá mã: Tính điểm giữa của một đường đa giác .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 12c Kế hoạch thích ứng trong nhà phát triển SQL

  2. Tôi có thể bỏ qua xác minh chứng chỉ oracle utl_http không?

  3. sai số hoặc loại đối số khi gọi Stored Proc

  4. Xác định Bộ ký tự cho cột Đối với bảng cơ sở dữ liệu oracle

  5. Lưu trữ Blob từ Java sang BD:Kích thước dữ liệu lớn hơn kích thước tối đa cho loại này khi rõ ràng là không