Calculating the Shortest Path Between Two Geometries

Seperti kita ketahui bahwa untuk mendapatkan berapa panjang jarak Antara 2 buah titik dapat menggunakan function STDistance() seperti contoh berikut :

Misal saya akan menandakan 2 buah point di kecamatan simokerto Surabaya :

DECLARE @Simo1 geography = 'POINT(112.752191 -7.234907)';
DECLARE @Simo2 geography = 'POINT(112.751384 -7.234276)';

Kemudian kita hitung jaraknya adalah :

SELECT @Simo1.STDistance(@Simo2);

Dimana hasilnya adalah : 113.194027345718 Meter.

Namun hal ini hanya menandakan jarak 2 buah titik lokasi tanpa kita mengetahui bagaimana bentuk linestring yang menghubungkan dua lokasi tersebut.

Untuk hal tersebut dapat menggunakan function ShortestLineTo(). Sehingga garis yang terpendek yang menghubungkan 2 buah titik tersebut adalah :

SELECT @Simo1.ShortestLineTo(@Simo2)

Sehingga jika kita ingin mengetahui jarak terdekat dan berapa jauh jarak terdekat tersebut dapat digambarkan dengan T-SQL lengkap sebagai berikut :

DECLARE @Simo1 geography = 'POINT(112.752191 -7.234907)';
DECLARE @Simo2 geography = 'POINT(112.751384 -7.234276)'; 

Select @Simo1.STBuffer(5) Geom, 'SiMolawang I'
Union All Select
@Simo2.STBuffer(5) Geom, 'SiMolawang II'
Union All Select
@Simo1.ShortestLineTo(@Simo2).STBuffer(2) geom,'ShortestLineTo';

Dimana hasilnya adalah seperti ini :

line

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.