جمعه ۱۳ آذر ۱۳۹۴

GeoGIS

سایتی در زمینه علوم ژئوماتیک

آموزش آرک آبجکت (جلسه اول)

ارسال توسط راستگو در تاریخ ۲۵ - اسفند - ۱۳۹۱
Print Friendly

مقدمه

 

همان طور که می دانید یکی از شاخه های (گرایش های) رشته ژئوماتیک یا همان نقشه برداری، شاخه سیستم اطلاعات مکانی یا همان GIS است. این رشته در سالهای اخیر به علت مزایا و عدم جدایی توصیفات از اشیا، بسیاری کاربردی و به عبارتی حلال مسائل مختلف در سراسر جهان بوده است.  در کشو ما نیز از طرفی خوشبختانه سازمانها و نهادها به سمت سیستم اطلاعات مکانی می روند و از طرفی باعث تاسف است، زیرا با توجه به اینکه این دانش، دانش جدید و پر طرفداری است و اکثراً از آن اطلاعات کاملی ندارند برخی افراد سودجو با یادگیری یک نرم افزار در این زمینه ادعا کارشناسی  کرده اند و به دلیل نداشتن دانش های پایه ای آن معنا و مفهوم GIS را در بین عموم تخریب نموده اند و در نهایت با اینکه هزینه های بسیار زیادی صرف پروژه های GISی می شود، به اهدافی که می توانند برسند و باعث شکوفایی هرچه بهتر کشورمان و این دانش  گردد نمی شوند، که جای تاسف دارد.

به هر صورت چندی پیش (خرداد ۱۳۹۰) اقدام به ترجمه کتابی در زمینه برنامه نویسی در نرم افزار بسیار کاربردی و معمول GISی ArcGIS نمودم. این کتاب ویرایش دوم کتاب برنامه نویسی آرک ابجکت با وی بی ای (Programming ArcObjects with VBA) نوشته تسانگ چانگ (Kang-Tsung Chang) می باشد. این کتاب دارای ۱۴ فصل می باشد. دقیقاً ۱۳ فصل آن را کاملاً ترجمه کرده بودم که خوشبختانه (یا بدبختانه) متوجه شدم که در همان ماه یکی دیگر از دوستان این کتاب را ترجمه و منتشر نموده اند. از آن روز به بعد ادامه کار را ندادم (هنوز فصل ۱۴هم ترجمه نشده). حال که تصمیم به نوشتن بخش آموزشی برنامه نویسی را دارم با خود گفتم که شما دوستان را نیز از مطالب این کتاب بهره مند کنیم. لازم به ذکر است که در این راستا اصلاً قصد نداریم تنها مطالب این کتاب را به شما آموزش دهیم و مطالب متنوع و مختلفی را سعی می کنیم با یاری شما دوستان بیان کنیم.

ما در ابتدا به بیان تعاریف مقدماتی و کمی آموزش برنامه نویسی VB خواهیم پرداخت تا برای آموزش برنامه نویسی Arcobject آماده شوید.

برنامه نویسی VBA و Arcobject

زبان برنامه نویسی آرک جی آی اس  Arc object  است.

 Visual Basic Application یا VBA تقریباً همان VB است ولی برای Application نویسی با VB در یک نرم افزار دیگر می باشد.

هر نرم افزار GISی یک زبان ماکرونویسی هم دارد. (مثلاً در AMSArc info و AVU ⇔Arc View)

بهتر است شما با همان زبان برنامه نویسی آن نرم افزار، برنامه نویسی کنید چون برای بیشتر کارهایش اجزای آماده (Component) دارند و نیازی به نوشتن برنامه برای آنها نیست. مثلاً برای zoom و pan نمی خواهد برنامه نوشت و در زبان برنامه نویسی همان نرم افزار این برنامه ها موجود است.

همان طور که از نام این برنامه نویسی مشخص است، کاری که این برنامه انجام می دهد (Arcobject) با شی است یا شی گرایی است. امروزه به خاطر مزیت های شی گرایی تقریباً تمام زبان ها به سمت شی گرایی می روند.

معایب روش های غیرشی گرا  (object oriented) :

۱) دنیای پیچیده را مشکل می شود تصویر کرد.

۲) انتقال تجربه و دانش به دیگری و ادامه کار توسط دیگران مشکل است.

۳) عدم وجود ترکیب برنامه از اجزای کوچک قابل اتصال به هم

خصوصیات روش های object oriented  :

۱) خصوصیات پیچیده را خیلی ساده تر می توان مدل کرد.

۲) انتقال ناگهانی از دنیای واقعی به یک دنیای خیلی متفاوت در کامپیوتر نداریم.

