مختصات زمین و گوگل مپ

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

برای سوال اول:

۱- مختصات مرکز نقشه رو به رادیان تبدیل می‌کنم.
[c]pi = 3.1415;
lat = lat * pi / 180;
lon = lat * pi / 180;[/c]

۲- با توجه به سیستم مختصاتی که گوگل استفاده می‌کنه (Mercator/WGS84) مختصات کروی رو به مختصات مسطح تبدیل می‌کنم. (+ و +)
[c]r = 6378137; //earth radious
x = r * lon;
y = r * log( tan( pi/4 + lat/2 ) );[/c]
البته می‌شد برای دقت بیشتر بیضی بودن زمین رو هم تو محاسبات دخالت داد که تو کار من این دقت لزومی نداشت.

۳- گوگل به صورت داخلی مختصات مسطح نقشه رو به صورت اعدادی بین صفر تا ۲۵۵ نگه می‌داره. برای تبدیل مختصات مسطح به مختصات گوگل از این فرمول‌ها استفاده می‌کنم:
[c]x = x / 40075016.69 * 256;
y = y / 40000000 * 256;[/c]
اون دو تا عدد ثابت از اینجا اومده که مقدار x کلا چقدر میتونه تغییر کنه؟ یعنی مقدار x برای عرض ۱۸۰ تا ۱۸۰- چقدر تغییرات داره. در باره تغییرات y هم گوگل میگه y حداقل و حداکثر تقریبا معادل ۸۵ درجه شمالی تا ۸۵ درجه جنوبیه. و البته چون میگه تقریبا، من بازه تقریبا مساویش رو اینجا اعمال کردم.

۴- مختصات پیکسل روی نفشه بر اساس داکیومنت‌های گوگل از این رابطه به دست میاد:
[c]x = x * 2 ^ zoom;
y = y * 2 ^ zoom;[/c]

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

و سوال دوم؟ کافیه همین مراحل رو وارونه انجام بدیم.

مثلا تو این نقشه در میاد مارکر پایینی ۱۸۲ پیکسل پایینتر از مرکز نقشه است.

1 فکر می‌کنند “مختصات زمین و گوگل مپ

پاسخ دادن به cheap nfl jerseys لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *