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 .