PDA

View Full Version : نشان دادن مختصات روی نقشه رستر



Salah Sanjabian
جمعه 24 اردیبهشت 1389, 14:22 عصر
سلام دوستان.
میخوام مختصات یه جایی رو بااستفاده از گوشی دریافت کنم و رو یه نقشه نشون بدم.
البته به پیشنهاد یکی از دوستان که تو یه تاپیک به شکل زیر راهنمایی کرده بودن



برای نشان دادن نقاط مختصات , هم می توانی از امکانات گوگل استفاده کنی و هم از نرم افزاهای GIS موجود انتخاب وابسته هست به امکاناتی که داری برای استفاده از Google Map باید آن کامپوتر ثابت به اینترنت متصل باشی و برای استفاده از Arcview باید نقشه GIS Ready داشته باشی یعنی نقشه به فرمت وکتور که مختصات جغرافیایی آن قابل انطباق با نقاط مرجع باشد که همانطور که در فروم نوشتم این نوع نقشه ها گران است و فقط برای یک مکان کوچک مثل مثلا یک پالایشگاه خودت می توانی چند روزی وقت بزاری آماده کنی اما برای یک شهر باید بخری.
روش دیگر هم می توانی یک نقشه رستر یا همان عکس استفاده کنی و برنامه ای در ویژوال بیسیک یا هر چی بنویسی که در این برنامه یک نقطه مرجع باشد و نقشه تو بک گراند فرمت باشد و هر نقطه ای که از گوشی برایت می رسد نسبت به آن نقطه مرجع نشان بدهی.


باتوجه به صحبت های ایشون فکر کنم روش دوم بهتر باشد. منظورم اینه که ازنقشه رستر استفاده کنم. نظر دوستان چیه ؟ اگه میشه یه کم راهنمایی کنید

Salah Sanjabian
شنبه 25 اردیبهشت 1389, 21:22 عصر
دوستان، کسی دراین رابطه کار نکرده؟

sky_in_iran
یک شنبه 26 اردیبهشت 1389, 08:13 صبح
سلام دوست عزيز
استفاده از نقشه خوب خيلي بهتر و دقيق تر از عكس اما حالا اگه ميخواي از اين روش استفاده كني به نظر من بايد بري به سمت ماتريسها نقشه اي كه به برنامت معرفي ميشه (منظورم همون عكس) نقطه اي و مركز شروع قرار بدي و از اون نقطه يك ماتريس توليد كني اينجوري ما x و y كه از كاربر ميگيري ميتوني نقطه مورد نظرو نمايش بدي حالا يا روش زوم كني يا هر كاره ديگه اي كار با نقشه يا عكس مثل بازي و رياضي ميمونه نقاط دودويي (x,y) اميد وارم تونسته باشم كمكت كرده باشم

Salah Sanjabian
دوشنبه 27 اردیبهشت 1389, 01:14 صبح
این لینک روببینید.
http://www.ir-tci.org/forum/showthread.php?t=46829

من براساس آموزش های بیان شده در این لینک و بااستفاده Universal Map Dowlnder
یه نقشه درست کردم.البته هنوز کالیبرش نکردم و باهمون پسوند umd.

حالا یه تیکه کدنوشتم که این مختصات رو میگیره وبااستفاده ازگوگل مپ و اینترنت محل مختصات رو نشون میده.

چند تاسوال داشتم که اگه لطف کنید جواب بدین ممنون میشم.
چطور میتونم همین مختصات رو بدون گوگل مپ نشون بدم؟آ
همین فایل umd رو باتوجه به همون لینک بالا به map. تبدیل کنم؟

حرید نقشه و اسکن اون چه فرقی با همینی داره که خودمون درست می کنیم؟

حقیقتش اینه که کارایی که قبلا کرده بودم خیلی بااین یکی فرق داره اگه ممکنه راهنمایی بفرمایید.

sky_in_iran
دوشنبه 27 اردیبهشت 1389, 11:30 صبح
دوست عزيز من از Universal Map Dowlnder و Google Earth استفاده براي برنامه نكردم زماني به دنبال طراحي برنامه gis بودم متاسفانه وقت نكردم ادامه بدم زمانيم كه از دوستان و اساتيد كمك ميگرفتم همش من و پاس ميدادن به كامپونت هاي آماده كه هست يا برنامه هاي آماده مثل arcgis اما اعتقاد شخصي وروش كاري من اينه كه كارام توليد خودم باشه با تمام سختياش تا بتونم تغييرات خاصه خودم و بدم روش بعضي جاها بايد چرخ و از اول ساخت ، در مورد كاري كه شما ميخواي بكني شما برنامت و قوي و كامل درست كن ورودي برنامت و محدود نكن به يك عكس وروديت و باز بزار حالا اين ورودي از Google Earth يا از Universal Map Dowlnder باشه مهم كار كردن با اين ورودي هاست مثلا وروديت و از همين 3تا بزار عكس و Universal Map Dowlnder و گوگل خوب حالا ميخواي رو داده وروديت كار كني حالا اينجا بايد بري سروقت رياضيات به نظرم همونجور كه تو پست قبلي گفتم از ماتريس ها استفاده كن اين جوري كامل به تمامي نقشت به صورت نقطه اي دسترسي داري زياد اين كارو براي خودت سخت نگير براي امتحان روي يك تصوير معمولي و كوچيك اين و تست كن بعد ببر به نقشه هاي بزرگتر و واقعي تر . اميد وارم تونسته باشم كمكت كنم .
موفق باشي

