نقشه‌ها چطور ساخته می‌شن

خیلی‌ها از من درباره نقشه نشان پرسیدن که چطور ساخته. میخام طی چند مطلب درباره نحوه ساخت و کارکردش براتون بنویسم، تو این متن سعی به صورت خلاصه و تیتروار کمی داستان رو براتون باز کنم، در ادامه همراهم باشید.

قبل از فراگیر شدن کامپیوترها و دیوایس های الکترونیکی نقشه‌ها روی کاغذ چاپ می‌شدن. این نقشه‌ها از نظر جزئیات و میزان اطلاعات آن‌ها محدودیت داشتند. با آمدن کامپیوترها نقشه‌های جدیدی پیدا شدن که امکان نمایش اطلاعات بیشتری رو دارن، چون محدودیت کاغذ در آنها وجود نداره. این نقشه‌ها قابلیت زوم و نمایش اطلاعات متعددی رو دارن و میشه جزئیات آنها رو ویرایش کرد یا به دلخواه عوض‌شون کرد.

برای نمایش عوارض ابتدا آن‌ها را به چیزهای ساده‌ای مثل نقطه، خط یا یک محیط بسته (polygon) تبدیل می‌کنیم تا تصویر کردن آن‌ها روی یک صفحه راحت‌تر باشه. مثلا یک درخت رو میشه نقطه در نظر گرفت یا خیابان رو یک خط حساب کرد. حال این اطلاعات (Geospatial Data) که نشان دهنده موقعیت یا محدوده مکان خاصی هستند را می‌تونیم به سادگی به صورت دیجیتال ذخیره کنیم. از ارتباط این اطلاعات مکانی و سایر اطلاعاتی که از آن مکان داریم (مثل اسم، تلفن و سایر دیتاهای اون مکان) نقشه های GIS ساخته می‌شن.

اطلاعات مکانی بدون رنگ و لعاب مثل html بدون css می‌مونن!

یعنی این خط و نقطه‌ها باید رنگ و شکل خاصی داشته باشن تا هم بشه عوارض رو از هم تشخیص داد و هم نقشه زیبا و قابل فهم باشه. این رنگ و لعاب می‌تونه شامل رنگ بندی خطوط و نواحی و لیبل گذاری عوارض دلخواه باشه. خروجی چنین فرایندی رو می‌شه به صورت یک عکس دید.

همانطور که در این عکس می‌بینید جزئیاتی مثل کوچه‌ها و... دیده نمی‌شن. طبیعیه که نمایش تمام این جزئیات در عکسی با این ابعاد امکان پذیر نیست. برای همین باید عکس بزرگتری داشته باشیم تا بتونیم همه این جزئیات رو نشون بدیم. ساختن چنین عکسی زمان زیادی می‌بره و خروجی کار بسیار حجیم و سنگین خواهد شد. ممکنه نتیجه کار یک عکس با چند گیگ حجم بشه! به نظرتون سیستم یه کاربر عادی می‌تونه همچین عکسی رو باز کنه؟ تازه اگر این موضوع روی بستر وب انجام بشه مساله پیچیده‌تر خواهد بود. چون محدودیت‌های سرعت و پهنای باند اجازه باز شدن عکس‌های بزرگ و حجیم را به شما نخواهد داد.

برای نمایش چنین عکس‌های بزرگی اون‌ها رو به عکسهای کوچکی می‌شکونیم و این تکه‌ها را به صورت موزاییک (tile) کنار هم قرار می‌دیم. بنابراین بسته به محدوده‌ای که مشغول مشاهده آن هستید تکه عکس‌های (تایل‌های) همان محدوده به شما نمایش داده خواهد شد. با این روش شما پهنای باند کمتری مصرف می‌کنید و نقشه سریعتر و روان‌تر باز خواهد شد. هر چه عکس بزرگتر بشه تعداد تایل‌های اون هم بیشتر می‌شه. یعنی اگر از بالا به نقشه نگاه کنید ممکنه کل اون رو در یک تایل ببینید ولی با زوم کردن در نقشه و اضافه شدن جزئیات بیشتر عکس بزرگتر خواهد شد.


نرم‌افزارهای گرافیکی معمولا یا با عکس‌های رستر کار می‌کنند (مثل فتوشاپ) یا سیستم گرافیکی آن‌ها برداری (vector) است (مثل Corel Draw یا Adobe Illustrator). نقشه‌های وب و موبایل هم چون یک شکل گرافیکی هستند در این دو دسته جای می‌گیرند.

همانطور که گفتم برای ساختن نقشه میشه اون رو به صورت عکس ذخیره کرد. این عکس یک نقشه رستره که حجم زیادی می‌گیره و طبعا پهنای باند بیشتری مصرف می‌کنه. همچنین با بزرگنمایی در اون، به صورت پیکسلی و شطرنجی دیده می‌شه. بنابراین باید با هر بزرگنمایی عکس جدیدی ساخته بشه که این باعث میشه حجم این عکس‌ها به صورت نمایی زیاد بشه! برای همین نقشه‌های وکتوری امروزه بسیار فراگیر شدن و نقشه‌های رستر رو به انقراض می‌رن.

در نقشه‌های وکتور دیتاهای GIS به صورت یه سری اعداد و ارقام و کد برای کاربر ارسال می‌شن. کاربر به کمک engine نمایش نقشه‌ای که در اختیار داره دیتا را دریافت کرده و اون رو رندر میکنه (عملیات رنگ و لعاب نقشه روی سیستم کلاینت انجام می‌شه)

اولین ویژگی مهمی که این نقشه‌ها دارن اینه که مثل نقشه‌های رستری با بزرگنمایی پیکسل پیکسل نمی‌شن. حجم این نقشه‌ها بسیار کمتر از نقشه‌های رستری هست.

نقشه‌های رستری به صورت رندر شده برای کاربر ارسال می‌شن، بنابراین امکان تغییر رنگ و شکل ظاهری در آن‌ها وجود نداره و برای هر تغییر ظاهری باید عکس جدیدی ساخته بشه.

ولی نقشه‌های وکتور روی کلاینت رندر می‌شن و امکان تغییرات ظاهری آن‌ها روی کلاینت وجود داره.

چون حجم مطالب مربوط به نقشه‌های موبایل و وب بسیار گسترده است سعی کردم مطالب اولیه و کاربردی اون رو به صورت خلاصه در این مطلب عنوان کنم. سعی می‌کنم در مطالب بعدی درباره وکتور تایل بیشتر صحبت کنم. البته ناگفته نمونه که نظرات شما به تکمیل شدن این مطلب کمک می‌کنه.