iOS-এর জন্য Maps SDK নিম্নলিখিত স্থানাঙ্ক সিস্টেম ব্যবহার করে:
- অক্ষাংশ ও দ্রাঘিমাংশের মান, যা পৃথিবীর কোনও একটি নির্দিষ্ট স্থানকে চিহ্নিত করে। Google World Geodetic System WGS84 স্ট্যান্ডার্ড ব্যবহার করে।
- ওয়ার্ল্ড কোঅর্ডিনেট, যা ম্যাপে কোনও পয়েন্টকে অনন্যভাবে রেফারেন্স করে।
- পিক্সেল কোঅর্ডিনেট, যা নির্দিষ্ট জুম লেভেলে ম্যাপের নির্দিষ্ট পিক্সেলকে রেফারেন্স হিসেবে ব্যবহার করে।
- টাইল স্থানাঙ্ক, যা নির্দিষ্ট জুম লেভেলে ম্যাপের নির্দিষ্ট টাইলকে রেফারেন্স করে।
বিশ্বের স্থানাঙ্ক
যখনই API-কে পৃথিবীর কোনও লোকেশনকে ম্যাপের কোনও লোকেশনে অনুবাদ করতে হয়, তখন এটি প্রথমে অক্ষাংশ ও দ্রাঘিমাংশের মানকে পৃথিবীর কোঅর্ডিনেটে অনুবাদ করে। এই অনুবাদ করার জন্য API Mercator প্রোজেকশন ব্যবহার করে।
পিক্সেল কোঅর্ডিনেট (নিচে দেখুন) হিসেব করার সুবিধার জন্য আমরা ধরে নিই যে জুম লেভেল ০-তে থাকা ম্যাপ হল বেস টাইল সাইজের একটি সিঙ্গল টাইল। তারপর আমরা জুম লেভেল ০-তে পিক্সেল স্থানাঙ্কের সাপেক্ষে ওয়ার্ল্ড স্থানাঙ্ক নির্ধারণ করি, প্রোজেকশন ব্যবহার করে অক্ষাংশ ও দ্রাঘিমাংশকে এই বেস টাইলে পিক্সেল পজিশনে পরিবর্তন করি। এই ওয়ার্ল্ড কোঅর্ডিনেট হল একটি ফ্লোটিং পয়েন্ট ভ্যালু যা ম্যাপ প্রোজেকশনের উৎস থেকে নির্দিষ্ট লোকেশন পর্যন্ত পরিমাপ করা হয়। মনে রাখবেন, এই ভ্যালু একটি ফ্লোটিং পয়েন্ট ভ্যালু হওয়ার কারণে, এটি ম্যাপে দেখানো ছবির বর্তমান রেজোলিউশনের থেকে অনেক বেশি নিখুঁত হতে পারে। অন্যভাবে বলতে গেলে, বর্তমান জুম লেভেলের উপর ওয়ার্ল্ড কোঅর্ডিনেট নির্ভর করে না।
Google Maps-এ বিশ্ব কোঅর্ডিনেট মারকেটর প্রজেকশনের উৎস (১৮০ ডিগ্রি দ্রাঘিমাংশ এবং প্রায় ৮৫ ডিগ্রি অক্ষাংশে ম্যাপের উত্তর-পশ্চিম কোণ) থেকে পরিমাপ করা হয় এবং পূর্ব (ডান) দিকে x-এর দিকে এবং দক্ষিণ (নিচে) দিকে y-এর দিকে বাড়ে। যেহেতু
বেসিক মারকেটর Google Maps টাইল ২৫৬ x ২৫৬ পিক্সেল, তাই ব্যবহারযোগ্য
বিশ্বের কোঅর্ডিনেট স্পেস হল {0-256}, {0-256}।
![]()
মনে রাখবেন, মারকেটর অভিক্ষেপের দ্রাঘিমাংশ বরাবর প্রস্থ সীমিত কিন্তু অক্ষাংশ বরাবর উচ্চতা অসীম। আমরা মার্কেটর প্রজেকশন ব্যবহার করে বেস ম্যাপের ছবি প্রায় +/- ৮৫ ডিগ্রিতে কাট-অফ করি যাতে ম্যাপের আকার বর্গাকার হয়, এর ফলে টাইল বেছে নেওয়ার লজিক আরও সহজ হয়। মনে রাখবেন যে কোনও প্রজেকশন বেস ম্যাপের ব্যবহারযোগ্য কোঅর্ডিনেট স্পেসের বাইরে ওয়ার্ল্ড কোঅর্ডিনেট তৈরি করতে পারে যদি আপনি মেরুর খুব কাছাকাছি প্লট করেন, উদাহরণস্বরূপ।
পিক্সেল স্থানাঙ্ক
পিক্সেল কোঅর্ডিনেট নির্দিষ্ট জুম লেভেলে ম্যাপে নির্দিষ্ট পিক্সেলকে রেফার করে, যেখানে ওয়ার্ল্ড কোঅর্ডিনেট প্রদত্ত প্রোজেকশনে সম্পূর্ণ লোকেশনকে প্রতিফলিত করে। নিম্নলিখিত ফর্মুলা ব্যবহার করে পিক্সেল কোঅর্ডিনেট গণনা করা হয়:
pixelCoordinate = worldCoordinate * 2zoomLevel
উপরের সমীকরণ থেকে লক্ষ্য করুন যে, প্রতিটি ক্রমবর্ধমান জুম লেভেল
x এবং y
উভয় দিকেই দ্বিগুণ বড়। তাই, প্রতিটি উচ্চতর জুম লেভেলের ফলে আগের লেভেলের চেয়ে চার গুণ বেশি রেজোলিউশন হয়। যেমন, জুম লেভেল ১-এ,
ম্যাপে ৪টি ২৫৬x২৫৬ পিক্সেল টাইল থাকে, যার ফলে পিক্সেল স্পেস
৫১২x৫১২ হয়। জুম লেভেল ১৯-এ, ম্যাপে প্রতিটি x এবং y পিক্সেল
০ এবং ২৫৬ * ২১৯-এর মধ্যে কোনও ভ্যালু ব্যবহার করে
রেফারেন্স করা যেতে পারে।
যেহেতু আমরা ম্যাপের টাইল সাইজের উপর ভিত্তি করে ওয়ার্ল্ড কোঅর্ডিনেট তৈরি করেছি, তাই পিক্সেল কোঅর্ডিনেটের পূর্ণসংখ্যা অংশটি বর্তমান জুম লেভেলে সেই লোকেশনে সঠিক পিক্সেল শনাক্ত করার প্রভাব ফেলে। মনে রাখবেন, জুম লেভেল ০-এর জন্য, পিক্সেল কোঅর্ডিনেট ওয়ার্ল্ড কোঅর্ডিনেটের সমান হয়।
এই কোঅর্ডিনেট সিস্টেম ম্যাপের প্রতিটি লোকেশন, প্রতিটি জুম লেভেলে সঠিকভাবে
চিহ্নিত করে। iOS-এর জন্য Maps SDK জুম লেভেল,
LatLng হিসেবে ম্যাপের কেন্দ্র এবং কন্টেনিং DOM এলিমেন্টের সাইজ অনুযায়ী ভিউপোর্ট তৈরি করে,
এবং এই বাউন্ডিং বক্সকে পিক্সেল কোঅর্ডিনেটে ট্রান্সলেট করে। API তখন লজিক্যালি
প্রদত্ত পিক্সেল সীমার মধ্যে থাকা সমস্ত ম্যাপ টাইল নির্ধারণ করে। আপনি টাইল স্থানাঙ্ক ব্যবহার করে
এইসব ম্যাপ টাইলের প্রতিটি রেফারেন্স দেন, যা
ম্যাপের ছবি দেখানোর কাজকে অনেক সহজ করে দেয়।
টাইল স্থানাঙ্ক
আরও বেশি জুম লেভেলের জন্য API একবারে সব ম্যাপের ছবি লোড করতে পারে না। পরিবর্তে, এটি প্রতিটি জুম লেভেলে ছবিকে ম্যাপ টাইলসের সেটে ভেঙে দেয়, যা এমন একটি ক্রমে সাজানো থাকে যা আপনার অ্যাপ্লিকেশন ব্যবহার করতে পারে। কোনও ম্যাপ নতুন লোকেশনে বা নতুন জুম লেভেলে স্ক্রল করলে, API পিক্সেল কোঅর্ডিনেট ব্যবহার করে নির্ধারণ করে যে কোন টাইল প্রয়োজন এবং তারপরে সেইসব ভ্যালু এক সেট টাইল হিসেবে অনুবাদ করে যাতে সেগুলি ফিরিয়ে আনা যায়। এটি একটি স্কিম ব্যবহার করে এই টাইল স্থানাঙ্কগুলি অ্যাসাইন করে যা যেকোনও প্রদত্ত পয়েন্টের জন্য কোন টাইলে ছবি রয়েছে তা নির্ধারণ করা সহজ করে তোলে।
Google Maps-এ টাইলগুলি পিক্সেলের মতো একই উৎস থেকে
নম্বর করা হয়। Google-এর Mercator প্রোজেকশন প্রয়োগের জন্য, ম্যাপের উত্তর-পশ্চিম কোণে সবসময়
অরিজিন টাইল থাকে, যেখানে x-এর মান পশ্চিম থেকে
পূর্বে এবং y-এর মান উত্তর থেকে দক্ষিণে বাড়ে। টাইলস
সেই উৎস থেকে x,y স্থানাঙ্ক ব্যবহার করে ইন্ডেক্স করা হয়। যেমন, জুম লেভেল ২-এ, যখন পৃথিবীকে ১৬টি টাইলসে ভাগ করা হয়,
প্রতিটি টাইলসকে একটি অনন্য x,y পেয়ার দ্বারা রেফারেন্স করা যেতে পারে:

মনে রাখবেন, পিক্সেল স্থানাঙ্ককে টাইল সাইজ (২৫৬) দিয়ে ভাগ করে এবং ফলাফলের পূর্ণসংখ্যা অংশটি নিয়ে, আপনি বর্তমান জুম লেভেলে টাইল স্থানাঙ্ককে বাই-প্রোডাক্ট হিসেবে তৈরি করেন।
উদাহরণ
নিচের উদাহরণে শিকাগো, IL-এর স্থানাঙ্ক দেখানো হয়েছে: অক্ষাংশ/দ্রাঘিমাংশের মান, বিশ্ব স্থানাঙ্ক, পিক্সেল স্থানাঙ্ক এবং টাইল স্থানাঙ্ক। বিভিন্ন জুম লেভেলে কোঅর্ডিনেট ভ্যালু দেখতে জুম কন্ট্রোল ব্যবহার করুন।
কোঅর্ডিনেট কীভাবে হিসেব করা হয়েছে তা দেখতে, কোড দেখুন।