GPS কোঅর্ডিনেট (ল্যাটিটিউড/লองিটিউড) থেকে গ্রেট সার্কেল ডিস্ট্যান্স বের করে ৫০ কিমির ভেতর ক্যাবগুলো খুঁজে বের করা। JSON ফাইল ইনপুট/আউটপুট হিসেবে ব্যবহার।
ফর্মুলা
Δλ = lon2 - lon1 θ = acos(sin φ1 sin φ2 + cos φ1 cos φ2 cos Δλ) Distance = R × θ (R = 6371 km)
C++ কোড স্ট্রাকচার
to_radian()— ডিগ্রি টু রেডিয়ান।cal_distance()— গ্রেট সার্কেল ফর্মুলা।file_parser()— JSON পার্স করে ল্যাট/লอง এক্সট্র্যাক্ট।check_distance()— ৫০ কিমি চেক করে আউটপুট JSON-এ লিখুন।
মূল কোড (সংক্ষিপ্ত)
#include <bits/stdc++.h>
using namespace std;
#define PI 3.14159265358979323
#define R 6371.0
#define LAT1 12.9611159
#define LON1 77.6362214
double to_rad(double d) { return d * PI/180; }
double dist(double lat2, double lon2) {
double φ1 = to_rad(LAT1), λ1 = to_rad(LON1);
double φ2 = to_rad(lat2), λ2 = to_rad(lon2);
double Δλ = λ2 - λ1;
return R * acos(sin(φ1)*sin(φ2) + cos(φ1)*cos(φ2)*cos(Δλ));
}
// JSON পার্সিং লজিক (input.json পড়ে output.json লিখে)
int main() { /* access_file object; object.file_parser(); */ return 0; }
আউটপুট
output.json ফাইলে ৫০ কিমির ভেতরের ক্যাবের User_id ও Name থাকবে।