امتیاز دهید

دنبال کردن



اسفاده از نقشه گوگل در سی شارپ قسمت دوم





farsoft logo
فرسافت

تو قسمت قبل نحوه ایجاد نقشه رو با GMAP.NET توضیح دادیم. تو این قسمت قصد داریم نحوه ایجاد نشانگر و tooltip گذاشتن رو نقشه رو توضیح بدیم.


نقشه گوگل در سی شارپ

اضافه کردن نشانگر (marker) به نقشه

با استفاده از GMAP.NET شما میتوانید به هر تعداد که بخواین marker به نقشه اضافه کنید که هم میتونید از آیکون های پیش فرض خود GMAP.NET استفاده کنید و یا اینکه از عکسی که دوست دارید استفاده کنید. برای ایجاد marker چند مرحله رو باید انجام بدین:

  • گام اول اینکه یک پوشش (overlay) ایجاد کنید که میتونه شامل تعداد زیادی marker باشه.
  • دوم اینکه یک marker جدید ایجاد می کنید و به overlay اضافه میکنید.
  • و در نهایت overlay رو به نقشه اضافه می کنید .

هر چیزی که بخواین به مپ اضافه کنید مثل نشانگر (marker) ، مشخص کردن محدوده (polygons) و مسیرها (routes) ابتدا نیاز به ایجاد کردن یک overlay هست. شما میتونید تعداد زیادی از marker ها و routes و polygons را همه باهم در یک overlay اضافه کنید، یا اینکه میتونید به صورت جدا جدا هر کدوم رو تو یک overlay جدید درست کنید. با انجام روش دوم شما میتونید مثلا overlay مربوط به marker ها رو نمایششون رو مخفی کنید در صورتی که مسیرها و محدوده ها هنوز در overlay دیگری روی نقشه هستن که دیگه در نهایت بستگی به خودتون داره.

کد زیر برای نمایش نقشه و ایجاد یک marker جدید می باشد :

					
private void Form1_Load(object sender, EventArgs e)
  {
          
     gmap.MapProvider = GMap.NET.MapProviders.GoogleMapProvider.Instance;
     GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerAndCache;
     gmap.SetPositionByKeywords("IRAN,isfahan");
     GMap.NET.WindowsForms.GMapOverlay markers = new GMap.NET.WindowsForms.GMapOverlay("markers");
     GMap.NET.WindowsForms.GMapMarker marker =
     new GMap.NET.WindowsForms.Markers.GMarkerGoogle(
        new GMap.NET.PointLatLng(32.643888, 51.667501),
        GMap.NET.WindowsForms.Markers.GMarkerGoogleType.blue_pushpin);
    markers.Markers.Add(marker);
    gmap.Overlays.Add(markers);
  }
					
				

همونطور که تو کد میبینید تعداد زیادی namespace تو کد هست که کد رو خیلی شلوغ کرده . مثل GMAP.NET و GMAP.NET.WindowsForm و GMAP.NET.WindowsForm.Marker. که ما این 3 تا رو ورمیداریم و در بالای صفحه using میکنیم.

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

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

					
private void Form1_Load(object sender, EventArgs e)
  {
          
      gmap.MapProvider =GoogleMapProvider.Instance;
      GMaps.Instance.Mode = AccessMode.ServerAndCache;
      gmap.SetPositionByKeywords("IRAN,isfahan");
      gmap.ShowCenter = false;
      GMapOverlay markers = new GMapOverlay("markers");
      GMapMarker marker = new GMarkerGoogle(new PointLatLng(32.643888, 51.667501), GMarkerGoogleType.blue_pushpin);
      markers.Markers.Add(marker);
      gmap.Overlays.Add(markers);
  }
					
				

خب حالا یه توضیحی در مورد کدها بدیم: خط اول تا سوم رو که قبلا توضیح دادیم و برای بارگزاری نقشه هست خط چهارم علامت + قرمز که مرکز نقشه رو نشون میده گفتم دیگه نمایشش نده. و اما خط بعد یه نمونه از GMapOverlay با نام "markers" ایجاد کردیم گرچه شما هر اسمی دوست ذاشتین میتونید بدین. خط بعد ما یک نمونه GMarkerGoogle از نوع GMapMarker ایجاد کردیم و بهش مختصات از نوع طول و عرض جغرافیایی و همچنین نو مارکر رو دادیم. حالا نوبت اضافه کردن مارکر به OverLay میشه که تو خط بعد این کار رو انجام دادیم. و در نهایت OverLay رو به نقشه اضافه کردیم. که اگه برنامه رو اجرا کنیم نقشه را به این شکل خواهیم دید:

اضافه کردن ماکر به نقشه

ما برای ایجاد Marker از GMarkerGoogle استفاده کردیم ، گرچه GMAP.NET پیشنهاد میده که از علامت + استفاده کنید. البته خود GMarkerGoogle نمونه آیکون های زیادی داره که لیستی که باز میشه هر کدوم که دوست داشتین میتونین استفاده کنید. یا اینکه میتونید تصویر دلخواه خودتون رو روی نقشه اضافه کنید

					
GMapOverlay markers = new GMapOverlay("markers");
GMapMarker marker = new GMarkerGoogle(
    new PointLatLng(32.643888, 51.667501),
    new Bitmap(@"e:\33pol.jpg"));
					
				

که بعد از اجرا به این شکل خواهد شد:

اضافه کردن عکس به کارکر

اضافه کردن ToolTip به مارکر ها:

اگر دقت کرده باشین رو خود Google Map زمانی که شما موس رو مارکر ها و مکان ها ببرید یه tooltip توضیحات باز میشه. اینجا هم میشه این کار رو انجام داد. کافیه کد زیر رو بنویسید و نتیجه رو ببنبد:

					
  marker.ToolTipText = "سی و سه پل\n 33 pol";
					
				

دقت کنید \n که تو قسمت کد زدیم یعنی اینکه tooltip ما در دو خط نوشته بشه. به صورت پیش فرض نوشته در ToolTip در مرکز قزار دارند با فونت آبی و پس زمینه سفید و همچنین حاشیه آبی ولی همه اینها قابل تغییر است.

اضافه کردن ToolTip به مارکر

خب تو کد زیر من اومدم تغییراتی که گفتم رو انجام دادم. مثلا فونت سفید و پس زمینه مشکی و مقداری هم Padding دادم بهش:

					
marker.ToolTip.Fill = Brushes.Black;
marker.ToolTip.Foreground = Brushes.White;
marker.ToolTip.Stroke = Pens.Black;
marker.ToolTip.TextPadding = new Size(20, 20);
					
				

به صورت پیش فرض ToolTip زمانی ظاهر میشه که موس روش قرار بگیره ولی شما میتونید کاری کنید که همیشه نمایش داده بشه:

					
marker.ToolTipMode = MarkerTooltipMode.Always;
					
				

خب آموزش ایجاد Marker روی نقشه هم تموم شد. امیدوارم مفید واقع شده باشه. میتونید فیلم همین آموزش رو ببینید تا اگه قسمتی مبهم مونده بهتر متوجه بشین.

ایجاد Marker در نقشه


ایجاد Marker و ToolTip در نقشه گوگل

در صورت مفید بودن این مطلب را به اشتراک بگذارید




دیدگاه خود را درباره این مطلب بنویسید:




  • مصطفی علیجانپور
    Profile Avatar

    با سلام و تشکر از مطلب و فیلم زیبای و مفید شما در صورت امکان نحوه استفاده از مپ و ذخیره اطلاعات ان در اس کیو ال را با انتیتی فرمورک بیان نمایید با تشکر فراوان 09139157392