সার্কেল রেডিয়ির জন্য জিওডেসিক পরিমাপ ব্যবহার করছেন?


15

আমি বর্তমানে একটি ওপেনলায়ার্স ম্যাপিং সাইট বিকাশ করছি। একটি লাইন সরঞ্জাম এবং একটি অঞ্চল সরঞ্জাম ব্যবহার করে পরিমাপ করা যেতে পারে। এগুলি উভয়ই ওপেনলায়ারস এপিআই-তে উল্লিখিত হিসাবে জিওডেসিক পরিমাপগুলি গণনা করতে প্রস্তুত ।

প্ল্যানার পরিমাপের চেয়ে আমি জিওডেসিক পরিমাপ ব্যবহার করি কারণ ব্যবহারকারী পরীক্ষার সময় লোকেরা ইতিমধ্যে জানার দূরত্বগুলির জন্য সরঞ্জামটির পরিমাপ নিয়ে প্রশ্ন করেছিল (যেমন শহরগুলির মধ্যে গাড়ি চালানো)।

সাইটের নতুন বৈশিষ্ট্যটি কোনও ব্যবহারকারী কোনও সেট ব্যাসার্ধের মানচিত্রে একটি বৃত্ত আঁকতে সক্ষম হওয়ার জন্য। ওপেনলায়ার্স কেবল পরিকল্পনাকারী দূরত্বগুলি ব্যবহার করে চেনাশোনাগুলি আঁকার জন্য অনুমতি দেয়, তাই যখন কোনও ব্যবহারকারী ভূ-কেন্দ্রিক পরিমাপ সরঞ্জামের সাথে বৃত্তটি পরিমাপ করে মানগুলি মেলে না। বৃত্তের নীচের চিত্রটিতে প্ল্যানার ব্যাসার্ধটি 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 এ পোস্ট করা হয়েছে


1
এখানে কিছু ভুল হতে হবে। সরলরেখা এবং স্পেরয়েড অনুসরণ করে রেখার মধ্যে স্বল্প দূরত্বের চেয়ে পার্থক্য 20% হতে পারে না। অন্য কিছু অবশ্যই জড়িত থাকতে হবে।
নিক্লাস আভেন

4
অভিক্ষেপটি খুব সম্ভবত মারকেটর, যার নিরক্ষরেখায় কেবল সত্য স্কেল থাকে (সাধারণত, অন্য কোথাও (একক অক্ষাংশে) সত্য স্কেল দিয়ে মার্কেটর অনুমান করা সম্ভব তবে বেশিরভাগ বৈশ্বিক প্যারামিটারাইজেশন নিরক্ষীয় স্থানটি ব্যবহার করে)। আপনি যখন সঠিক স্কেল অক্ষাংশ থেকে উত্তর / দক্ষিণের দিকে যাচ্ছেন তখন মারকেটরের জন্য স্কেল ত্রুটিগুলি অবশ্যই অনেক বেশি (অসীম, প্রকৃতপক্ষে মেরুগুলিতে) বৃদ্ধি পাচ্ছে।
পল রামসে

পরিমাপটি 52 ডিগ্রি উত্তরে নেওয়া হয়েছিল, এবং তা সত্যিই মারকেটরের অভিক্ষেপে রয়েছে। সুতরাং এর অর্থ কী মার্কেটরে আঁকা কোনও ক্লায়েন্ট-সাইড বৈশিষ্ট্যগুলি নিরক্ষীয় অঞ্চলের কাছাকাছি না হলে খুব সঠিক ক্ষেত্র এবং দৈর্ঘ্য ফিরে আসবে?
ভৌগলিক

1
হ্যাঁ, এটি বেশ কার্যকর, ডেটা মিটার বা ফুট স্থানীয় গ্রিডে প্রজেক্ট করুন এবং সবকিছু ঠিকঠাক হবে।
ইয়ান টার্টন

2
@ পল শুভ কল। তবে এই তথ্যগুলি কেবলমাত্র প্রক্ষেপণটি নলাকার বলে নির্দেশ করে, যার মধ্যে মঙ্গলকটি একটি। সত্য নলাকার অনুমানগুলিতে অনুভূমিক বিকৃতি সমান সেকেন্ড (অক্ষাংশ)। এই সূত্র ধরে 20 / 12.13 এর বিকৃতি 52.66 ডিগ্রি অক্ষাংশে কাজ করে; যে ঠিক লিমেরিক অক্ষাংশ।
হোবার

উত্তর:


8

