کار با نقشه گوگل در سی شارپ :: V i R u s Ʒ²

V i R u s Ʒ²

هک و امنیت

V i R u s Ʒ²

هک و امنیت

Virus 32

💢 دوستانم بی دفاع و دشمنانم بی جواب نخواهند ماند 💢

-->
آخرین نظرات
  • ۶ ارديبهشت ۰۳، ۱۶:۱۵ - hidden
    test

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

روش اول 

روش اول، روش خیلی ساده و اسونیه و با چند خط کد اوکی میشه. ویژوال رو استارت کنین و یه پروژه جدید درست کنین و توش:

1 لیبل

1 باتن

1 تکس باکس

1 وب بروزر

بزارین.

یه چیزی توی مایه های فرم زیر درست کنین:

خب روی دکمه سرچ یه دبل کلیک کنین و کد های زیر رو توش بنویسین:

StringBuilder url = new StringBuilder();
            url.Append("https://www.google.com/maps/place/");
            if (textBox1.TextLength >= 0)
            {
                url.Append(textBox1.Text + ","+"+");
            }
            webBrowser1.Navigate(url.ToString());

و تمام!

به همین سادگی و خوشمزگی :)

شاید فهمیده باشین که توی این برنامه ما چه حرکتی زدیم، ولی یه بار هم خودم توضیح میدم:

برین توی سایت گوگل مپ و یه ادرسی رو سرچ کنین و به url صفحه توجه کنین:

https://www.google.com/maps/place/Mashhad,+Razavi+Khorasan+Province,+Iran/@31.9921385,44.6651266,5z/data=!3m1!4b1!4m5!3m4!1s0x3ef7ec2ec16b1df1:0x40b095d39e51face!8m2!3d32.427908!4d53.688046?hl=en

اینجا من رفتم توی سایت گوگل مپ و شهر مشهد رو سرچ کردم، قسمت اول  url که با رنگ قرمز هم مشخص شده یک ادرس ثابته، قسمت دوم هم که متن سرچ شده توسط کاربره که با رنگ ابی مشخص شده و بعدش هم یه کاما و یه + هست و قسمت سوم ادرس هم که یه سری اطلاعات دیگس که به درد کار ما نمی خوره.

خب توی این برنامه ما اومدیم و اون قسمت اول url گوگل رو دادیم به کلاس StringBuilder، این کلاس خیلی شبیه همون string خودمونه فقط کاربردی که داره اینه:

اگه به یه متغیر از جنس استرینگ مقدار x رو بدین و چند خط بعد به همون متغیر مقدار y رو بدین، وقتی که متغیر رو نمایش بدین می بینین که مقدار x دیگه توی متغیر نیست و پاک شده ولی توی StringBuilder میشه کاری کرد که مقدار متغیر بعد از چاپ هم x و هم y باشه.


توی این برنامه هم ما اومدیم و اون قسمت اول Url رو به عنوان مقدار اولیه ذخیره کردیم توی متغیر url و بعد متن سرچ شده توسط کاربر رو به قسمت اول url اضافه کردیم و در نهایت کل url رو توسط کنترل وب بروزر توی صفحه نشون دادیم.


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


روش دوم 

توی روش دوم  از کتابخونه gmap استفاده می کنیم، اول از همه رفرنس هاشو از    این جا استفاده کنین و اونا رو به برنامه تون اضافه کنین. 

بعدش کامپوننت گوگل مپ رو هم به تول باکس تون اضافه کنین، طبق عکس های زیر:


using های زیر رو هم به پروژه تون اضافه کنین:

using GMap.NET;
using GMap.NET.WindowsForms;
using GMap.NET.WindowsForms.Markers;
using GMap.NET.MapProviders;

بعدش کامپوننت گوگل مپ رو درگ کنین توی برنامه تون، و کد های زیر رو توی فرم لود بنویسین: 

gMapControl1.MapProvider = GMap.NET.MapProviders.GoogleMapProvider.Instance;
GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerAndCache;
gMapControl1.SetPositionByKeywords("IRAN");

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

GMapOverlay markers = new GMapOverlay("markers");
            GMapMarker marker = new GMarkerGoogle(new PointLatLng(35.6970118, 51.4899053), GMarkerGoogleType.lightblue);
            markers.Markers.Add(marker);
            gMapControl1.Overlays.Add(markers);
            marker.ToolTipText = "تهران";
            
            GMapOverlay markers1 = new GMapOverlay("mark");
            GMapMarker mark = new GMarkerGoogle(new PointLatLng(36.297817, 59.7195449), GMarkerGoogleType.lightblue);
            markers1.Markers.Add(mark);
            gMapControl1.Overlays.Add(markers1);
            mark.ToolTipText = "مشهد";

