ماژول geolocation فیلد گوگل مپ برای دروپال

ماژول geolocation فیلد گوگل مپ برای دروپال

موقعیت و نقشه در صفحات وب

این روز ها محل (location) هر چیزی در وب و دنیای دیجیتال اهمیت پیدا کرده است. از یک طرف سرویس هایی نظیر گوگل، خدماتی مانند نقشه را ارائه می کنند. مثلا می توانید از گوگل مپ برای نمایش موقعیت فرد و یا مکان خاصی استفاده کنید. از طرف دیگر ابزار های موبایل مانند تلفن های هوشمند و تبلت ها که به سیستم های موقعیت سنج مجهز هستند، ظهور کرده اند و موقعیت افراد و رابطه آنها با اماکن مختلف بسیار مهم شده است.

ممکن است بخواهید در یک سایت، اطلاعات جغرافیایی مکان خاصی را مثل یک فروشگاه، رستوران، دفتر کاری و یا منزل شخصی یک نفر را ذخیره کرده و بر اساس آن عملیات هایی را انجام بدهید. برای نمونه بخواهید موقعیت فرد را روی نقشه گوگل (Google map) نمایش بدهید. در این مطلب، به معرفی یک ماژول دروپال برای ذخیره اطلاعات جغرافیایی و نمایش موقعیت روی نقشه گوگل می پردازم.

موقعیت و نقشه در صفحات وب دروپال

معرفی ماژول Geolocation برای دروپال

ماژول Geolocation برای ذخیره اطلاعات جغرافیایی به کار می رود. این ماژول به دروپال 7 یک نوع فیلد جدید می افزاید. این فیلد دو مقدار طول و عرض جغرافیایی (Longitude و Latitude) را ذخیره می کند. این بسته ماژول، خود حاوی سه ماژول است:

  1.  یکی خود ماژول Geolocation است که فیلد جدید طول و عرض جغرافیایی را اضافه می کند.
  2.  ماژول دیگر Geolocation Google Maps است که یک ویجت گوگل مپ برای این فیلد ایجاد می کند. همین طور formatter های جدیدی نیز برای این فیلد اضافه می کند.
  3.  ماژول سوم، ماژول Geolocation HTML5 است که ویجت و فرمتر جدیدی بر اساس HTML5 geolocation API ارائه می کند.

نصب این ماژول ها، شبیه نصب هر ماژول دیگری در دروپال است.

  1.  فایل فشرده ماژول Geolocation Field را از سایت دروپال دانلود کنید.
  2.  آن را در فولدر ماژول های دروپال (sites/all/modules) از حالت فشرده خارج کنید.
  3.  به صفحه مدیریت ماژول ها در سایت دروپالی خود بروید.
  4.  در گروه Geolocation سه ماژول جدید را مشاهده می کنید، فعلا هر سه ماژول را فعال کنید.

معرفی ماژول Geolocation برای دروپال

افزودن فیلد جدید از نوع Geolocation به دروپال

برای استفاده از ماژول Geolocation باید به نوع محتوا، کاربر، دسته و یا هر موجودیت دلخواه دیگر در سایت که فیلدپذیر است، یک فیلد جدید از نوع Geolocation اضافه کنید. برای نمونه به شکل زیر توجه کنید:

افزودن فیلد جدید از نوع Geolocation به دروپال

مثلا اگر بخواهید از کاربر سایت خود موقعیت مکانی اش را بپرسید، کافی است در فیلد های کاربر در Account settings، فیلد جدید از نوع Geolocation را اضافه کنید.

ویجت های مختلف فیلد Geolocation

همانطور که در معرفی این ماژول نیز گفته شد، ماژول های دیگری هم در این بسته ارائه می شوند که هر یک ویجت های خاصی را به این فیلد اضافه می کنند.

ویجت های مختلف فیلد Geolocation

ویجت متنی طول و عرض جغرافیایی

اگر فقط ماژول Geolocation نصب شده باشد، فقط ویجت Longitude/Latitude که ویجت اصلی و پایه این ماژول است، وجود دارد. این ویجت حاوی دو فیلد متنی است که مقادیر طول و عرض جغرافیایی را به صورت دستی از کاربر می گیرند. مانند شکل زیر:

