أولاً الدراية بالبرمجة :
إن مبرمج نظم المعلومات الجغرافية لابد ان يكون مبرمج بما فى الكلمة من معنى و لغات البرمجة متعددة و يمكن أستخدامها كلها فى برمجة نظم المعلومات الجغرافية و سوف اتكلم فى هذة النقطة على البرمجة وحدها و لغاتها و برامجها لذلك اذا كنت مبرمج و عندك دراية قوية بالبرمجة فانتقل الى النقطة الثانية .
اما لغات البرمجة فمنها
Visual Basic
C#
Java
C++
ASP.NET
و هذة اللغات هم الأكثر شيوعاً فى عالم البرمجة و الاكثر دعماً من منتجات ESRI
و لمن يريد تعلم لغات البرمجة انصحة بالبدأ ب Visual Basic 6.0 حيث انها الأسهل و بعد ذلكVisual Basic .NET و اذا كان البعض لا يعرف ما الفرق بينهما فسأقول ان ال.NET عبارة عن تحديث او نسخة جديدة للغة بها ادوات اكثر و قدرات اكثر و ما الى ذلك و بعد ذلك يمكنك تعلم لغة الC# .NET حيث انها أصعب من ال Visual Basic فى كتابة و فهم الاكواد و بعد ذلك يمكنك تعلم ال Java حيث انها قريبة جداً من لغة ال C# و بعد ذلك يمكنك تعلم ال C++ حيث أنها الأصعب و من وجهه نظرى المتواضعة هى اللغة الام للغات السابق ذكرها اما ال ASP.NET فهى خاصة ببرمجة صفحات الانترنت. و يختلف هذا الترتيب و تعلم تلك اللغات من شخص لأخر كل شخص حسب رغباتة و لكن كلما كان معرفتك لالغات المتعددة أكثر كلما كانت قدراتك أكثر فى البرمجة بلغات أكثر مما يجعلك أفضل ممن يعرف لغة واحدة فقط.
كيف تتعلم هذة اللغات اولاً حاول الحصول على برنامج Visual Studio 6.0 و هذا البرنامج يتيح لك كتابة الأكواد و عمل برامج بلغة Visual Basic 6.0 و حاول الحصول على كتب بالغة العربية او الانجليزية و يكون افضل و ما أكثر هذة الكتب على الانترنت لتعليم اللغة و ابدأ بالتعلم و التطبيق.
و من أفضل المواقع التى تحتوى على كتب تعليم عربية للبرمجة هو موقع البوصلة للتقنية
http://www.boosla.com/default.phpبعد ان تتقدم فى التعلم حاول الحصول على برنامج Visual Studio .NET 2005 و الذى يتيح لك كتابة الاكواد و عمل برامج Desktop و Web بلغة الVisual Basic .NET و C#.NET و C++ و حاول الحصول على كتاب لتعليم ال Visual Basic.Net و ابدأ فى التعلم و بعد ان تكون تعلمت و تقدمت فى الVisual Basic .NET أبدأ فى تعلم اللغات الأخرى و بالطبع و لن أكون مخادعاً ستصل الى حد معين و تتوقف معرفتك بالبرمجة و قدرتك على تعمل المزيد فى البرمجة و هنا ليس امامك الا طريقين واحد منهم سهل و يحتاج مال و أخر صعب و يحتاج وقت و مجهود جبار و الطريق السهل بالمال و هو الحصول على كورسات متقدمة فى البرمجة و انصح بالكورسات الخاصة بشركة Microsoft اما الطريق الصعب فهو ان تبدأ فى تعليم نفسك بنفسك و البحث و التعلم و ان تكون طموحك فى البحث و تعلم الجديد و التعلم من الاخطاء ليس لها حدود.
بالنسبة للغة الASP.NET فهى حالة خاصة حيث انها ليست لغة فى حد ذاتها و انما لغة مساعدة للغات الاخرى لعمل صفحات الويب او صفحات الانترنت و هى تعمل على الربط بين الاكواد المكتوبة باللغات الاخرى و الاكواد التى تفهمها صفحات الانترنت.
و طبعاً لا أريد ان أزيد فى التحدث عن البرمجة حيث انها مجال واسع و كبير و الكلام عنها يطول و لكنى حاولت ان اوضح كيفية البدأ فيها ليس الا و الله الموفق.
ثانياً الدراية بنظم المعلومات الجغرافية :
و أتوقع ممن يقرأ هذة الكلمات فى هذة المنتدى ان تكون المعرفة بنظم المعلومات الجغرافية موجودة, و اتوقع ايضاً ان يكون الجميع عمل على برنامج ArcGIS حيث ان كلما زادت قدرتك فى أستخدامة كلما زادت قدرتك فى برمجة أدواتة و قدراتة حسب أحتياجاتك فمثلاً اذا كنت تريد برمجة برنامج مستقل به أداة تحليل واحدة مثل 3D Analysis فلابد عليك ان تكون تعرف كيف تعمل على هذا النوع من التحليل فى ال ArcGIS Desktop 9.2 حتى تستطيع أستخدامة و توظيفة بالشكل الذى تريدة فى البرنامج الذى تقوم ببرمجتة.
ثالثاُ و الاهم و الأكثر حديثاً فى موضوعنا الا و هى الدراية بالربط بين البرمجة و نظم المعلومات الجغرافية:
هناك ثلاث انواع من برمجة نظم المعلومات الجغرافية كما تم الذكر فى اول الموضوع و هم عمل ادوات جديدة داخل برامج نظم المعلومات و عمل برامج مستقلة تستخدم بعض الادوات المتاحة فى برامج نظم المعلومات و عمل صفحات انترنت بها ادوات من برماج نظم المعلومات.
و سنذكرهم بالترتيب و سنذكر طرق أستخدامهم و البرامج المستخدمة.
اولاً: عمل ادوات جديدة داخل برامج نظم المعلومات الجغرافية
- اذا كان لديك النسخة الكاملة من برنامج ArcGIS Desktop 9.2 عندما تبدأ فى تنصيب البرنامج تجد ان هناك أشياء كثيرة متاحة للتنصيب و من هذة الأشياء
[align=left]ArcGIS Desktop SDK for Microsoft .NET Framework[/align]
[align=left]ArcGIS Desktop SDK for Visual Basic 6[/align]
[align=left]ArcGIS Desktop SDK for Cisual C++[/align]
كلمة SDK أختصار لـSoftware Developer Kit اى مجموعة تطوير البرنامج
اما الجملة كلها فمعناها (مجموعة تطوير برنامج ArcGIS Desktop بأستخدام Microsoft .Net ) و Microsoft .Net تعنى Visual Studio .Net و الذى يحتوى على اللغات Visual Basic.Net و C#.Net و C++.Net .
و الجملة الثانية نفس المعنى و لكن بأستخدام لغة البرمجة القديمة Visual Basic 6
و الجملة الاخيرة نفس المعنى و لكن بأستخدام الVisual C++ و الذى هو النسخة القديمة من C++.NET .
ماذا يعنى هذا؟؟؟
هذا يعنى ان عندما تنصب اول واحدة مثلاً فبرنامج ArcGIS Desktop يعطيك مكتبات برمجية و أدوات يمكن عن طريقها عمل ادوات جديدة داخل الVisual Studio.NET يمكن أدخالها بعد ذلك الى ال ArcGIS Desktop و أستخدامها داخلة.
و لتوضيح الصورة فمثلاً اذا اردنا عمل اداة تعمل على عد الطبقات Layers داخل الArc بحيث عندما اضغت على زرار داخل الأرك يخرج لى رسالة بها عدد الطبقات و هذا الزر غير موجود اصلاً بالArc عندها بعد ان يتم تنصيب ArcGIS Desktop SDK for Microsoft .NET Framework يمكن بعد ذلك الدخول على ال Visual Studio.Net و عمل زرار جديد يؤدى هذة المهمة و ثم بعد ذلك أدخلة او أضيفة داخل برنامج الArc لأستخدامة.
و يوجد هنا سؤال أخر لماذا لابد من تنصيب ال SDK اولاً؟
ضع نفسك مكان الحاسب فاذا قلت لك حرفياً (عد لى عدد الطبقات و اخرج لى العدد فى رسالة)
الحاسب يعرف كيف يعد و يعرف كيف يخرج رسالة بها الرقم و لكن لا يعرف ما هى الطبقات لا يعرف ما هى الLayers لذلك عند تنصيب ال SDK يقوم برنامج الArc بوضع مكتبات برمجية تبلغ الحاسب ما معنى كلمة Layers بحيث عندما اقول للحاسب عد لى الLayers ,يقول الحاسب الأن اعرف ما هى الLayers انها شئ خاص ببرنامج الArc لقد بلغنى الArc بذلك .
ارجو ان تكون وضحت الفكرة من تنصيب الSDK و لماذا هى اساسية لتطوير و برمجة الArcGIS Desktop .
و هناك ايضاً داخل برنامج الArc نفسة برنامج اسمة VBA و هى أختصار ل Visual Basic for Applications و هذا البرنامج هو شكل مصغر من برنامج Visual Studio 6 و لكنة داخل الArc نفسة و يمكن عن طريقة كتابه أكواد و عمل أدوات خاصة بكل مشروع او بكل MXD على حدا و عمل نفس وظيفة الSDK و لكن داخل الArc مباشراً.
و العمل على هذا النوع من برمجة و تطوير الArc نفسة يكون داخل الشركات المتخصصة فى نظم المعلومات الجغرافية بمعنى انه عند العمل على بعض المشاريع الكبيرة و التحليلات المتقدمة يحتاج المحلل او العامل على المشروع لأداة غير موجودة بالأرك كله لذلك يبلغ المبرمج فى نفس الشركة انه يريد اداة تفعل كذا و كذا لتكملة المشروع و تكملة العمل.
ثانياً : عمل برامج مستقلة تستخدم بعض الادوات المتاحة فى برامج نظم المعلومات الجغرافية
و هذا الجزء ارجو ان يتم التركيز علية من القارء حيث اننى سأتحدث عن بعض البرامج التى ربما يكون سمع عنها و لكن لم يسبق للعديد من القراء التعامل معها و منها ArcGIS Engine 9.2 و ArcGIS Engine Runtime 9.2.
ما هو برنامج ArcGIS Engine 9.2 ؟؟
هذا البرنامج يعمل نفس عمل الSDK السابق ذكرها و لكن يقوم بوضع مكتبات و ادوات اكثر داخل لغات البرمجة لكى يستطيع المبرمج ان يصنع برنامج مستقل بذاتة يمكن أستخدامة و العمل علية بعيداً تماماً عن ArcGIS Desktop مثلما تم الذكر فى مثال برنامج ادخال بيانات السكان.
و عن طريق هذة الادوات و المكتبات يمكنك أستخدام اى اداة او اداة تحليل موجودة فى الارك لأستخدامها و توظيفها و اخراجها فى برنامج مستقل, و يمكن القول بأنة عبارة عن برنامج تصريح من شركة ESRI للمبرمجين بأخراج و عمل برامج مستقلة بأستخدام المكتبات و الادوات الخاصة بESRI.
يعنى تجارياً ESRI قامت مجتهدة بعمل مكتبات و أدوات خاصة بها و وظفت و صرفت اموال كبيرة جداً لصنع هذة الأشياء بأى حق لك انت يا مبرمج ان تاتى بكل بساطة و تستخدمها و تخرج عن طريقها برنامج مستقل و تبيعة للغير و تكسب منه؟؟؟؟؟ و اين مكسب ESRI من هذا المكسب الذى حصلت عليه بواسطة أدواتهم و مكتباتهم البرمجية؟؟؟؟؟؟؟ لذلك تبيع برنامج ArcGIS Engine للمبرمجين و الشركات و تقول لهم بهذا البيع الأن لك الحق بأستخدامها لقد حصلنا على حقنا .
لا يعتقد البعض منكم ان هذا طمع من شركة ESRI هذا حقها بنسبة 100% و لا يقبل شرع ولا قانون بغير ذلك.
نرجع لبرمجتنا طبعاً بعد عمل هذا البرنامج المستقل لكى يعمل بشكل صحيح لابد له من أرضية يستطيع العمل عليها اى بمعنى ادق اذا صنعت لك برنامج مستقل و اعطيتة لك و أخذتة انت على جهازك و بدات العمل علية من اين سيفهم جهازك عند العمل عليه ما هى ادوات ArcGIS , اذا كان البرنامج فية اداة لعد الطبقات Layers مثلاُ من اين سيفهم جهازك الجاهل باعمال الGIS بمعنى كلمة Layers من الذى سيبلغة بمعناها و معنى جميع الأشياء الاخرى الخاصة ببرنامج الArc ؟؟؟؟
هنا ياتى دور ال ArcGIS Engine Runtime 9.2 و هذا واضح من معناه انه وقت عمل البرنامج الذى تم صناعتة بالArcEngine سيعمل ال Runtime على ان يفهم و يبلغ الحاسب بمعنى كل الأشياء التى يقوم بها البرنامج الذى قمت بتصميمة و اعطاءة لك.
ملحوظة : يمكن ان يعمل الArcGIS Dektop 9.2 أو الArcGIS Engine 9.2 نفس عمل الArcGIS Engine Runtime 9.2 .
سأصيغ لك الفكرة بشكل بسيط حيث انى اشعر ان البعض سيحدث عنده دمج فى الافكار و البرامج...انت مدرب فنى لفريق كرة قدم و لديك الفريق كامل و مجهز و لقد صممت خطة ليلعب بها فريقك امام فريق أخر و بالطبع سيتم لعب هذة المباراة فى مكان واحد فقط الا وهو المستطيل الأخضر للملعب داخل الأستاد و امام الجماهير و لا يمكن ان تلعب فى اى مكان أخر.
المدير الفنى: انت (ميرمج نظم المعلومات الجغرافية)
فريقك: هم البرامج التى تتيح لك وضع الخطة (لغة برمجة – برنامج برمجى – ArcGIS Engine 9.2 )
الخطة : هى تفكيرك فى صناعة البرنامج و أخراجة.
الجماهير : هم المستخدمين للبرنامج الذى صنعته.
الأستاد : هو الجهاز الذى سيعمل عليه البرنامج الذى صنعتة.
الملعب او النجيلة الخضراء: هى البرامج التى تتيح لبرنامجك ان ينفذ خطتة و يقوم بوظيفتة و تلك البرامج هى ArcGIS Dektop 9.2 أو ArcGIS Engine 9.2 أوArcGIS Engine Runtime 9.2
و اريد التنويه على ان ESRI لم تغفل حقها ايضاً فى ان المستخدمين للبرامج التى قام المبرمج بصناعتها سوف يستخدمون أدوات من صنع ESRI لذلك فبرنامج الRuntime يبيعونة ايضاً لضمان حقهم و الكسب المشروع و لضمان عمل البرامج التى تم تصميمها بشكل جيد على أى جهاز يوجد علية الRuntime , بحيث لا يحتاج المستخدم النهائى للبرنامج الذى تم تصميمة لشراء ArcGIS Desktop او ArcGIS Engine و يكتفى بشراء البرنامج الذى تم تصميمة من المبرمجين و شراء الArcEngine Runtime من ESRI.
ثالثاُ: عمل صفحات انترنت بها ادوات من برامج نظم المعلومات الجغرافية
بالنسبة لصفحات الويب هى نفس فكرة التى تقوم عليها فى الجزء السابق و لكن الفرق ان بدلاً من ArcGIS Engine هناك برنامج اسمه ArcGIS Server 9.2
هذا البرنامج يقوم بأعطاءك نفس الأدوات و المكتبات التى يتيحها لك ال Engine و لكن يمكنك من أستخدامها فى برمجة صفحات الويب هذا , و أيضاً يقوم نفس البرنامج بمهمة أرضية الملعب الذى يعمل علية برنامجك.
من المعروف لمستخدمى الانترنت ان عند الاتصال باى صفحة على الانترنت يقوم ال متصفح Internet Browser بالأتصال بخادم Server هذا الموقع.
فاذا قمت بتصنيع GIS Web Application فلابد عليك من وضعها على سيرفر لكى تتيح لاى مستخدم على الشبكة ان يتصل و يستخدم هذة الصفحة , و بالتالى فلابد من تواجد ال ArcGIS Server على هذا الخادم او الجهاز الServer لكى يقوم بوظيفة الملعب للبرنامج الذى يستخدمة المستخدم على الشبكة.
و من هنا ارجو ان تكون وضحت الفكرة كلها و وضحت فكرة برمجة نظم المعلومات الجغرافية بطرقها و برامجها المختلفة....كما ذكرنا كيف البدأ فى البرمجة و تعلمها لابد على من ذكر كيفية البدأ فى تعلم الربط بينهما فعلياً
لابد من تعلم البرمجة حتى تستطيع تعلم الربط بينهما
نصيحة عامة حاول ان تحسن نفسك فى اللغة الأنجليزية اذا كانت غير جيدة لان معظم التعليم المتقدم فى نظم المعلومات الجغرافية و برمجتها باللغة الانجليزية.
أبدأ بالدخول على موقع ESRI و الدخول على هذا اللينك
http://training.esri.com/gateway/ind...cannedsearch=2و هذا عبارة عن فيديوهات مجانية من ESRI بها شرح للعديد من أستخدامات البرامج الخاصة بها و منتجاتها المختلفة
قم بالتسجيل فى الموقع حتى تستطيع مشاهدة العروض و كل عرض مدتة ساعة تقريباً
ابدأ بفيديو
Introduction to ArcGIS for Developers
ثم
Introduction to Visual Basic 6
ثم
Learning Visual Basic for Applications for New ArcGIS Developers
ثم
Getting Started with ArcObjects in ArcGIS
ثم
Migrating to VB .NET
ثم
Building Applications with ArcGIS Server Using the Microsoft .NET Framework
ثم
Building Applications with ArcGIS Server Using the Java Platform
ثم
ArcGIS Server Setup and Administration
هذه الفيديوهات ستعطيك فكرة عامة قوية جداً عن برمجة الArc بمختلف أنواعه التى ذكرتها
و بعد ذلك تبدأ التطبيق بقدر المستطاع و ابدأ بال VBA الذى داخل الArc نفسة و ذلك لعلمى بصعوبة الحصول على ArcGIS Enigne 9.2 او ArcGIS Server 9.2
و بالطبع ابحث على الانترنت على اى كتاب او شرح لبرمجة الArcGIS و خاصة الموقع الخاص بمبرمجى ArcGIS EDN (ESRI Developer Network) شبكة مطورى ESRI و به أكواد كثيرة و مساعدات ليس لها حدود فى برمجة الArc .
http://edn.esri.com/index.cfm?fa=home.welcomeاما أفضل طريقة للوصول لمراحل متقدمة فى برمجة الArc هى عن طريق الكورسات الخاصة بشركة ESRI NEA و التى وكيلها فى مصرهى شركة Quality Standrads و هى كورسات معتمدة من ESRI و هناك حوالى 5 كورسات خاصة ببرمجة الArc و لكن أنصح بأثنين و هم الاهم و الأقوى و هم
Introduction to Programming ArcObjects Using the Microsoft.NET Framework
مدتة ثلاثة أيام كل يوم من 9 ص : 5م
سعرة 1500 جنية
Developing Applications with ArcGIS Server using the Microsoft.NET
Framework
مدتة ثلاثة أيام متتالية كل يوم من 9 ص : 5م
سعرة 1500 جنية
الكورسات الاخرى
موجودة على موقع الشركة و يوجد بالموقع طرق الأتصال و العنوان
http://www.qs4it.com/ملحوظة: ArcObjects هى كلمة تعنى المكتبات و الادوات التى تتيحها لك ESRI لأستخدامها برمجياً.
و فى نهاية الموضوع أرجو من اعضاء المنتدى تصحيح اى أخطاء ذكرتها او أضافة ما يستطيعون أضافتة و أرجو من مشرفين المنتدى التثبيت حتى تعم الفائدة و حيث ان هذة الكلمات نتاج شهور من البحث و التعلم و أخيراًارجو ان أكون وصلت للمراد و هى تعريف برمجة نظم المعلومات الجغرافية بالشكل المراد و الواضح و أرجو من الله ان أكون سبباً فى بداية اى من مستخدمى نظم المعلومات الجغرافية فى البدأ فى المضى فى طريق برمجتها حيث ان برمجة نظم المعلومات الجغرافية هى الأكثر طلباً و ندراً فى السوق المصرى و العربى كله, هذا غير ان كلما زاد عدد مبرمجى نظم المعلومات الجغرافية كلما تقدمنا فكرياً و فعلياً فى أستخدامات مجالنا الحبيب ال GIS .