السبت، 10 أكتوبر 2009

Rote Map خريطة الوجهات : تحدي و تصميم على اكتشاف المجهول

Rote map  أو مصطلحنا على تسميته بخريطة الوجهات وهي أول خدمة سأقوم بشرحها من مجموعة من الخدمات التي يقدمها المشروع و التي ذكرتها في مقالتي مقدمة لمشروع التخرج : تصميم موقع لشركة طيران يدعم خدمات الجوال .

أول سؤال قد يخطر في عقل أي قارئ ما هي هذه الخدمة؟
هي عبارة عن خريطة تفاعلية وأقصد هنا بتفاعلية أي تتفاعل مع المستخدم عند ضغط على أحد البيانات الموجودة عليها و هذه البيانات هي عبارة عن أسماء المدن التي تسير لها الشركة رحلات .
عندما يقوم أي مستخدم لهذه الخدمة بالضغط على اسم المدينة ترسم له خطوط توضح مسار هذه الرحلة ابتداء من مركز الشركة أو المطار التي تسير منه الشركة رحلاتها .
و حتى تتضح الفكرة أكثر أنظر للصورة التالية التي تمثل هذه الخدمة في المشروع.


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

في بداية العمل كان السؤال الكبير الذي طرحته على نفسي : كيف يمكن أن تنجز هذه الخدمة؟ ما هي الأدوات أو البرامج أو التقنيات التي ستمكنني من إنجازها و جعلها حقيقة وليس مجرد حبر على وراق وصور في العقل فقط؟
أول فكرة جالت في عقلي هو استخدام برنامج الفلاش و لكن سرعان ما استبعدتها .
لم يكن استخدام برنامج الفلاش منطقياً ؟ لماذا؟
السبب في ذلك لأن المدن و بياناتها مخزنة في قاعدة البيانات , هل يمكن ربط قاعدة البيانات مع برامج الفلاش ؟؟؟؟؟؟؟؟؟؟
أبعدت الفكرة و لم أبحث حتى عن جواب لهذا السؤال.
الفكرة الأخرى كانت بتصميم الخريطة و كل محتويتها عن طريق برنامج visual basic  نفسه , ولكن هذه عملية معقدة و مشروع بحد ذاته؟؟؟؟؟؟؟؟؟؟؟
إذاً ما هو الحل ؟ هذا هو السؤال الكبير الذي يحتاج لجواب و لم أكن أعلم كيف أبدء في البحث عن جواب له.

