تغییر جهت دوربین – B4A

Android SDK Resources

نسخه 1.1

هدف این بخش از پروژه تغییر جهت دوربین (از حالتی که دوربین به سمت شمال نقشه است به جهت‌های دیگر) است.

جهت همگام سازی، مقدار تغییر جهت نقشه به مقدار قابل نمایش بر روی SeekBar تبدیل می‌شود. به این صورت که در صورتی که مقدار SeekBar از 180 بیشتر شود، مقدار SeekBar منهای 180 شده و بعلاوه -180 میشود تا مقدار جهت دوربین شبیه سازی شود. در غیر این صورت، مقدار تغییر جهت نقشه برابر با مقدار SeekBar در نظر گرفته می‌شود.

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

#AdditionalJar: common-release.aar

activity_camera_bearing.bal

در Visual designer زیر که مربوط به Layout اکتیویتی تغییر جهت دوربین است، یک View ی نقشه و یک SeekBar که با حرکت دادن اهرم آن جهت دوربین عوض میشود، اضافه شده است.

جهت تعریف شیء نقشه در کد روی View ی مربوط به نقشه که نام آن در این مثال NeshanMapSdk1 است راست کلیک کرده و از منوی باز شونده Generate، گزینه Dim NeshanMapSdk1 as NeshanMapSdk را انتخاب میکنیم. پس از این عمل، شیء نقشه در فایل کد مربوط به اکتیویتی تغییر جهت دوربین (CameraBearingActivity) در قسمت 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
        

جهت پیاده سازی متد تغییر مقدار روی SeekBar کافیست Visual designer مربوط به CameraBearingActivity را باز کرده، روی SeekBar ی که قبلا اضافه شده است راست کلیک کنید و از زیر منوی Generate گزینه ValueChanged را انتخاب کنید تا Event تغییر مقدار مربوط به SeekBar در CameraBearingActivity پیاده سازی شود.

            Private Sub BearingSeek_ValueChanged (Value As Int, UserChanged As Boolean)

End Sub
        

تغییر جهت دوربین

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

            NeshanMapSdk1.setCameraBearing(progress,animDuration)
        

پارامترهای مربوط به متد setCameraBearing:

progress: مقدار جهت

animDuration: مدت زمان تغییر جهت بر حسب ثانیه

مثال

            Private Sub BearingSeek_ValueChanged (Value As Int, UserChanged As Boolean)
	If Value>=0 And Value<180 Then
		NeshanMapSdk1.setCameraBearing(Value,0)
	Else
		NeshanMapSdk1.setCameraBearing(Value -180 + (-180),0)
	End If
End Sub
        

نسخه 1.0

هدف این بخش از پروژه تغییر جهت دوربین (از حالتی که دوربین به سمت شمال نقشه است به جهت‌های دیگر) است.

جهت همگام سازی، مقدار تغییر جهت نقشه به مقدار قابل نمایش بر روی SeekBar تبدیل می‌شود. به این صورت که در صورتی که مقدار SeekBar از 180 بیشتر شود، مقدار SeekBar منهای 180 شده و بعلاوه -180 میشود تا مقدار جهت دوربین شبیه سازی شود. در غیر این صورت، مقدار تغییر جهت نقشه برابر با مقدار SeekBar در نظر گرفته می‌شود.

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

#AdditionalJar: common-release.aar

activity_camera_bearing.bal

در Visual designer زیر که مربوط به Layout اکتیویتی تغییر جهت دوربین است، یک View ی نقشه و یک SeekBar که با حرکت دادن اهرم آن جهت دوربین عوض میشود، اضافه شده است.

جهت تعریف شیء نقشه در کد روی View ی مربوط به نقشه که نام آن در این مثال NeshanMapSdk1 است راست کلیک کرده و از منوی باز شونده Generate، گزینه Dim NeshanMapSdk1 as NeshanMapSdk را انتخاب میکنیم. پس از این عمل، شیء نقشه در فایل کد مربوط به اکتیویتی تغییر جهت دوربین (CameraBearingActivity) در قسمت 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
        

جهت پیاده سازی متد تغییر مقدار روی SeekBar کافیست Visual designer مربوط به CameraBearingActivity را باز کرده، روی SeekBar ی که قبلا اضافه شده است راست کلیک کنید و از زیر منوی Generate گزینه ValueChanged را انتخاب کنید تا Event تغییر مقدار مربوط به SeekBar در CameraBearingActivity پیاده سازی شود.

            Private Sub BearingSeek_ValueChanged (Value As Int, UserChanged As Boolean)

End Sub
        

تغییر جهت دوربین

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

            NeshanMapSdk1.setCameraBearing(progress,animDuration)
        

پارامترهای مربوط به متد setCameraBearing:

progress: مقدار جهت

animDuration: مدت زمان تغییر جهت بر حسب ثانیه

مثال

            Private Sub BearingSeek_ValueChanged (Value As Int, UserChanged As Boolean)
	If Value>=0 And Value<180 Then
		NeshanMapSdk1.setCameraBearing(Value,0)
	Else
		NeshanMapSdk1.setCameraBearing(Value -180 + (-180),0)
	End If
End Sub