การวัดที่ง่าย แต่ไม่สุดวิเศษคือการหาระยะห่างระหว่างHausdorffแต่ละชุดซึ่งทำด้วยฟังก์ชันST_HausdorffDistance ใช้ LineStrings โดยประมาณจากรูปของคุณสิ่งเหล่านี้จะแสดงเป็นสีน้ำเงินและระยะห่างของ Hausdorff จะแสดงสำหรับหนึ่งในคู่ของเส้นสีแดง:
และแบบสอบถามเพื่อเรียงลำดับชุดค่าผสม 6 ชุดตามลำดับจากมากไปน้อย:
WITH data AS (
SELECT 'blue' AS name, 'LINESTRING (60 200, 110 290, 200 320, 330 320, 430 240, 450 200)'::geometry AS geom
UNION SELECT 'black', 'LINESTRING (60 200, 120 270, 235 297, 295 207, 450 200)'::geometry
UNION SELECT 'green', 'LINESTRING (60 200, 280 190, 450 200)'::geometry
UNION SELECT 'red', 'LINESTRING (60 200, 150 210, 257 195, 360 210, 430 190, 450 200)'::geometry)
SELECT a.name || ' <-> ' || b.name AS compare, ST_HausdorffDistance(a.geom, b.geom)
FROM data a, data b WHERE a.name < b.name
ORDER BY ST_HausdorffDistance(a.geom, b.geom) DESC;
compare | st_hausdorffdistance
-----------------+----------------------
blue <-> green | 130
blue <-> red | 125
black <-> blue | 110.102502131467
black <-> green | 104.846289061163
black <-> red | 97.9580173908678
green <-> red | 15.2677257073823
(6 rows)
ดังนั้นมันจึงใช้งานได้ดีสำหรับตัวอย่างนี้ แต่มันไม่ได้เป็นเทคนิคที่ดีหรือมีประสิทธิภาพสำหรับการจัดกลุ่มบรรทัดเนื่องจากตัวชี้วัดเดียวคือจุดเดียวที่มีระยะทางไกลที่สุดแทนที่จะเปรียบเทียบความแตกต่างของเส้นที่สมบูรณ์ มีวิธีที่ดีกว่ามาก แต่จะซับซ้อนกว่า