के बीच दूरी (x, y) में दूरी की गणना करें, मैं दो जीपीएस पॉइंट्स के बीच की दूरी की गणना करने के लिए एक आसान तरीका ढूंढ रहा हूं, इसलिए मुझे परिणाम मिलते हैं: "आपको एक्स मीटर ऊपर जाना है और y मीटर से बाएं - इसलिए मैं 2 डी-समन्वय प्रणाली के साथ काम कर सकता हूं, जहां मेरी स्थिति (0,0) है और दूसरी स्थिति मेरी स्थिति से मीटर में (x, y) में दूरी दिखा रही है।दो जीपीएस-पॉइंट्स
मेरा विचार haversine सूत्र का उपयोग अंक के बीच दूरी की गणना करने के लिए था। (यह मेरा कर्ण रिटर्न)
इसके अलावा, मैं इस दो अंक के बीच असर की गणना कर रहा हूँ। यह मेरा अल्फा है।
इन दो मूल्यों के साथ, मैं अपनी समस्या को हल करने के लिए मूल त्रिकोणमिति कार्यों का उपयोग करना चाहता था।
तो मैंने गणना करने की कोशिश की: catheti_1 = sin(alpha) * hypotenuse, catheti_2 = cos(alpha) * hypotenuse
।
शायद मैं कुछ गलत कर रहा हूं, लेकिन इस समय मेरे परिणाम बेकार हैं।
तो मेरा सवाल है: मैं दो जीपीएस अंकों के बीच एक्स और वाई दिशा में दूरी की गणना कैसे कर सकता हूं?
मैं निम्नलिखित प्रक्रिया में अल्फा की गणना कर रहा हूँ:
public static double bearingTo(GPSBean point1, GPSBean point2) {
double lat1 = Math.toRadians(point1.latitude);
double lat2 = Math.toRadians(point2.latitude);
double lon1 = Math.toRadians(point1.longitude);
double lon2 = Math.toRadians(point2.longitude);
double deltaLong = lon2 - lon1;
double y = Math.sin(deltaLong) * Math.cos(lat2);
double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1)
* Math.cos(lat2) * Math.cos(deltaLong);
double bearing = Math.atan2(y, x);
return (Math.toDegrees(bearing) + 360) % 360;
}
आप 'अल्फा' की गणना कैसे कर रहे हैं? – Barranka
मैंने अल्फा के लिए विधि जोड़ दी है;) – Frame91
@ बोरीयन नं। यह डुप्लिकेट नहीं है, क्योंकि मुझे इन दो बिंदुओं के बीच सीधी दूरी की आवश्यकता नहीं है। मैं harversine सूत्र के बारे में जानता हूं, लेकिन मुझे टैक्सीकैब ज्यामिति में "चलना" है;) – Frame91