تغییر استایل نقشه – B4A

Android SDK Resources

نسخه 1.1

هدف از این آموزش، تغییر استایل نقشه به استایل های موجود در اس دی کی میباشد.

activity_change_style.balدر Visual designer زیر که مربوط به Layout اکتیویتی تغییر استایل نقشه است، یک View ی نقشه و یک ImageView وجود  دارد که پس از کلیک روی ImageView استایل نقشه به استایل های موجود برای اس دی کی سوئیچ میشود.

در فایل Main پروژه در قسمت Region Project Attributes خط زیر را اضافه کنید:

#AdditionalJar: common-release.aar

جهت تعریف شیء نقشه در کد روی View ی مربوط به نقشه که نام آن در این مثال NeshanMapSdk1 است راست کلیک کرده و از منوی باز شونده Generate، گزینه Dim NeshanMapSdk1 as NeshanMapSdk را انتخاب میکنیم. پس از این عمل، شیء نقشه در فایل کد مربوط به اکتیویتی تغییر استایل نقشه (ChangeStyleActivity) در قسمت Globals اضافه میشود.

            Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.

	Private NeshanMapSdk1 As NeshanMapSdk
End Sub
        

جهت پیاده سازی متد کلیک روی عکس، Visual designer مربوط به ChangeStyleActivity را باز کرده، روی ImageView ای که قبلا اضافه شده است راست کلیک کنید و از زیر منوی Generate گزینه Click را انتخاب کنید تا Event کلیک مربوط به عکس در ChangeStyleActivity پیاده سازی شود. سپس تکه کد مربوط به تغییر استایل را درون بدنه آن اضافه کنید.

            Private Sub ChangeStyleImage_Click

End Sub
        

تغییر استایل نقشه

جهت تغییر استایل نقشه میتوانید از متد changeMapStyle روی شیء نقشه به صورت زیر استفاده نمایید:

            NeshanMapSdk1.changeMapStyle(style)
        

متد changeMapStyle دارای یک پارامتر به نام style از نوع Int است.

در حال حاضر استایل های آماده برای نقشه موارد زیر است:

  •  Neshan
  • Standard day
  • Standard night
  • STYLE_1
  • STYLE_2
  • STYLE_3
  • STYLE_4
  • STYLE_5
  • STYLE_6

مقادیر مربوط به هر استایل را میتوانید از شی نقشه به صورت زیر بدست آورید و روی متد changeMapStyle ست کنید:

  •  NeshanMapSdk1.MAP_STYLE_NESHAN برای استایل Neshan
  • NeshanMapSdk1.MAP_STYLE_STANDARD_DAY برای استایل Standard day
  • NeshanMapSdk1.MAP_STYLE_NESHAN_NIGHT برای استایل Standard night
  • NeshanMapSdk1.STYLE_1 برای استایل آماده 1
  • NeshanMapSdk1.STYLE_2 برای استایل آماده 2
  • NeshanMapSdk1.STYLE_3 برای استایل آماده 3
  • NeshanMapSdk1.STYLE_4 برای استایل آماده 4
  • NeshanMapSdk1.STYLE_5 برای استایل آماده 5
  • NeshanMapSdk1.STYLE_6 برای استایل آماده 6

مثال

قطعه کد زیر مربوط به کلیک روی ImageView ی موجود در ChangeStyleActivity است که با هر بار کلیک روی آن، به ترتیب، استایل ها تغییر میکنند.

            Private Sub ChangeStyleImage_Click
	Dim currentStyle As Int
	If currentStyle== NeshanMapSdk1.MAP_STYLE_NESHAN Then
		ChangeStyleImage.SetBackgroundImage(LoadBitmap(File.DirAssets,"map_style_neshan_night.png"))
		currentStyle = NeshanMapSdk1.MAP_STYLE_NESHAN_NIGHT
	Else If currentStyle==NeshanMapSdk1.MAP_STYLE_NESHAN_NIGHT Then
		ChangeStyleImage.SetBackgroundImage(LoadBitmap(File.DirAssets,"map_style_standard_day.png"))
		currentStyle = NeshanMapSdk1.MAP_STYLE_STANDARD_DAY
	Else If currentStyle==NeshanMapSdk1.MAP_STYLE_STANDARD_DAY Then
		ChangeStyleImage.SetBackgroundImage(LoadBitmap(File.DirAssets,"map_style_1.png"))
		currentStyle = NeshanMapSdk1.STYLE_1
	Else If currentStyle==NeshanMapSdk1.STYLE_1 Then
		ChangeStyleImage.SetBackgroundImage(LoadBitmap(File.DirAssets,"map_style_2.png"))
		currentStyle = NeshanMapSdk1.STYLE_2
	Else If currentStyle==NeshanMapSdk1.STYLE_2 Then
		ChangeStyleImage.SetBackgroundImage(LoadBitmap(File.DirAssets,"map_style_3.png"))
		currentStyle = NeshanMapSdk1.STYLE_3
	Else If currentStyle==NeshanMapSdk1.STYLE_3 Then
		ChangeStyleImage.SetBackgroundImage(LoadBitmap(File.DirAssets,"map_style_4.png"))
		currentStyle = NeshanMapSdk1.STYLE_4
	Else If currentStyle==NeshanMapSdk1.STYLE_4 Then
		ChangeStyleImage.SetBackgroundImage(LoadBitmap(File.DirAssets,"map_style_5.png"))
		currentStyle = NeshanMapSdk1.STYLE_5
	Else If currentStyle==NeshanMapSdk1.STYLE_5 Then
		ChangeStyleImage.SetBackgroundImage(LoadBitmap(File.DirAssets,"map_style_6.png"))
		currentStyle = NeshanMapSdk1.STYLE_6
	Else If currentStyle==NeshanMapSdk1.STYLE_6 Then
		ChangeStyleImage.SetBackgroundImage(LoadBitmap(File.DirAssets,"map_style_neshan.png"))
		currentStyle = NeshanMapSdk1.MAP_STYLE_NESHAN
	End If
	NeshanMapSdk1.changeMapStyle(currentStyle)