ویجت متنی طول و عرض جغرافیایی در دروپال

ویجت گوگل مپ

با نصب ماژول Geolocation Google Map، یک ویجت گوگل مپ برای این فیلد ایجاد می شود. در صورتی که این ویجت را انتخاب کنید، برای گرفتن اطلاعات این فیلد یک نقشه گوگل در سایت نمایش داده می شود و کاربر می تواند به آسانی از روی نقشه گوگل محل مورد نظر خود را انتخاب کند. حتی می تواند در تکست باکسی که در کنار این نقشه تعبیه شده است، بر اساس نام آن محل نیز جستجو کند (Get location) و همین طور با استفاده از دکمه My location اطلاعات موقعیت را از برنامه مرورگر بخواند. مقادیر طول و عرض جغرافیایی آن نقطه نیز در پایین نقشه مشاهده می شود. برای نمونه به شکل زیر توجه کنید:

ویجت گوگل مپ در دروپال

ویجت HTML5

ویجت دیگر HTML5 است. این ویجت همانطور که گفته شد، اطلاعات موقعیت را از مرورگر می گیرد و ممکن است مرورگر برای آن از کاربر اجازه بگیرد. این ویجت محل را به صورت یک نقطه روی یک نقشه جهان ساده نشان می دهد.

ویجت HTML5

تنظیم نحوه نمایش فیلد Geolocation در دروپال

ویجت های یک فیلد برای گرفتن اطلاعات از ورودی هستند. برای نمایش فیلد نیز از formatter استفاده می شود. برای فیلد Geolocation، فرمتر های مختلفی وجود دارد که البته به ماژول هایی که گفته شد کنید، نیز بستگی دارد. طبیعتا در نمایش فیلد ها (Manage display) باید این تنظیمات را انجام بدهید.

تنظیم نحوه نمایش فیلد Geolocation در دروپال

فرمتر اول، به صورت ساده و متنی (Simple text-based formatter) است که فقط طول و عرض جغرافیایی را نمایش می دهد به این صورت:

Geo field:
Geolocation is 35.696216, 51.422945

فرمتر دوم فقط عرض جغرافیایی (Latitude text-based formatter) را نمایش می دهد:

Geo field:
35.696216

فرمتر سوم فقط طول جغرافیایی (Longtitude text-based formatter) را نمایش می دهد:

Geo field:
51.422945

فرمتر چهارم، نقشه گوگل استاتیک (Static Google Map) است. در واقع با انتخاب این گزینه، به جای نقشه گوگل دینامیک که در آن امکان جابجا کردن نقشه و انتخاب محل وجود دارد، فقط یک تصویر نمایش داده می شود که موقعیت مورد نظر در مرکز آن تصویر قرار دارد:

نقشه گوگل استاتیک در دروپال

در هنگام انتخاب این فرمتر، در مقابل آن مشاهده می کنید، که تنظیمات دیگری نیز وجود دارد که می توانید آنها را مطابق نیاز خود، تغییر بدهید.

تنظیمات نقشه گوگل استاتیک در دروپال

بعضی از این تنظیمات عبارتند از:

  1.  طول و عرض تصویری که از نقشه نمایش داده می شود (مثلا 300 پیکسل در 300 پیکسل)
  2.  جنس فایل تصویری (مثلا PNG یا JPG)
  3.  نوع نقشه (مثلا نقشه راهها یا ماهواره ای)
  4.  درجه بزرگنمایی نقشه

تنظیمات کامل فیلد نقشه گوگل استاتیک در دروپال

فرمتر پنجم، نقشه گوگل داینامیک (Dynamic Google Map) است. در این نقشه امکان جابجا کردن وجود دارد و موقعیت مورد نظر در مرکز آن دیده می شود. این فرمتر نیز تنظیمات خاص خود را دارد. نمونه از نمایش آن را به صورت زیر می بینید:

فرمتر نقشه گوگل داینامیک در دروپال