توی این کد های هم ما اومدیم و دو تا مارکر توی نقشه درست کردیم، اول از همه یه Overlay جدید درست کردیم و بعد مختصات جغرافیایی شهر های مشهد و تهران رو وارد کردیم و مارکر رو به Overlay اضافه کردیم و در اخر هم براش یه ToolTip درست کردیم.

GMapOverlay overlay1 = new GMapOverlay("polygons");
            List<PointLatLng> points = new List<PointLatLng>();
            points.Add(new PointLatLng(35.7496593, 51.3874817));
            points.Add(new PointLatLng(35.747526, 51.372054));
            points.Add(new PointLatLng(35.741705, 51.372955));
            points.Add(new PointLatLng(35.742954, 51.381672));
            GMapPolygon polygon = new GMapPolygon(points, "برج میلاد");
            overlay1.Polygons.Add(polygon);
            gMapControl1.Overlays.Add(overlay1);
polygon.Fill = new SolidBrush(Color.FromArgb(50, Color.Green));
            polygon.Stroke = new Pen(Color.Red, 1);

با استفاده از این کد ها هم اومدیم و یه محدوده چند ضلعی رو توی نقشه مشخص کردیم.

            GMapOverlay road = new GMapOverlay("routes");
            List<PointLatLng> points2 = new List<PointLatLng>();
            points2.Add(new PointLatLng(36.297070, 59.606842));
            points2.Add(new PointLatLng(36.2942899, 59.6112301));
            points2.Add(new PointLatLng(36.2910351, 59.6084543));
            GMapRoute route = new GMapRoute(points2, "مسیر شماره 1");
            route.Stroke = new Pen(Color.Red, 3);
            road.Routes.Add(route);
            gMapControl1.Overlays.Add(road);
توی این کد ها هم اومدیم و یک مسیر رو به نقشه اضافه کردیم. 
کد ها هم که شبیه به همه و فکر نکنم که توضیح دیگه ای لازم باشه، ولی اگه جاییشو مشکل داشتین توی کامنت ها بگین تا توضیح بدم.

می تونین توی پروژه تون مختصات یا ادرس رو از کاربر دریافت کنین و اونو توی نقشه نشون بدین برای این کار کافیه دو تا تکس باکس و یه دکمه جدید به پروژه تون اضافه کنین، و کد های زیر رو توی دکمه تون بنویسین:
double Longitude = double.Parse(textBox1.Text);
            double latitude = double.Parse(textBox2.Text);
            if (Longitude >= 0 && latitude >= 0)
            {
                gMapControl1.Position = new GMap.NET.PointLatLng(Longitude, latitude);
            }
            else
                MessageBox.Show("ErrorR", "plz fill all fields");
            

خیلی واضح و روشنه که روش دوم اصولی تر و بهتر از روش اوله و انعطاف پذیری بیشتری هم داره ولی خوب روش اول هم برای پروژه های کوچیک که نمی خواین با نقشه زیاد کار کنین گزینه خوبیه :)

موفق باشین

نظر (۲)

داره از سی شارب خوشم میاد (:

واسه ویروس نویسی میام.

میشه توش مکان کسی که اجرا کرده برنامه رو بدست اورد؟ استاکس نت هم اینجوری بوده؟

اتک راستی

من کالی نصب کردم کل هاردم رفته

این تلگرام رو چجوری بیارم توش؟ کلا هیچی نمیشه روش ریخت.... اصلا فایل اجرایی یوخدی

Virus32 32 Attacker ‌ :
خداروشکر تازه برابر شدیم D:
منم اولین بار موقع نصب کالی، کل هاردمو به فنا دادم :(
ببین فرمت هاردت رو تغییر نده، بعد با یه ریکاوری خوب ریکاوری کن، خودت نمیتونی بده به پدرت یا یه متخصص...
زیاد **گولک نکن... D:

بابام تا حالا تو عمرش یبارم دست به لینوکس نزده

منم یه چند تا از همین ریکاوری های لینوکس رو دیدم

هیچی نمیاره

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

بزار ویندوزو بریزم کنار کالی اینجوری بهتره

البته فکر نکنم هاردم بزاره D: ببینم چقدر جا داره....

حالا ایناش مهم نی

چجوری برنامه روش نصب کنم؟ اینو من میزنم :

apt install vlc

sudo apt install vlc

sudo apt-get install vlc

وی ال سی مثاله ها دو هزارتا برنامه دیگه هم نوشتم ولی آخرش میزنه بیدا نشد!!

Virus32 32 Attacker ‌ :
ریکاوری خوب واسه لینوکس سراغ ندارم، ویندوز نصب کن D:
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی