خانه » 2015 » آوریل

بایگانی ماهانه: آوریل 2015

ایجاد لایه با استفاده از رکوردهای انتخاب‌شده در جدول Attribute

ابتدا لایه موردنظر را در ArcMap بازکرده،سپس رکوردهای موردنظر را انتخاب  می‌کنیم.
حال جدول  Attribute را بازکرده سپس مراحلی را که در تصاویر نشان داده‌ شده را انجام میدهیم تا لایه موردنظر را بسازیم. ادامه مطلب »

دانلود کتاب ArcGIS Web Development

ArcGIS Web Developmentدانلود: ArcGIS Web Development
منبع: وبلاگ مهندس عباس بیگی

آموزش ArcObjects: خواندن دیتافریم فعال در ArcMap

خواندن دیتافریم فعال در ArcMap
برای رسیدن از Document به DataFrame (که باز توی ArcObject نماد DataFrame هم کلاس Map هست) باید یه خصوصیت توی کلاس MXDocument پیدا کنیم که یه شی از کلاس Map رو برای ما برگردونه. به نماد بیضی شکل قرمز رنگ که براتون کشیدم دقت کنید دو تا خصوصیت رو داره نشون میده که اولی FocusMap هست که به DataFrame فعال در نرم افزار اشاره میکنه (هونطوری که میدونین همیشه تنها یک DataFrame میتونه در نرم افزار ArcGIS فعال باشه) و خصوصیت دوم Maps به مجموعه تمام DataFrameها در نرم افزار اشاره میکنه.
بنابراین برای اتصال به DataFrame فعال فقط کافیه از خصوصیت FocusMap (از اسم خصوصیت هم مشخصه) بصورت زیر استفاده کنیم. واسه اینکه اینترفیس IMap در فضای ویژوال استودیو هم قابل استفاده باشه باید فضای نام ESRI.ArcGIS.Carto رو به مجموعه فضای نام های موجود اضافه کنیم. و با دستور Using در قسمت بالای برنامه کلاس های موجود توی اون رو در دسترس قرار بدیم.
Using ESRI.ArcGIS.Carto

MXDocument ادامه مطلب »

آموزش ArcObjects: خواندن سند جاری در ArcMap