فرمتر آخر، تصویر نقشه HTML5 (HTML5 Map Image) است. یک نقشه جهان ساده دیده می شود که موقعیت انتخاب شده، در آن به صورت نقطه نمایش داده می شود. نمونه آن را در ویجت HTML5 مشاهده کردید.

نظرات

بسیار عالی بود. ممنون.
لطفا جایی که ماژول‌های «Geolocation Google Maps» و «Geolocation HTML5» رو معرفی کردید، بهشون لینک هم بدهید.

تصویر admin
پیام جان، متوجه منظورت نشدم. لینک دریافت ماژول را در مطلب گذاشتم. همه این سه ماژول در همین یک بسته ماژول هستند. که لینکش در قسمت لینک های ضمیمه مطلب هم قرار گرفته. درست متوجه منظورت شدم؟

دست شما درد نکنه با ماژول های مفیدی که معرفی می کنید.

با عرض سلام و خسته نباشید،
ممنون از مطالب مفید و کاربردیتان ، لطفا اگه ممکنه بازهم به معرفی ماژول های کاربردی ادامه بدین.
همیشه شاد باشید

تصویر admin
جواود خان، از ابراز لطف شما سپاسگزاری می کنم. حتماً معرفی ماژول ها را ادامه می دهم. انشاءالله فرصت کافی برای به روز رسانی سایت موجود باشد.

سلام
به چه صورت میشه خودمون یه ماژول بنویسیم که مپ گوگل رو توی یه بلوک خاص که خودمون تعریف کردیم نشون بده ؟
من تقریبا یه چیزایی نوشتم ولی مپ رو نشون نمی شده

تصویر admin
نیلوفر خانم، اگر توضیح ببیشتر بدهید می توانم بهتر کمک کنم. مثلا آیا فقط می خواهید نقشه را به صورتی که یک نقطه در آن مشخص شده است، در یک بلوک نمایش بدهید؟ یا اینکه روش دیگری مد نظر شما است. اگر فقط این باشد، راه های مختلفی می توان پیشنهاد داد. یکی اینکه مثلا یک نوع محتوا با فیلد نقشه که در این مقاله توضیح داده شد، داشته باشید. محتوایی از این نوع درست کنید و محل مورد نظر خود را روی نقشه مشخص کنید. با استفاده از ماژول views یک بلوک بسازید که فیلد نقشه این نوع محتوا را نمایش دهد و فیلتر را طوری تنظیم کنید که فقط همین یک محتوای مشخص را نمایش بدهد. ساده ترین حالتی که به نظرم می رسد به این صورت است، می توان البته راههای دیگری برای این کار نیز خلق کرد.

سلام ممنون از پاسختون
من کلا خودم یه ماژول نوشتم که یه بلوک بسازه و اینکه نمی خوام از خود دروپال برای ساختن فیلد استفاده کنم
تقریبا یه چیزی شبیه لینک زیر میخوام :
http://www.dibe.gr/blog/drupal-7-google-maps-quickly-create-map-block-5-min
کدای جاوا اسکریپتم هم لود میشه ولی مپ رو نشونم نمیده :(

I can just say perfect

تصویر admin
لطف داری پژمان جان. ممنون از توجهت.

باسلام،من سایت معرفی مشاغل دارم و نیاز دارم که در هر صفحه ی اختصاصی مشاغل مختلف،نقشه ی گوگل و محل دقیقشونو مشخص کنم (مثل نتبرگ که برای هر تخفیفی نقشه ی گوگل مجزا دارد)
آیا ماژولی وجود داره؟شدیدا نیاز دارم
باتشکر

تصویر admin
مجید خان، مشخصا با همین ماژول که در این صفحه معرفی شده، می توانید این کار را انجام بدهید.

ممنون وحید جان

سلام. وقت بخیر.
چطوری میشه از گوگل مپ ، نقشه ی کامل یه شهرستان رو با کیفیت بالا (برای چاپ روی کاغد) دانلود کنم؟
ممنون میشم راهنماییم کنید

ارسال نظر