शायद यह एक बहुत ही सुंदर समाधान नहीं है और यह सवाल का जवाब देने की विधि पर आधारित है: /gis//a/295348/120129 ।
यह आपके प्रश्न को हल करने के वेरिएंटों में से एक है, एक जियोइन्स्टेक्टस सेट करें (मेरे लिए यह "रोड_बॉर्डर" 11 मीटर चौड़ा, टाइप - लाइन (मल्टीलाइनरिंग) नाम से एक सड़क है)
एक जियोइन्स्टैटिक्स चलाएं :-),
WITH
tbla AS (SELECT id, ((ST_DumpPoints(geom)).geom) geom FROM road_border),
tblb AS (SELECT (ST_Buffer((ST_Dump(geom)).geom, 0.0001)) geom FROM tbla),
tblc AS (SELECT ST_Centroid(ST_UnaryUnion(Unnest(ST_ClusterWithin(geom, 0.0001)))) geom FROM tblb),
tbld AS (SELECT ((ST_Dump(ST_DelaunayTriangles(ST_Collect(geom)))).geom) geom FROM tblc),
tble AS (SELECT (ST_Boundary(geom)) geom FROM ST_Dump((SELECT ST_Polygonize(geom) geom FROM (SELECT ST_Union(geom) geom FROM
(SELECT ST_ExteriorRing(geom) geom FROM tbld) AS lines) AS foo))),
tblf AS (SELECT ST_MakeLine(p1, p2) geom FROM (SELECT ST_PointN(geom, generate_series(1, ST_NPoints(geom)-1)) p1,
ST_PointN(geom, generate_series(2, ST_NPoints(geom))) p2 FROM tble) AS geom),
tblj AS (SELECT ST_Buffer((ST_Dump(ST_Union(ST_Buffer(geom, 0.0005)))).geom, -0.0005) geom FROM road_border)
SELECT ST_Intersection (a.geom, b.geom) geom FROM tblf a JOIN tblj b ON ST_Within (a.geom, b.geom);
और परिणाम देखें।
सबको सौभाग्य प्राप्त हो :-),
मूल समाधान ...
इस स्क्रिप्ट को कहा जाता है - ST_RoadAxisFromDelaunayTriangulation ...