यह मेरे लिए एक बहुत ही उपयोगी उत्तर था, लेकिन मैं MySQL 5.7.18 का उपयोग कर रहा हूं, जिसमें अधिक उन्नत या बस अलग-अलग जियो क्वेरी फ़ंक्शन हैं। पोस्ट किए गए डिस्टेंस फंक्शन की अब आवश्यकता नहीं है- ST_Distance_Sphere का उपयोग करें। तो यहाँ उसी कोड का एक अपडेट है जो डिस्टेंसफ्रॉमलाइन को आधुनिक (5.7.6+) MySQL के अनुरूप बनाने के लिए है...
DROP function IF EXISTS `DistanceFromLine`;
delimiter //
CREATE FUNCTION `DistanceFromLine`(
route LINESTRING, point1 POINT
) RETURNS INT DETERMINISTIC
BEGIN
DECLARE a INT Default 0 ;
DECLARE minDistance INT Default 0;
DECLARE currentDistance INT Default 0;
DECLARE currentpoint point ;
DECLARE size INT Default 0 ;
SET size = ST_NumPoints(route);
simple_loop: LOOP
SET a = a+1;
SET currentpoint = ST_PointN(route,a);
SET currentDistance = ST_Distance_Sphere(point1,currentpoint);
IF a = 1 THEN
SET minDistance = currentDistance;
END IF;
IF currentDistance < minDistance THEN
SET minDistance = currentDistance;
END IF;
IF a=size THEN
LEAVE simple_loop;
END IF;
END LOOP simple_loop;
RETURN (minDistance);
END//