اگر از نقشه OSM توی سرویسهای خودتون استفاده کردید یا میکنید، حتما میدونید که قبلا عنوان «خلیج فارس» رو نمایش میداد ولی الان عنوان اشتباهیرو داره برای این پهنه آبی نشون میده. قصه این ماجرارو میتونید توی این لینک پیدا کنید، ولی من اینجا میخوام از یه راه حل ساده برای حل این مشکل براتون بگم.
از وقتی که این سرویس عنوان دیگهای رو نشون میده، هر کسی که توی سرویس خودش از نقشه open street map استفاده میکرد یا میکنه به این مشکل خورده و البته دردسرش برای ما دوصد چندان بود! چون ما سایت گردشگری تیشینه رو داریم و از ایران و جاذبه هاش میگیم. حالا فکر کن اون اسم اشتباهی وسط این همه عشق به ایران و ملی گرایی چه جلب توجهی میکرد! روزی نمیشد که کاربرامون بهمون زنگ نزنن و با لحن طلبکارانه بهمون نگن وطن فروش.
دیگه کار به جایی رسید که یه روز که داشتم ماستمو میخوردم از یه نهاد امنیتی تماس گرفتن و گفتن که مردم شاکی هستن و باید این نقشه رو درست کنید.
خب برای حل این مشکل چندتا راهکار وجود داشت :
_ از نقشه های غیررایگان خارجی مثل گوگل استفاده کنم. (هزینه دلاری، مشکلات تحریم و پرداخت و هزار یک داستان دیگه)
_ از نقشه های غیررایگان داخلی استفاده کنم. (اگر هنوز این مقاله رو نخوندید بشدت باز توصیه میکنم که بخونید، اونوقت متوجه میشید چرا این راه حل رو اصلا دوست نداشتم!)
_ درست کردن همین نقشه (کم هزینه ترین راه ممکن بعلاوه اینکه با انتخاب این گزینه، زحمات بعضی افراد در گرو حذف OSM از ایران تا حدی از بین میرفت)
برای پیاده سازی، داستان اونقدر که فکر میکردم پیچیده نبود، کافی بود یه عکس کوچیک از عنوان خلیج فارس درست کنم و از متد Overlay استفاده کنم تا بتونم عکس روی عکس بذارم، من چون از leaflet استفاده کرده بودم با این چند خط مشکلم کاملا حل شد، شما از هر لایبراری استفاده میکنید، مطمئنا تابعی برای overlay کردن عکس داره
imageUrl = '[url Address]', imageBounds = [[26.6971, 50.4939], [27.6848, 51.8521]]; L.imageOverlay(imageUrl, imageBounds).addTo(mymap);
با همین یه تابع میتونید از همون نقشه OpenStreetMap استفاده کنید و برای نقشه ای که میتونه رایگان باشه هزینه پرداخت نکنید.
البته که برای حل این مشکل هزاران راه وجود داره و این تنها یکی از راههای موجود هست.
میتونید نتیجه کار رو اینجا ببینید