۳) ترکیب برنامه های پیچیده با استفاده از اجزاء ساده قابل اتصال به هم

۴) انتقال و اشتراک تجربه و دانش آسان است.

روش object oriented چه مزایایی برای سه دسته افراد زیر داد؟

الف) برای کاربران عادی باعث:

۱) ایجاد تعامل آسان می شود یا همان user interface

۲) Multi media

۳) سیستم های تصحیح، پیغام دهی و راهنمایی مناسب

ب) برای توسعه دهندگان سیستم های ساده مهندسی (Application developers):

۱- User Interface (UI)   -۲                                    Multi Media

۳- Library  -۴                                         Visually

ج) برای توسعه دهندگان سیستم های پایه ای (مثل سازندگان DBMS ها و زبان های برنامه نویسی، محیط های عامل و …) شامل:

۱) تقسیم کار بین افراد صورت می گیرد.

۲) تکه های برنامه مستقل ایجاد شود.

۳) تست و بهینه سازی هر قسمت از برنامه جداگانه

۴) عیب یابی خیلی راحت تر انجام شود.

۵) سرعت بالاتر می رود.

۶) توسعه سیستم را باعث می شود.

۷) استفاده از تخصص های مختلف

برنامه نویسی و خصوصی سازی نرم افزار آرک جی آی اس

جهت برنامه نویسی و خصوصی سازی نرم افزار آرک جی آی اس باید به قسمت Customize رفت. جهت این کار می توان به دو طریق عمل کرد :

۱) بر روی جای خالی در نوار ابزارها کلیک راست نمود و از بین لیست افزونه های ظاهر شده آخرین گزینه یعنی Customize را انتخاب نمود.

۲) از منوها، به منو Tools رفته و گزینه Customize را انتخاب کنید. مانند شکل زیر

 

با انتخاب این گزینه پنجره Customize باز می شود مانند شکل زیر. در قسمت سربرگ نوار ابزارها (Toolbar)، می توانید ابزارهای موجود را فعال یا غیر فعال کنید، یا با کلیک بر روی دکمه New یک نوار ابزار جدید ایجاد نمود. چنانچه بخواهیم برای دسترسی سریع به ابزارهای موجود کلید میانبر ایجاد کنیم بر روی دکمه Keyboard کلیک کنید و با انتخاب ابزار مورد نظر برای آن در قسمت Press New Shortcut Key کلید میانبر را برای دسترسی سریع وارد کنید. یا چنانچه بخواهید فایل نوار ابزاری که قبلاً طراحی کرده اید را بارگذاری کنید بر روی دکمه Add From File کلیک کنید و فایل مورد نظر را انتخاب کنید. حال این نوار ابزار به لیست نوارابزارهای موجود اضافه می شود.

نکته: تا زمانی که پنجره Customize باز است شما می توانید با کلیک راست بر روی گزینه ها،  آیکونهای منوها و نوارابزارها تغییراتی از قبیل حذف، تغییر نام، اختصاص تصویر، نمایش متن تنها، نمایش تصویر تنها (آیکون)، نمایش متن و آیکون، دسته بندی و نمایش کد برنامه را آنجام داد. مانند شکل زیر

 ایجاد یک رابط کاربری (UI)جدید

UI: همان چیزی است که کاربر با run کردن آن، ظاهر می شود. مثلاً UI در Arcmap همان memberها و Toolbarها و Viewها و … است که با اجرای این برنامه مشاهده می کنیم.

برای ایجاد یک UI جدید در سربرگ Commands به قسمت Categories رفته و گزینه [UIControl] را انتخاب کرده و برای انتخاب نوع UI بر روی  New UIControl کلیک کنید. مانند شکل زیر

پنجره New UIControl  باز می شود و شما می توانید بر حسب نیاز یکی از انواع UIها را انتخاب کنید و چنانچه بخواهید پس از ایجاد مستقیماً اقدام به کد نویسی کنید دکمه Create and Edit را انتخاب کرده و چنانچه بعد بخواهید اقدام به کد نویسی آن کنید دکمه Create را انتخاب کنید. مانند شکل زیر

Processing your request, Please wait....
برچسب‌ها, , ,

۲ نظر

  1. khalil می‌گوید،

    سلام. آیا در arc object امکان ایجاد نوار منو هم هست.لطفا جواب رو به ایمیلم هم بفرستید. با تشکر

    ارسال شده در تاریخ مرداد ۳ام, ۱۳۹۲ در ساعت ۶:۱۸ ب.ظ

  2. راستگو می‌گوید،

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

    ارسال شده در تاریخ مرداد ۴ام, ۱۳۹۲ در ساعت ۵:۳۱ ب.ظ

نظر شما


وارد شوید