خواندن سند جاری در ArcMap
همون طوری که گفتم فایل های PDF محتوای dllهای نرم افزار رو در موقع نصب نشون میدن. در این فایل ها، کلاس ها در قالب (Object Model Diagram (OMDها نمایش داده شدن. در OMDها هر چیزی با یک نماد مشخص شده مثلاً کلاس ها بصورت مستطیل شکل، خصوصیات بصورت دمبل مانند و رفتارها بصورت فلش. واسه کار کردن با OMDها یک فایل چند صفحه ای برای دوستان گذاشتم. این فایل رو خوب و دقیق مطالعه کنین.
خوب میخوام مستقیم برم سر یه خورده کدنویسی. امیدوارم تا الان فایل هایی رو که گفتم خونده باشین چون خیلی واسه فهم ادامه مطالب مهم هست. واسه سفارشی کردن نرم افزار ArcGIS، نقطه شروع کار ما کلاس Application هست.
Application ادامه مطلب »

آموزش ArcObjects: مفاهیم ArcObjects

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

خوب همینطوری که ما با یه الگو میتونیم هر تعداد شیرینی دلخواه بپزیم اینجا هم از یک کلاس هر تعداد شی که بخواییم میتونیم ایجاد کنیم. ۲ عنصر اصلی هر کلاس خصوصیات و متدها هستن که خصوصیت ها مشخصه های یک کلاس و متدها رفتار اون رو شبیه سازی میکنن. مثلا یک کلاس خودکار رو در نظر بگیرین خصوصیاتی مثل رنگ و … داره و رفتاری مثل نوشتن میشه براش تعریف کرد. البته کلاس ها مشخصه های دیگه هم دارن که مطالب بیشتر بمونه به عهده خودتون. طریقه ایجاد یک شی یا نمونه(Instance)  از یک کلاس هم با کلمه کلیدی new بصورت زیره:

;()Rectangle rect =new Rectangle

با این دستور ما شی rect رو تعریف و مقداردهی (Instantiate) کردیم. متد ()Rectangle هم سازنده پیش فرض کلاسه که همنام با کلاس هست. از این متد میتونیم برای مقدار دهی که متغیرهای یک کلاس هم استفاده کرد. توضیحات بیشتر راجع به کلاس ها و اشیا داخل فایل Getting Started with ArcObjects اومده که براتون گذاشتم.

خوب خود کلاس ها توی ArcObject سه نوع هستن:

۱-      Abstract Class: از این کلاس ها که ما نمیتونیم مثل دستور بالا با استفاده از کلمه new ازشون شی بسازیم. کلا بیشترین استفاده از این کلاس ها واسه پیاده سازی وراثت هست.

۲-      CoClass: از این کلاس ها  میتونیم با کلمه new شی بسازیم.

۳-      Class: که از این کلاس ها هم نمیشه مستقیماً شی ساخت ولی یک کلاس دیگه ای وجود داره که یه خصوصیت که  شی از این کلاس رو برمیگردونه یا یه شی داره که با استفاده از اون میتونیم یه شی از این کلاس بسازیم.

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

آموزش ArcObjects: کاربردهای ArcObjects

کاربردهای ArcObjects
بطور کلی ۴ هدف اصلی در استفاده از ArcObjectها وجود داره:
   – customize کردن (سفارشی کردن) نرم افزار ArcMap.
   – توسعه نرم افزارهای Desktop Applications (Standalone).
   – توسعه نرم افزارهای مبتنی بر تکنولوژی وب (Web Applications).
خوب می خواهم راجع به اولین کاربرد ArcObjectها یه خورده براتون بنویسم. همونطور که گفتم هدف ما از سفارشی کردن نرم افزار ArcMap، ایجاد چیدمان دلخواه از ابزارها و منوهای نرم افزار و یا اضافه کردن ابزارها و کامپوننت های نرم افزاری خودمون هست. در کل ۴ روش واسه سفارشی کردن نرم افزار ArcMap وجود داره:
   – سفارشی کردن با استفاده از پنجره Customize در نرم افزار ArcMap.
   – سفارشی کردن با استفاده از زبان اسکریپتی Python.
   – سفارشی کردن از طریق توسعه Add-ins Componentها.
   – سفارشی کردن از طریق توسعه Custom Componentها.

روش اول: توی این روش ما میتونیم نرم افزار ArcMap رو بدون نیاز به هیچگونه تجربه برنامه نویسی سفارشی کنیم. با استفاده از پنجره Customize میتونیم عنوان تمامی منوها و ابزارهای نرم افزار رو فارسی کرد، چیدمان اونها رو عوض کرد، به منوها یا نوارابزارها میتونیم ابزارهای خودمون رو اضافه کنیم حتی تمامی منوهای کلیک راست نرم افزار رو دستکاری کرد. باورتون میشه! چه قابلیت های جالبی وجود داره حتی بدون یک خط کد نویسی. اما راستش رو بخوایین این روش علیرغم ساده گیش خیلی کاربرد عملی واسه ما نداره. بهترین توجیه توی استفاده از این روش جابجا کردن منوها وابزارها و دم دست قرار دادن اونهاییکه بیشتر ازشون استفاده میکنیم (یجای اینکه هر سری اونها رو از جاهای مختلف و با کلی مراحل اونها رو پیدا میکنیم). توی سازمان ها یه مدیر GIS میتونه با سفارشی کردن یک نرم افزار و کپی کردن فایل Normal.mxt توی یه مسیر مشترک در شبکه بقیه نرم افزارهای ArcMap در سازمان رو به یک شکل سفارشی کنه. فقط کافیه بقیه کارکنان شرکت این فایل رو توی مسیر پیش فرض نرم افزار کپی کنن و نرم افزار رو یکبار باز و بسته کنن. تمامی تغییرات مورد نظر توی نرم افزار اونها براحتی اعمال میشه. و برای برگشتش هم کافیه فایل سالم رو دوباره تو همون مسیر کپی کرد و یا فایل قبلی رو حذف کرد. یه عکس از این قابلیت رو براتون میزارم:

 Customize ادامه مطلب »