بحثت لأيام و أيام في الأنترنت و لكن لم أصل لشيء و السبب هو ليس عدم وجود الحل و لكن عدم معرفتي عما ابحث ؟
هل أبحث عن برنامج أو مجرد أداة يتم تنزيلها و أستخدامها مباشرتاً؟ ماهو المصطلح أو العبارة التي توصلني لمثل هذه الأداة او البرنامج؟
بحثت في الأدوات الخاصة  بـ ASP.net  و التي تعرضها الشركات ولكن لم أجد شيء............ حتى و اخيراً بعد جهد جهيد وصلت لمطلبي .
يبدو أني كنت أبحث فعلاً بكلمات و مصطلحات خاطئه .
لقد كان الحل أدوات جاهزها  وفرتها مكرسوفت نفسها و تسمى  Windows Live Tools for Microsoft Visual Studio   .
وهنا بدات مرحلة الإستكشاف, إستكشاف هذه الأداة الجديدة و طرق التعامل معها , و هنا واجهتنا مشكلة جديدة و هي أن معظم أو أغلب المواقع كانت تتكلم عن هذه الأداة و التعامل معها  بلغة  الـ JAVA  والتي كانت هي الأخرى معرفتنا بها محدودة.
و مع ذلك كله حاولنا فهمها و هنا كان الإكتشاف الكبير أو بكلمة أخرى المشكلة الكبرى : لغة JAVA  لا تتعامل مع قواعد البيانات.
و بالبحث و جدنا أنه يمكن أن نتعامل مع هذه الأداة بلغة Visual Basic و هذا ما أرحنا قليلاً.
ولا كن لم يكن هناك وقت للراحة فحتى الآن لم ينجز شيء , فخطوتنا التالية هي إظهر المدن على الخريطة وهذا يتطلب معرفة الإحداثيات الخاصة بكل مدينة و هذه الأخيرة لم نكن نعلم من أين نستطيع جلبها عدا عن اكتشافنا أنه يوجد نوعين من الإحداثيات
و كانت الخريطة  تتعامل مع أحدها فقط .
و هنا حاولنا البحث عن المواقع التي تعطي الأحداثيات للمدن و لكن كان بعضها يطلب إدخال أسم المدينة و الأخر يطلب رمز المدينة و كانت تختلف الإحداثيات لأسباب لم نعرفها ووووو
إلى ان وجدنا أن الحل يكمن مع الأداة نفسها حيث يمكن معرفت الإحداثيات عن طريق عمل كود برمجي صغير يعرض إحداثيات الطول و العرض عند الضغط على أسم المدينة مع مراعات الأرتفاع عن الأرض و غيرها من أمور أخرى.
(MsgBox(e.latLong.Latitude & " " & e.latLong.Longitude

و المرحلة الأخيرة كانت  بتمثيل مسار الرحلة عن طريق وصل المدن مع بعضها البعض كما هو واضح في الصورة الأولى التي أدرجتها.
لقد كان هناك الكثير الذي نريد عمله لتظهر هذه الخدمة بأفضل أشكلها ولكن لم يتوفر الوقت لذلك .
فمثلآ كان يمكن ان نضع طبقة على الخريطة بكاملها تكون بلون موحد لكل أجزاء الخريطة تظهر فيها النقاط التي فقط قمنا بإظهارها وأسماء البلدان التي نريدها و لكن لم يتوفر لنا الوقت لذلك .
 و مع هذا ما أنجزناه في هذه الخدمة كان بالنسبة لنا نجاح كاسح , نعم نجاح كاسح نفخر به .
قد يتسائل البعض لماذا ؟
فعلاً لماذا ؟ فكما سترى في مقالاتي القادمة كانت هناك خدمات إنجازها أصعب بكثير من إنجاز هذه الخدمة و قد لا تقارن بها حتى من ناحية الصعوبة .
أما السبب و راء الإصرار على إنجازها:
فقد كان التشكيك في عدم مقدرتنا على إنجازها و تحويلها لواقع ملموس و ليس مجرد حبر على ورق .
و هو أمر قد حز في نفسي  ونفوس زملائي و لأنه لم يسبق لأحد من قبل أن شكك في مقدرتي على عمل شيء, وهذا ما جعل أنجاز هذه الخدمة تحدي لي بذات و لزملائي الذين عملت معهم.
تحدي نعلم به الجميع و بالخصوص من شكك في مقدرتنا على إنجازها بأن لا شيء يقف في وجه طموحنا أو يشكك في مقدرتنا على إكتشاف المجهول و جعل ما هو خيال واقع ملموس .

ولمن أراد أن يتعرف على هذه الأداة أكثر
 هنا مثال حي مع الأكواد الخاصة بكل عملية تقوم بها
مثال أخر لأستخدام الأداة لمن أراد تجربتها
مثال يمكن تحميله والإستفادة منه

هناك تعليقان (2):

  1. سلام عليكم
    اولا استمتعت بقراء المقال واعجبنتي الافكار التي بالمشروع واتمنى لك التوفييق.
    وعندي بس ملاحظة اتمنى تتقبلينها ذكرتي بالمقال ان (لغة JAVA لا تتعامل مع قواعد البينات) واحب اقول لك ان من نقل لك ذا المعلومه مخطي لان لغة الجافا مثثلها مثل اي لغة اخرى واعتقد انها تتفوق على كثير من اللغات.
    ارجوا زيارت مدونتي التي حديثة العهد على الانترنت على ذا الرابط
    www.javayours.com

    ردحذف
  2. شكراً لك اخي على زيارتك

    ردحذف