আপনি যদি ব্রাউজারে ঘরে বসে থাকেন তবে আপনি একটি "বৃত্ত" পেতে পারেন (এটি আপনার প্রজেকশনের কারণে পর্দায় গোলাকার হবে না; বরং বহুভুজ দ্বারা সজ্জিত / আপনি যতটা পয়েন্ট আঁকেন), ব্যবহার করুন এটি জিওডেসিক গণনার প্রত্যক্ষ রূপ: একটি বিন্দু, একটি দিক (আজিমুথ) এবং একটি দূরত্ব দেওয়া যা আপনাকে ফলস্বরূপ দেয়। গোরীর বিশদ: http://en.wikedia.org/wiki/ ভিনসেন্টি ১০27 এস_ফর্মুলি# ডাইরেক্ট_মথোদ

দেখে মনে হচ্ছে কেউ ইতিমধ্যে জাভাস্ক্রিপ্টে অনুবাদ করেছে: http://www.movable-type.co.uk/scriptts/latlong-vincent-direct.html । ভাগ্যবান তুমি!

জিনিস শেষ করতে:

  • সিদ্ধান্ত নিন যে কী পরিমাণে (চূড়ায় # টি, তাকে কল করুন এন) আপনি শেষ ফলাফলটি পেতে ইচ্ছুক।
  • 360 ডিগ্রি এন টুকরো বিভক্ত করুন।
  • বহুভুজ তৈরি করুন (আমার পরিসীমা (n) এর জন্য: বহুভুজ.এডডি (ভিনসেন্টি_ডাইরেক্ট (শুরু_পয়েন্ট, আমি * ৩ /০ / এন, দূরত্ব)))
  • বাস্তবের পরে, সম্ভবত কিছু অভিক্ষেপ এবং পরিকল্পনার জ্বালা সমাধান করুন:
    • আপনি যদি সাধারণ ওয়েব মানচিত্রের প্রক্ষেপণটি ব্যবহার করেন, যা আপনি প্রায় নিশ্চিতভাবেই রয়েছেন, ফলস বহুভুজনটি একটি মেরুর নিকটবর্তী হয়, তবে এটি উল্লম্বভাবে প্রসারিত হবে।
    • একইভাবে, যদি ফলাফল বহুভুজ আন্তর্জাতিক তারিখের লাইন অতিক্রম করে, তবে এটি সত্যই বিরক্ত হবে।

চিয়ার্স!


1
এই এবং আপনার ব্যাখ্যা, বিশেষত ভারবহন প্যারামিটার সহ, ভিনসেন্টি পদ্ধতিটি ইতিমধ্যে ইউপস নেমস্পেস - dev.openlayers.org/apidocs/files/OpenLayers/… এ ওপেনলায়ার্সে যুক্ত করা হয়েছে this ধন্যবাদ!
geographika

:) আমাকে জানুন যে 'জ্বালা' কতটা বিরক্তিকর। আদর্শভাবে ফিক্সিং-আপ ইতিমধ্যে ওপেনলায়ার্সের অংশ হতে পারে এবং এটি কেবল কাজ করবে, তবে আমি নিশ্চিত নই।
ড্যান এস

3

ওপেন লেয়ার্স কেবল পরিকল্পনাকারী দূরত্ব ব্যবহার করে চেনাশোনাগুলি আঁকার জন্য অনুমতি দেয়

একটি জিওডেসিক বৃত্ত পেতে, আপনি ইএসআরআই এর জ্যামিতি পরিষেবাতে বাফার অপারেশনটি ব্যবহার করতে পারেন ।

... ইউনিট লিনিয়ার যেমন পাদদেশ বা মিটারের ক্ষেত্রে, জিওডেসিক বাফারিং করা হয়

এখানে অবাধে অ্যাক্সেসযোগ্য একটি উপলব্ধ ।


দরকারী লিঙ্কটির জন্য ধন্যবাদ - আমি পরিষেবাটি কল করতে এবং জাভাস্ক্রিপ্টে বৈশিষ্ট্যটি আপডেট করতে পারি কিনা তা আমি দেখতে পাচ্ছি। আমার একমাত্র উদ্বেগ এমন কোনও ওয়েব পরিষেবায় নির্ভর করবে যা যে কোনও সময় বন্ধ হতে পারে। আমি অনুমান করি যে জিওডাসিক বাফার পয়েন্টটি সঠিক / বাস্তব 10 কিমি বৃত্ত হতে পারে?
ভৌগলিক

চেনাশোনাটি নির্ভুল হওয়া উচিত, তবে আমি এটি আপনার পরিমাপ সরঞ্জামটি ব্যবহার করে যাচাই করেছিলাম। আমি মনে করি জ্যামিতি পরিষেবাটি একটি স্ট্যান্ডার্ড অর্কগিস সার্ভার ইনস্টলেশনের অংশ, তাই যদি সে অবসর গ্রহণ করে তবে ওয়েবে আরও অনেকগুলি বেছে নেওয়া উচিত। google.com/…
কर्क কুইকেনডাল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.