PDA

View Full Version : گفتگو: gps در vb



vahid_d_0101
جمعه 10 اردیبهشت 1389, 14:48 عصر
با سلام بچه ها من چند تا سوال در مورد gps دارم شاید کسی تا حالا کار کرده باشه
خوب از سول اول شروع میکنیم بعد از این که نتیجه گرفتیم میریم سراغ سوال بعدی
بعد از اتصال gps به کامپیوتر و وقتی با پورت سریال اطلاعات را می گیرم یه خط به من میده که در اون مختصات جغرافیایی و چند چیز دیگه گفته شده میخوام داخل ویبی همه این ها را جدا کنم و چند تبدیل هم باید صورت بگیره هر کی بلده روش تبدیل را هم بگه

$GPRMC,100534.999,V,3154.0455,N,05418.6971,E,000.0 ,000.0,300410,,,N*7C

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*<13><CR><LF>
Example:
http://www.barnamenevis.org/forum/attachment.php?attachmentid=48174&stc=1&d=1272627596
توی کد بالا از بعد از حرف V تا حرف E مختصات را فرستاده ولی اگر خواسته باشیم این مختصات را داخل گوگل مپ نشان دهیم باید به این شکل در بیان 31.900749,54.311608 یعنی این عدد از اعداد همون کد گرفته شده ولی نمی دونم چه جوری تبدیل شدن اگه کسی تبدیلش را بلده بگه
یه سوال دیگه چه جوری میتوانیم مثلا اگر جمله در یک textbox نوشته شده بود و در اول ان کلمه $GPRMC بود را کل جمله را به یک text box دیگه ببریم
مثلا فکر کنیم تمام این جمله ها در یک تکست باکس نوشته شده میخواهیم اونهایی که اول کلمه شون GPRMC, هست را داخل یه تکست باکس دیگه نشون بدیم

$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPGSV,3,1,11,20,81,183,,23,56,337,,32,54,137,,16, 41,083,*73
$GPGSV,3,2,11,13,38,307,,07,25,235,,04,15,303,,11, 10,202,*70
$GPGSV,3,3,11,01,09,039,,31,06,046,,03,00,136,*4A
$GPRMC,100534.999,V,3154.0455,N,05418.6971,E,000.0 ,000.0,300410,,,N*7C
$GPVTG,000.0,T,,M,000.0,N,000.0,K,N*02
$GPGGA,100535.999,3154.0455,N,05418.6971,E,0,00,0. 0,1218.6,M,0.0,M,,0000*5C
$GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30
$GPRMC,100535.999,V,3154.0455,N,05418.6971,E,000.0 ,000.0,300410,,,N*7D
$GPVTG,000.0,T,,M,000.0,N,000.0,K,N*02

vahid_d_0101
جمعه 10 اردیبهشت 1389, 16:18 عصر
بچه ها این برنامه اون تبدیل را انجام میده ولی من نفهمیدم چه جوری اون کار را میکنه قسمت کانکت شدن به gps را بی خیالش بشین از قسمت بعد شروع کنید

xxxxx_xxxxx
جمعه 10 اردیبهشت 1389, 17:07 عصر
سلام،
برنامه ای که گذاشتید کامنت داره و تو کامنت هاش قشنگ توضیح داده که چه اتفاقی میوفته.
نحوه تبدیل همون خطی که خودتون گذاشتید:


$GPRMC,100534.999,V,3154.0455,N,05418.6971,E,000.0 ,000.0,300410,,,N*7C

علامت جداکننده خطوط رو علامت $ درنظر گرفته. و خطوط داده رو خطوطی درنظر گرفته که با GPRMC شروع میشن. وقتی چنین خطی پیدا شد، قسمت های رنگی رو از توش جدا می کنه. که به ترتیب همون (infoSP(3 و (infoSP(5 تو برنامه هستند.
حالا تو سه خط آخر برنامه میاد عمل تبدیل رو انجام میده:


lblN.Caption = Left(infoSP(3), tmpSep - 3) & Mid((Mid(infoSP(3), tmpSep - 2) / 60), 2, 5)
tmpSep = InStr(1, infoSP(5), ".")
lblW.Caption = Left(infoSP(5), tmpSep - 3) & Mid((Mid(infoSP(5), tmpSep - 2) / 60), 2, 5)

به این طریق که قسمت سمت چپ عدد 3154.0455 یعنی (3154) رو جدا میکنه. و بعد از این عدد دو رقم سمت راست رو حذف میکنه تا عدد 31 باقی بمونه. مابقی عدد رو تقسیم بر 60 میکنه (یعنی 54.0455 تقسیم بر 60 میشه)، حالا قسمت اعشار عدد حاصل رو با عدد 31 جمع میکنه تا بشه 31.90075

برای عدد آبی رنگ هم به همین صورت، یعنی 054 رو از عدد جدا میکنه و بقیشو تقسیم بر 60 میکنه (18.6971/60) که حاصل میشه 0.31161 حالا قسمت اعشار با عدد 054 جمع میشه که میشه 54.31161

موفق باشید/

ehsanocx
جمعه 10 اردیبهشت 1389, 18:36 عصر
دوست من نقشه شهر گرگان رو دارم. این عکس رو من به چه برنامه ای بدم که روی هر نقطه از این عکس کلیک کردم مختصات یعنی E و N اون نقطه رو به من بده ؟
شما سورس چنین برنامه ای دارین یا می تونین کمکم کنید؟
من برنامه GPSTools SDK رو دارم اما ازم لایسنس می خواد تا کار کنه اما من ندارم شما لیسنسشو دارین؟

vahid_d_0101
جمعه 10 اردیبهشت 1389, 18:43 عصر
قسمت دوم سوالم داخل اون کد بود ولی من خاصیت مولتی لاین Textbox فعاله و تمام جملات را داخل یک خط قرار نمیده و اونها را با یه اینتر به خط بعد میفرسته می شه یه کمکی بکنید
سوال بعدی هم اینه که ایا کسی سورسی داره که مختصات نقطه را بدیم بعد این گوگل مپ به اون نقطه برود نمیخوام به اینترنت وصل بشه و دونبال نقطه بگرده اگه بشه عکس نقشه را خودمون قرار بدیم خیلی خوب میشه

vahid_d_0101
جمعه 10 اردیبهشت 1389, 18:50 عصر
دوست من نقشه شهر گرگان رو دارم. این عکس رو من به چه برنامه ای بدم که روی هر نقطه از این عکس کلیک کردم مختصات یعنی E و N اون نقطه رو به من بده ؟
شما سورس چنین برنامه ای دارین یا می تونین کمکم کنید؟
من برنامه GPSTools SDK رو دارم اما ازم لایسنس می خواد تا کار کنه اما من ندارم شما لیسنسشو دارین؟

من برنامه GPS TrackMaker pro را پیشنهاد میکنم خیلی عالی کار میکنه
در ضمن خود Google Earth این کارو میکنه