قسم الجغرافيا والخرائط scuarts

عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا
ادارة المنتدي
قسم الجغرافيا والخرائط scuarts

منتدى قسم الجغرافيا بكلية الاداب جامعة قناة السويس

المواضيع الأخيرة

» خرائط رقمية للعالم من موقع الامم المتحده لعام 2008
الأربعاء يونيو 29, 2011 4:00 pm من طرف سما

» لكل اسبوع رواية
الأربعاء يونيو 29, 2011 3:53 pm من طرف سما

» يلا ادخل عرفنا بنفسك
الأربعاء يونيو 29, 2011 3:30 pm من طرف سما

» الاحداثيات المسقطة و الاحداثيات الجغرافية
الجمعة أبريل 22, 2011 8:41 pm من طرف Admin

» موقع فرنسي لتحميل الخرائط الطبوغرافية
الجمعة أبريل 22, 2011 8:37 pm من طرف Admin

» خطوط الكنتور(تعاريف)(خصائص)(تطبيق)
الجمعة أبريل 22, 2011 8:35 pm من طرف Admin

» السد العالى
الجمعة أبريل 22, 2011 8:20 pm من طرف Admin

» لا اله الا الله
الجمعة أبريل 22, 2011 8:09 pm من طرف Admin

» هام جداا
الأحد يناير 16, 2011 10:35 pm من طرف Admin


    برمجة نظم المعلومات الجغرافية

    شاطر
    avatar
    Admin
    Admin

    ذكر السرطان

    الحصان
    عدد المساهمات : 181
    تاريخ التسجيل : 11/07/2010
    العمر : 27
    الموقع : بورسعيد

    برمجة نظم المعلومات الجغرافية

    مُساهمة من طرف Admin في السبت نوفمبر 13, 2010 8:31 pm

    برمجة نظم المعلومات الجغرافية




    أولاً ما هى برمجة نظم المعلومات الجغرافية؟


    هى بشرح مبسط عبارة عن أستخدام لغات البرمجة المختلفة فى توظيف أدوات برامج نظم المعلومات الجغرافية بالأسلوب المراد حسب الحاجة.

    ثانياً لماذا برمجة نظم المعلومات الجغرافية؟


    - لعمل أدوات و Tools جديدة
    غير موجودة داخل برامج الGIS مثل ArcGIS Desktop .

    - و لعمل برامج مستقلة بذاتها StandAlone Applications
    تستخدم اى أدوات من أدوات برنامج الGIS حيث فى بعض الأحيان تكون هناك شركة او مؤسسة تريد العمل على نوع واحد من الادوات او التحليلات التى تتيحها برامج الGIS مثل أدخال البيانات المكانية مثلاً (Spatial Data Entry) فمثلاُ وزارة الأحصاء المسؤولة عن أحصاء و تعداد السكان داخل الدولة تريد برنامج يتيح عرض خريطة موقع عليها العمارات السكنية و يقوم العاملين بأختيار العمارة او الوحدة السكنية و يقوم بأدخال عدد السكان بها و أعمارهم و عدد الأسر و عدد الأدوار ما الى ذلك من بيانات, اول شئ خطر على بالكم الأن صورة ذهنية لبرنامج ArcGIS Desktop و أختيار ال Feature الذى يمثل الوحدة السكنية و فتح ال Attribute الخاص بها و أدخال البيانات المطلوبة. و لكن برنامج مثل ArcGIS Desktop برنامج قوى و كبير و غالــــــــــــــــى و يحتاج لحاسوب عالى القدرة و عالى الذاكرة و يحتاج الى تصريح و يحتوى على مئات من الادوات و أساليب التحليل المختلفة التى ليس لنا حاجة بها لهذا الغرض, و بجوار كل ذلك يحتاج هذا البرنامج الى متخصص يستطيع العمل علية و متخصص نظم معلومات جغرافية. و من هنا تاتى وظيفة برمجة الGIS حيث تذهب هذة المؤسسة او الوزارة او اياً كان الى الشركات المتخصصة فى نظم المعلومات الجغرافية و تعرفهم بالقدرات التى يريدونها و من ثم يبدأ عمل المبرمجيين GIS Developers فى تصميم برنامج بسيط و صغير و رخيص السعر و لا يحتاج الى حاسب عالى القدرة ولا عالى الذاكرة و لا يحتاج الى متخصصين فى الGIS و يقوم هذا البرنامج بأداة الوظيفة المرادة فقط ليس الا و التى هى فى مثالنا أدخال بيانات خاصة بالوحدات السكنية فقط.

    - و نفس الشئ بنسبة لبرمجة صفحات الانترنت الخاصة بأعمال الGIS
    (GIS Web Applications) او (Web Mapping Applications) و لكن كل الفرق ان عملية أدخال البيانات ستكون على الانترنت و مثلاً يمكن القول ان نفس الوزارة الخاصة بأحصاء السكان تريد ان يعمل موظفيها على نفس عملية ادخال البيانات و لكن فى كل محافظة على حدة و من ثم يتم عمل صفحة انترنت بها هذة القدرة على أدخال البينات متاحة لكل فروع الوزارة بجميع المحافظات و من ثم تجميع كل تلك البيانات المدخلة على قاعدة بيانات واحدة بواسطة الأنترنت.

    أرجو ان تكون وضحت الصورة من الغرض من أستخدام البرمجة فى ال GIS و اتمنى مع الشرح التالى أن تضح الصورة أكثر و أكثر إن شاء الله.

    ماذا يحتاج مبرمج نظم المعلومات الجغرافية GIS Developer ؟

    1- اولا دراية قوية بالبرمجة.
    2- دراية قوية بنظم المعلومات الجغرافية و هذا ما اتوقع انه هو الغالب فى هذا المنتدى.
    3- دراية بالقدرة على الربط بين البرمجة و نظم المعلومات الجغرافية.

    و سوف أذكر كل واحدة منهم و البرامج المستخدمة فيهم و سأخص بالذكر برامج منتجات شركة ESRI و Microsoft .

    أولاً الدراية بالبرمجة :إن مبرمج نظم المعلومات الجغرافية لابد ان يكون مبرمج بما فى الكلمة من معنى و لغات البرمجة متعددة و يمكن أستخدامها كلها فى برمجة نظم المعلومات الجغرافية و سوف اتكلم فى هذة النقطة على البرمجة وحدها و لغاتها و برامجها لذلك اذا كنت مبرمج و عندك دراية قوية بالبرمجة فانتقل الى النقطة الثانية .


    اما لغات البرمجة فمنها
    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 و حاول الحصول على كتب بالغة العربية او الانجليزية و يكون افضل و ما أكثر هذة الكتب على الانترنت لتعليم اللغة و ابدأ بالتعلم و التطبيق

    بعد ان تتقدم فى التعلم حاول الحصول على برنامج 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 عندما تبدأ فى تنصيب البرنامج تجد ان هناك أشياء كثيرة متاحة للتنصيب و من هذة الأشياء
    ArcGIS Desktop SDK for Microsoft .NET Framework

    ArcGIS Desktop SDK for Visual Basic 6

    ArcGIS Desktop SDK for Cisual C++


    كلمة 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 و الدخول على هذا اللينك

    اضغط هنا

    و هذا عبارة عن فيديوهات مجانية من 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 بمختلف أنواعه التى ذكرتها

      الوقت/التاريخ الآن هو الجمعة أكتوبر 20, 2017 5:53 pm