मुझे लगता है कि ओपी के लिए यह लगभग 3 साल बहुत देर हो चुकी है, लेकिन एक समान विषय पर शोध करते समय मैं इस प्रश्न में हुआ, इसलिए यहां मेरा कल्पनीय मूल्य है।
www.movable-type.co.uk/scripts/latlong.html के अनुसार पृथ्वी की सतह पर दूरी की गणना करने के 3 तरीके हैं, ये सबसे आसान से सबसे जटिल (और इस प्रकार से कम से कम सटीक) तक हैं: इक्विप्रैंग्युलर अनुमान, कोसाइन के गोलाकार कानून और हावर्सिन फॉर्मूला। साइट जावास्क्रिप्ट भी प्रदान करता है।
function _lineDistanceC(lat1, lon1, lat2, lon2) {
var R = 6371; // km
lat1 = lat1.toRad();
lon1 = lon1.toRad();
lat2 = lat2.toRad();
lon2 = lon2.toRad();
var x = (lon2-lon1) * Math.cos((lat1+lat2)/2);
var y = (lat2-lat1);
return Math.sqrt(x*x + y*y) * R;
}
यह एक एसक्यूएल बराबर पर मेरे प्रयास है:: इस Equirectangular सन्निकटन के लिए समारोह है
drop function if exists lineDistanceC;
delimiter //
CREATE FUNCTION lineDistanceC (la1 DOUBLE, lo1 DOUBLE, la2 DOUBLE, lo2 DOUBLE) RETURNS DOUBLE
BEGIN
SET @r = 6371;
SET @lat1 = RADIANS(la1);
SET @lon1 = RADIANS(lo1);
SET @lat2 = RADIANS(la2);
SET @lon2 = RADIANS(lo2);
SET @x = (@[email protected]) * COS((@[email protected])/2);
SET @y = (@lat2 - @lat1);
RETURN (SQRT((@x*@x) + (@y*@y)) * @r);
END
//
delimiter ;
मैं पता नहीं इस सूत्र है कैसे सही है, लेकिन साइट बहुत विश्वसनीय और निश्चित रूप से लायक लगता है अधिक जानकारी के लिए एक यात्रा। प्रश्न में निर्देशांक का उपयोग करते हुए, उपर्युक्त जावास्क्रिप्ट और एसक्यूएल से परिणाम (किलोमीटर में) 0.14834420231840376 और 0.1483442023182845 हैं, जो उन्हें मिलीमीटर के अंश के समान बनाता है, लेकिन उत्सुकता से, 147 मीटर ओपी की अपेक्षा नहीं थी। का आनंद लें।
मुझे खेद है कि मैं इसके लिए नया हूं, लेकिन क्या हम इस 0.00134536240471071 को प्रश्न के अनुसार अपेक्षित परिणाम 147 में परिवर्तित कर सकते हैं? –