মানচিত্রের টাইলস হল একটি সূচীকৃত গ্রিডে বিশ্বের বিভাজন। এটি আপনাকে একাধিক কার্টোগ্রাফিক স্কেলে দক্ষতার সাথে এবং গতিশীলভাবে মানচিত্রের ডেটা অ্যাক্সেস এবং ব্যবহার করতে দেয়। ম্যাপ টাইলস API আপনাকে একাধিক থিম্যাটিক জিওডেটাসেটে অ্যাক্সেস দেয়, যার মধ্যে Google-কিউরেটেড রয়েছে:
Google এর কার্টোগ্রাফিক স্টাইলিং সহ ভেক্টর টপোগ্রাফিক ডেটার উপর ভিত্তি করে রোডম্যাপ চিত্র টাইলস।
স্যাটেলাইট এবং বায়ুবাহিত উভয় ক্যামেরা দ্বারা ধারণ করা অর্থোফটোগ্রাফি যা পৃথিবীর টপ ডাউন (নাদির) চিত্র প্রদান করে।
হিলশেড কনট্যুর মানচিত্র।
2D মানচিত্র টাইলগুলি সমস্ত জিওরিফারেন্সযুক্ত এবং একে অপরের সাথে সারিবদ্ধ। এগুলি ভিউপোর্টের ভৌগলিক ব্যাপ্তি এবং জুম স্তরের উপর ভিত্তি করে নির্বাচন করা হয়েছে৷ জুমের মাত্রা শূন্য থেকে 22 (রাস্তা এবং ব্লকগুলি দেখতে) পর্যন্ত।
মানচিত্র থিম
আপনি নিম্নলিখিত মানচিত্র থিমগুলির জন্য মানচিত্রের টাইলস পেতে পারেন৷
মানচিত্র থিম | বর্ণনা |
---|---|
রোডম্যাপ | রাস্তা, ভবন, আগ্রহের জায়গা এবং রাজনৈতিক সীমানা |
স্যাটেলাইট | মহাকাশ থেকে তোলা ফটোগ্রাফিক চিত্র |
ভূখণ্ড | একটি কনট্যুর মানচিত্র যা উদ্ভিদের মতো প্রাকৃতিক বৈশিষ্ট্য দেখায় |
Map Tiles API থেকে ম্যাপ টাইলসের অনুরোধ করতে, আপনাকে প্রথমে একটি সেশন টোকেন অনুরোধ করতে হবে। সেশন টোকেন আপনার মানচিত্র এবং ভিউপোর্টের বর্তমান অবস্থা ট্র্যাক করে। আপনি যখন আপনার সেশন টোকেন সেট আপ করেন, তখন আপনাকে অবশ্যই মানচিত্র থিমের সাথে mapType
মান সেট করতে হবে যা আপনি চান। তারপর, ম্যাপ টাইলস API-এ আপনার প্রতিটি অনুরোধে আপনাকে অবশ্যই সেশন টোকেন অন্তর্ভুক্ত করতে হবে।
ভিউপোর্ট তথ্য অনুরোধ
ভিউপোর্ট বাক্সের আকার নির্ধারণ করে যা বিশ্ব দৃশ্যকে ফ্রেম করে। ভিউপোর্ট তথ্য অনুরোধ আপনার বর্তমান ভিউপোর্ট তৈরি করা মানচিত্র টাইল সম্পর্কে বিবরণ ফেরত. আপনি ভিউপোর্ট তথ্যের অনুরোধ করার কারণ হল যে আপনি জুম স্তরে চিত্রের অনুরোধ করা এড়ান যা বিদ্যমান নেই।
উদাহরণস্বরূপ, বেশিরভাগ শহরের চিত্রগুলি জুম স্তর 22-এ রয়েছে, তবে সমুদ্রের নয় কারণ এটি কেবল বৈশিষ্ট্যহীন নীল বর্গক্ষেত্রগুলি প্রদর্শন করবে৷
ভিউপোর্ট অনুরোধটি নিম্নলিখিত ফর্মে একটি HTTPS GET অনুরোধ।
curl "https://tile.googleapis.com/tile/v1/viewport?session=YOUR_SESSION_TOKEN &key=YOUR_API_KEY &zoom=zoom &north=north &south=south &east=east &west=west"
অনুরোধে নিম্নলিখিত ক্ষেত্রগুলি রয়েছে:
-
zoom
- ভিউপোর্টের জুম স্তর।
-
north
,south
,east
,west
- ভিউপোর্টের সবচেয়ে দূরবর্তী উত্তর, দক্ষিণ, পূর্ব এবং পশ্চিম বিন্দু, ডিগ্রীতে প্রকাশ করা হয়। উত্তর এবং দক্ষিণ অবশ্যই (-90,90) সীমার মধ্যে থাকতে হবে, পূর্ব এবং পশ্চিম পরিসরে (-180, 180) হতে হবে। অ্যান্টিমেরিডিয়ান অতিক্রম করার সীমা প্রকাশ করতে, পশ্চিম ধনাত্মক হতে পারে (উদাহরণস্বরূপ, 170) এবং পূর্ব হতে পারে ঋণাত্মক (উদাহরণস্বরূপ, -170)। সমস্ত পরামিতি প্রয়োজন.
ভিউপোর্ট তথ্য প্রতিক্রিয়া
ভিউপোর্ট প্রতিক্রিয়া আপনাকে বলে যে কোন এলাকায় চিত্রাবলী রয়েছে এবং কোন জুম স্তরে। একটি ভিউপোর্ট তথ্য প্রতিক্রিয়া নিম্নলিখিত ফর্ম আছে.
{
"copyright": "Map data ©2023",
"maxZoomRects": [
{
"maxZoom": 19,
"north": 90,
"south": -90,
"east": 180,
"west": -180
},
{
"maxZoom": 9,
"north": 90,
"south": -90,
"east": 180,
"west": -180
},
{
"maxZoom": 14,
"north": 84.375,
"south": -84.375,
"east": 180,
"west": -180
}, ...
]
}
প্রতিক্রিয়া বডিতে নিম্নলিখিত ক্ষেত্রগুলি রয়েছে।
-
copyright
- একটি অ্যাট্রিবিউশন স্ট্রিং রয়েছে যা আপনাকে অবশ্যই আপনার মানচিত্রে প্রদর্শন করতে হবে যখন আপনি রোডম্যাপ এবং স্যাটেলাইট টাইলস প্রদর্শন করবেন৷ আরও তথ্যের জন্য, মানচিত্র টাইলস API নীতিগুলি দেখুন।
-
maxZoomRect
- বর্তমান ভিউপোর্টের সাথে ওভারল্যাপ করা বাউন্ডিং আয়তক্ষেত্রগুলির একটি বিন্যাস রয়েছে৷ এছাড়াও প্রতিটি আয়তক্ষেত্রের মধ্যে উপলব্ধ সর্বোচ্চ জুম স্তর রয়েছে।
টাইল সমন্বয় ফাংশন
একটি নির্দিষ্ট জুম স্তরে অক্ষাংশ/দ্রাঘিমাংশ জোড়া থেকে টাইল স্থানাঙ্কে রূপান্তর করার জন্য সরঞ্জামগুলি (সরল ফাংশন) বেশিরভাগ প্রোগ্রামিং ভাষায় উপলব্ধ। নিম্নলিখিত জাভাস্ক্রিপ্ট কোড উদাহরণটি বিবেচনা করুন যা প্রথমে একটি latLng
থেকে একটি বিন্দুতে রূপান্তরিত হয় এবং তারপর একটি বিন্দু থেকে টাইল স্থানাঙ্কে রূপান্তরিত হয়৷
var TILE_SIZE = 256;
function fromLatLngToPoint(latLng) {
var mercator = -Math.log(Math.tan((0.25 + latLng.lat() / 360) * Math.PI));
return {
x: TILE_SIZE * (latLng.lng() / 360 + 0.5),
y: TILE_SIZE / 2 * (1 + mercator / Math.PI)
};
}
function fromLatLngToTileCoord(latLng, zoom) {
var point = fromLatLngToPoint(latLng);
var scale = Math.pow(2, zoom);
return {
x: Math.floor(point.x * scale / TILE_SIZE),
y: Math.floor(point.y * scale / TILE_SIZE),
z: zoom
};
}