আমি বর্তমানে একটি ওপেনলায়ার্স ম্যাপিং সাইট বিকাশ করছি। একটি লাইন সরঞ্জাম এবং একটি অঞ্চল সরঞ্জাম ব্যবহার করে পরিমাপ করা যেতে পারে। এগুলি উভয়ই ওপেনলায়ারস এপিআই-তে উল্লিখিত হিসাবে জিওডেসিক পরিমাপগুলি গণনা করতে প্রস্তুত ।
প্ল্যানার পরিমাপের চেয়ে আমি জিওডেসিক পরিমাপ ব্যবহার করি কারণ ব্যবহারকারী পরীক্ষার সময় লোকেরা ইতিমধ্যে জানার দূরত্বগুলির জন্য সরঞ্জামটির পরিমাপ নিয়ে প্রশ্ন করেছিল (যেমন শহরগুলির মধ্যে গাড়ি চালানো)।
সাইটের নতুন বৈশিষ্ট্যটি কোনও ব্যবহারকারী কোনও সেট ব্যাসার্ধের মানচিত্রে একটি বৃত্ত আঁকতে সক্ষম হওয়ার জন্য। ওপেনলায়ার্স কেবল পরিকল্পনাকারী দূরত্বগুলি ব্যবহার করে চেনাশোনাগুলি আঁকার জন্য অনুমতি দেয়, তাই যখন কোনও ব্যবহারকারী ভূ-কেন্দ্রিক পরিমাপ সরঞ্জামের সাথে বৃত্তটি পরিমাপ করে মানগুলি মেলে না। বৃত্তের নীচের চিত্রটিতে প্ল্যানার ব্যাসার্ধটি 10 কিলোমিটার, তবে ব্যাসের জন্য জিওডেসিক লাইন পরিমাপ 12 কিলোমিটার।
স্পষ্টতই এটি কোনও ব্যবহারকারীকে (এবং আমি) ভাবছেন যা সঠিক।
এই উত্তরটি দেখে মনে হচ্ছে বেশিরভাগ ডেস্কটপ জিআইএস সিস্টেমগুলি এই সমস্যাটিকে "উপেক্ষা" করে এবং পরিকল্পনার পরিমাপ এবং দূরত্বগুলি ফেরত দেয়। সুতরাং প্ল্যানার এবং জিওডেসিক পরিমাপের সাথে মোকাবিলা করার জন্য ইউজার ইন্টারফেস এবং যথার্থতার দিক থেকে সেরা অনুশীলনটি কী?
হালনাগাদ
আমি এই গুগলের উদাহরণটি পেয়েছি যা রেডিয়ির সমস্যা এবং মার্কেটর প্রক্ষেপণের চিত্র তুলে ধরে:
http://maps.forum.nu/gm_sensitive_circle2.html
বৃত্ত আঁকার জাভাস্ক্রিপ্ট কোডটি নিম্নরূপ:
var lat1 = (PI/180)* center.lat(); // radians
var lng1 = (PI/180)* center.lng(); // radians
for (var a = 0 ; a < 361 ; a++ ) {
var tc = (PI/180)*a;
var y = asin(sin(lat1)*cos(d)+cos(lat1)*sin(d)*cos(tc));
var dlng = atan2(sin(tc)*sin(d)*cos(lat1),cos(d)-sin(lat1)*sin(y));
var x = ((lng1-dlng+PI) % (2*PI)) - PI ; // MOD function
var point = new GLatLng(parseFloat(y*(180/PI)),parseFloat(x*(180/PI)));
circlePoints.push(point);
bounds.extend(point);
}
এই বৃত্তটি কি পৃথিবীর বক্রতা বিবেচনায় নেয়?
চূড়ান্ত আপডেট
ওয়ার্কিং কোড http://geographichika.co.uk/creating-a-geodesic-circle-in-openlayers এ পোস্ট করা হয়েছে