Salah Sanjabian
سه شنبه 28 اردیبهشت 1389, 00:02 صبح
در مورد كاري كه شما ميخواي بكني شما برنامت و قوي و كامل درست كن ورودي برنامت و محدود نكن به يك عكس وروديت و باز بزار حالا اين ورودي از Google Earth يا از Universal Map Dowlnder باشه مهم كار كردن با اين ورودي هاست مثلا وروديت و از همين 3تا بزار عكس و Universal Map Dowlnder و گوگل خوب حالا ميخواي رو داده وروديت كار كني حالا اينجا بايد بري سروقت رياضيات به نظرم همونجور كه تو پست قبلي گفتم از ماتريس ها استفاده كن اين جوري كامل به تمامي نقشت به صورت نقطه اي دسترسي داري
موفق باشي

ممنون از توجه وپاسختون.

همونطورکه میدونید گوگل مپ ریاضیات نمیخواد ومن ایمن کارو باگوگل مپ انجام دادم.
حالا نمیخوام ازگوگل مپ استفاده کنم.
اگه نخوام از Universal Map Dowlnder استفاده کنم، این نقشه ها رو از کجا تهیه کنم؟
اصلا این نقشه ها براساس مختصات هست؟ یعنی براش تعیین شده که مثلا 31.25.2541 و 78.251352 مربوط به کجای نقشه هست؟

sky_in_iran
چهارشنبه 29 اردیبهشت 1389, 07:12 صبح
دوست عزيز تهيه نقشه راستشو بخواي اطلاعاتي ندارم كه از كجا مي توني تهيه كني اما نقشه هاي سازمان جغرافيايي ارتش نقشه هاي تكميليه از اونجا يه پيگيري بكن درباره مورد محاسبه كه گفتي ببين تو بايد يك شاخص داشته باشي و مهمترين چيز و كامل ترين چيز و دقيق ترين چيز مقياس نقشست كه با اون تو همه كارات و تنظيم مي كني از عرض و طول جغرافيايي تا نقاط رو نقشه ببين بايد يه بررسي فوق العاده دقيق رو اين موضوع مقياس داشته باشي به تعاريفي كه بلدي كه مثلان اندازه كوچك نمايي يك نقشه را مقياس مي گويند اين اطلاعات در باره مقياس قطره اي در برابر درياست اگر به دنبال برنامه اي با سلابت هستي حتما يك مطالعه كاملا دقيق رو اين موضوع داشته باش اميد وارم با اين دانش اندكم كمكي تونسته باشم بكنم و اگرم نتونستم به بزرگي خودتون ببخشيد
موفق باشي

Salah Sanjabian
پنج شنبه 30 اردیبهشت 1389, 00:03 صبح
دوست عزیز ممنون ازپاسخ وتوجهتون.من بایداین کارروانجام بدم. و اطلاعاتم رو حتمااینجامیزارم

Mehran.GH
پنج شنبه 30 اردیبهشت 1389, 23:44 عصر
syahpoush عزیز در پاسخ پیغامی که فرستاده بوده توجه ات را به موارد زیر جلب می کنم:

در مرحله اول کار نیازی نداری بر روی موضوع تهیه نقشه تمرکز کنی , کاری که باید انجام دهی نوشتن یک کد است که مختصات x, y از مثلا یک فایل ورودی بگیرد و به صورت نقاط پیوسته نشان دهد که چنین چیزی باید در نهایت داشته باشی

http://s1.postimage.org/TBEH9.jpg (http://www.postimage.org/image.php?v=gxTBEH9)

(کد جاوا این بخش را اگر نیاز داشتی می توانم برایت بفرستم)

توجه کن هیچ امکانات اضافه ای نمی خواهد داشته باشد فقط نمایش نقطه ها

در مرحله بعد یک نقشه از منطقه مورد نظرت را به صورت ترانسپرنت در پشت زمینه فرمت تعریف می کنی که می تواند چنین شکلی داشته باشد


http://s2.postimage.org/MLa2A.jpg (http://www.postimage.org/image.php?v=TsMLa2A)


بعد نیاز داری که مختصات جغرافیایی را بر روی نقشه تعریف کنی ابتدا باید

رشته ای که از GPS دریافت کردی که طول و عرض جغرافیایی را با دستوراتی که درباره کار کردن با String ها است استخراج می کنی.

مختصات NMEA را به دسیمال تبدیل می کنی طبق رابطه مثال زیر

latitude 0302.78469 03 + (02.78469/60) = 3.046412
longitude 10141.82531 101 + 41.82531/60) = 101.6971


بعد باید یک سیستم Scaling برای خودت تعریف کنی که مثلا نقطه جغرافیایی 3.046 و 101.68 با چه اعددی جمع و یا تفریق شود تا مثلا معادل نقطه 100 و 150 روی مانیتور شود.

اگر یادت باشد در کامنتهای قبلی توضیح دادم که نقطه مرجع نیاز داری که تعریف کنی انتخاب این نقطه مرجع بر این اساس باید باشد که مثلا مرکز یک عکس 640 در 480 پیکسل که بک گراند فرمت است (یا هر جای دیگر ) بر روی یک نقطه مرکزی بر روی نقشه واقعی که مختصاتش را از قبل می دانی منطبق شود این می شود مبنای Scaling کاری که می خواهی انجام دهی.(انتخاب متد Scaling در اینجا سلیقه ای است تا حدودی و ممکن است روشهای بهتری برای کاری که انجام میدهی خودت پیدا کنی)

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

برای بدست آوردن اطلاعات بیشتر راجع به موضوع تبدیل مختصات به این آدرس مراجعه کن
http://home.wtal.de/noegs/gps-lexikon.htm#d

این آدرس هم تعدادی نرم افزار و یا ابزارهای Open source معرفی کرد که می تواند مفید باشد
http://opensourcegis.org/open_source_gps.html

موفق باشید