End Sub
        

در قطعه کد بالا، متغیر currentStyle که از نوع Int است، استایل فعلی که بر روی نقشه ست شده است را نگهداری میکند. با هر بار تغییر استایل، که توسط کلیک بر روی ImageView انجام میشود، مقدار currentStyle نیز به آخرین استایل تغییر میکند.

با هر بار کلیک روی ImageView استایل فعلی بررسی شده و بر اساس آن، استایل بعدی روی نقشه ست شده و عکس درون ImageView از فولدر assets خوانده شده و درون ImageView نمایش داده میشود.

نسخه 1.0

هدف از این آموزش، تغییر استایل نقشه به استایل های موجود در اس دی کی میباشد.

activity_change_style.balدر Visual designer زیر که مربوط به Layout اکتیویتی تغییر استایل نقشه است، یک View ی نقشه و یک ImageView وجود  دارد که پس از کلیک روی ImageView استایل نقشه به استایل های موجود برای اس دی کی سوئیچ میشود.

در فایل Main پروژه در قسمت Region Project Attributes خط زیر را اضافه کنید:

#AdditionalJar: common-release.aar

جهت تعریف شیء نقشه در کد روی View ی مربوط به نقشه که نام آن در این مثال NeshanMapSdk1 است راست کلیک کرده و از منوی باز شونده Generate، گزینه Dim NeshanMapSdk1 as NeshanMapSdk را انتخاب میکنیم. پس از این عمل، شیء نقشه در فایل کد مربوط به اکتیویتی تغییر استایل نقشه (ChangeStyleActivity) در قسمت Globals اضافه میشود.

            Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.

	Private NeshanMapSdk1 As NeshanMapSdk
End Sub
        

جهت پیاده سازی متد کلیک روی عکس، Visual designer مربوط به ChangeStyleActivity را باز کرده، روی ImageView ای که قبلا اضافه شده است راست کلیک کنید و از زیر منوی Generate گزینه Click را انتخاب کنید تا Event کلیک مربوط به عکس در ChangeStyleActivity پیاده سازی شود. سپس تکه کد مربوط به تغییر استایل را درون بدنه آن اضافه کنید.

            Private Sub ChangeStyleImage_Click

End Sub
        

تغییر استایل نقشه

جهت تغییر استایل نقشه میتوانید از متد changeMapStyle روی شیء نقشه به صورت زیر استفاده نمایید:

            NeshanMapSdk1.changeMapStyle(style)
        

متد changeMapStyle دارای یک پارامتر به نام style از نوع Int است.

در حال حاضر استایل های آماده برای نقشه موارد زیر است:

  •  Neshan
  • Standard day
  • Standard night

مقادیر مربوط به هر استایل را میتوانید از شی نقشه به صورت زیر بدست آورید و روی متد changeMapStyle ست کنید:

  •  NeshanMapSdk1.MAP_STYLE_NESHAN برای استایل Neshan
  • NeshanMapSdk1.MAP_STYLE_STANDARD_DAY برای استایل Standard day
  • NeshanMapSdk1.MAP_STYLE_NESHAN_NIGHT برای استایل Standard night

مثال

قطعه کد زیر مربوط به کلیک روی ImageView ی موجود در ChangeStyleActivity است که با هر بار کلیک روی آن، به ترتیب، استایل ها تغییر میکنند.

            Private Sub ChangeStyleImage_Click
	If currentStyle== NeshanMapSdk1.MAP_STYLE_NESHAN Then
		ChangeStyleImage.SetBackgroundImage(LoadBitmap(File.DirAssets,"map_style_neshan.png"))
		currentStyle = NeshanMapSdk1.MAP_STYLE_NESHAN_NIGHT
	Else If currentStyle==NeshanMapSdk1.MAP_STYLE_NESHAN_NIGHT Then
		ChangeStyleImage.SetBackgroundImage(LoadBitmap(File.DirAssets,"map_style_standard_day.png"))
		currentStyle = NeshanMapSdk1.MAP_STYLE_STANDARD_DAY
	Else If currentStyle==NeshanMapSdk1.MAP_STYLE_STANDARD_DAY Then
		ChangeStyleImage.SetBackgroundImage(LoadBitmap(File.DirAssets,"map_style_standard_night.png"))
		currentStyle = NeshanMapSdk1.MAP_STYLE_NESHAN
	End If
	NeshanMapSdk1.changeMapStyle(currentStyle)
End Sub
        

در قطعه کد بالا، متغیر currentStyle که از نوع Int است، استایل فعلی که بر روی نقشه ست شده است را نگهداری میکند. با هر بار تغییر استایل، که توسط کلیک بر روی ImageView انجام میشود، مقدار currentStyle نیز به آخرین استایل تغییر میکند.

با هر بار کلیک روی ImageView استایل فعلی بررسی شده و بر اساس آن، استایل بعدی روی نقشه ست شده و عکس درون ImageView از فولدر assets خوانده شده و درون ImageView نمایش داده میشود.

فهرست مطالب این صفحه