Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

 
 

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

تعلم html خطوة بخطوة rushdy.net

الدرس الرابع عشر - الخرائط الصورية

الأساسيات - الألوان - الخطوط - الفقرات والقوائم - الصور والرسومات - اللينكات - الجداول1 - الجداول2 - الإطارات1 - الإطارات2 - الإطارات3 - الإطارات4 - تاجات متنوعة - الخرائط الصورية - النماذج1 - النماذج2 - التاجات الخاصة - الويب واللغة العربية - الميتا تاج - المراجع

 

 


أهلاً وسهلاً بك إلى الدرس الثالث عشر من دروس HTML. مع بداية هذا الدرس تكون قد قطعت شوطاً طويلاً مع هذه اللغة، وأصبحت قادراً على إنشاء صفحات الويب بصورة فعالة. وسيخصص هذا الدرس لمناقشة واحداً من المواضيع المتقدمة نوعاً ما والممتعة (برأيي المتواضع) في لغة HTML ألا وهو موضوع الخرائط الصورية.

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

إذن، إضافةً إلى التاجات الجديدة الخاصة بالخرائط والتي سنتعرف عليها من خلال هذا الموضوع سوف نعود أيضاً للتعامل مع تاجات الصور (بما أننا نتحدث عن خرائط صورية) كذلك سنتعامل مع اللينكات (كون الخرائط الصورية هي تطبيق آخر لللنكات).. وستحتاج أيضاً إلى القليل من الهندسة (نعم .. الهندسة. ذلك العلم الذي يجبرك المعلم فيه على حمل البيكار لترسم به دائرة.. فتكون النتيجة شكلاً عجائبياً قد يكون أي شيء .. إلا أن يكون دائرة). وأخيراً نحتاج إلى أحد برامج تحرير الصور مثل Paint لمساعدتنا في معرفة بعض التفاصيل الخاصة بالصور.

هل أنت مستعد؟ لننطلق إذن.

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

Our Map

وهذه هي الشيفرة الخاصة بإدراجها

‎‎<IMG SRC="flowers.jpg" WIDTH="320" HEIGHT="310" BORDER="0"‎>‎

والآن سوف نضيف لهذه الشيفرة خاصية جديدة من خصائص التاج <IMG> هي ‎USEMAP="#map_name"‎ والتي تخبر المتصفح أن يستخدم هذه الصورة كخريطة وذلك حسب التحديدات الموجودة في تعريف هذه الخريطة (وسنتحدث عن هذه التحديدات لاحقاً إن شاء الله). أما القيمة map_name فهي تمثل الاسم الذي نريد أن نعيّنه للخريطة (أي اسم نريده). وكما ترى فإن هذا الاسم مسبوق بإشارة #.

ما رأيك أن نسمي الخريطة باسم ourmap. عندها سوف تصبح الشيفرة كما يلي:

‎‎<IMG SRC="flowers.jpg" WIDTH="320" HEIGHT="310" BORDER="0" USEMAP="#ourmap"‎>‎

وكانت هذه هي الخطوة الأولى في تعريف الخريطة. والخطوة الثانية هي تحديد التفاصيل.


لنقم بإخبار المتصفح أننا نريد خريطة تحمل الإسم ourmap

‎<MAP NAME="ourmap">‎
...
<‎/MAP>

ولاحظ أننا لا نستخدم إشارة # مع التسمية هنا
بعد ذلك نحتاج أن نحدد المناطق الساخنة للوصلات التشعبية، ولنفترض أننا نريدها بالشكل التالي:

Shapes Map


 

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

والسؤال الآن هو، كيف نحدد هذه المناطق باستخدام HTML وكيف يمكن للمتصفح أن يميزها دون غيرها؟ والجواب هو استخدام التاج <AREA> والذي يدرج ضمن التاج السابق وبنفس عدد المناطق الساخنة التي نريدها.

‎<MAP NAME="ourmap">‎

<AREA>
<AREA>
<AREA>
<AREA>

<‎/MAP>

ومع ذلك فهذا ليس كل شيء لأننا نحتاج أولاً لتحديد شكل كل منطقة ونستخدم لهذا الغرض الخاصية SHAPE ومن ثم نحتاج لتحديد موقع كل منطقة وهذا يتم بالخاصية COORDS وأخيراً بما أن كل منطقة تمثل لينك وتشير إلى عنوان موقع ما فمن البديهي أن نستخدم خاصية تحديد المواقع وهي HREF

إلى التفاصيل...

تأخذ الخاصية SH‎APE ثلاثة قيم لتحديد شكل المنطقة الساخنة وهي:

RECT
      للأشكال المربعة والمستطيلة المنتظمة

CIRCLE
      للدوائر

POLY
      للأشكال العشوائية والمضلعة

ولدينا دائرة ومستطيل وشكلين عشوائيين، إذن تصبح الشيفرة كما يلي (دون أهمية لترتيبها):

‎<MAP NAME="ourmap">‎

‎<AREA SHAPE="poly">‎
‎<AREA SHAPE="rect">‎
‎<AREA SHAPE="circle">‎
‎<AREA SHAPE="poly">‎

<‎/MAP>


نأتي الآن إلى تحديد موقع كل شكل من الخريطة، والذي يتم باستخدام الخاصية COORDS. تأخذ هذه الخاصية قيماً رقمية تمثل إحداثيات الشكل الهندسي بالبيكسل على الخريطة (ألم أقل لك أنك ستحتاج إلى القليل من الهندسة) ومن البديهي أن تختلف دلالة كل قيمة بإختلاف الشكل المقصود. أنظر إلى الأشكال التوضيحية التالية:

Rectangle

في الشكل الرباعي المنتظم نحتاج لمعرفة إحداثيي الزاوية اليسرى العليا وإحداثيي الزاوية اليمنى السفلى. (أربعة أرقام)

Circle

أما في الدائرة فكل ما نحتاجه هو إحداثيي نقطة المركز لهذه الدائرة بالإضافة إلى معرفة نصف قطرها. (ثلاثة أرقام فقط)

Poly

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


وقد تسأل الآن، كيف نستطيع إيجاد هذه الإحداثيات؟ ما من مشكلة! هنا يأتي دور برنامج الجرافيكس، فكل ما عليك هو تحميل الصور في هذا البرنامج ثم وضع المؤشر في المكان المطلوب وسوف تشاهد إحداثيات النقطة التي يقع عليها المؤشر على الشريط الموجود أسفل نافذة البرنامج. وبالإضافة لذلك تستطيع معرفة أبعاد الصورة ككل. وعلى أية حال كل ما عليك فعله هو تسجيل إحداثيات جميع النقاط المطلوبة من أجل استخدامها في تعريف الخريطة.

Curser Location

ولنعد الآن إلى خريطتنا:
بالنسبة للشكل المستطيل كانت إحداثيات النقطة العليا هي:(28,255) وإحداثيات النقطة السفلى هي (310,300).

أما الدائرة فكانت إحداثيات نقطة مركزها هي (140,160) ونصف قطرها 175 بيكسل.

أما الشكل المضلع الأيمن (المثلث) فأن إحداثيات زواياه هي (150,10), (300,20), (315,230) وتذكر هنا أن لا أهمية للترتيب في ذكر هذه النقاط. المهم فقط أن تكون الإحداثيات دقيقة إلى حد ما.

وأخيراً فإن إحداثيات النقاط في الشكل المضلع الأيسر (الرباعي) هي: (10,10), (130,10), (110,65), (10,140)

لنقم الآن بكتابة هذه البيانات ضمن الشيفرة السابقة والتي ستصبح كما يلي:

‎<MAP NAME="ourmap">‎

‎<AREA SHAPE="poly" COORDS="10,10,130,10,110,65,10,140">‎
‎<AREA SHAPE="rect" COORDS="28,255,310,300">‎
‎<AREA SHAPE="circle" COORDS="140,160,175">‎
‎<AREA SHAPE="poly" COORDS="150,10,300,20,315,230">‎

<‎/MAP>


ماذا بقي الآن؟ بقي تعيين العناوين التي ستشير إليها اللينكات والتي سنستخدم لها الخاصية HREF. إليك عناوين أربعة من المواقع العربية الممتازة

‎<MAP NAME="ourmap">‎

‎<AREA SHAPE="poly" COORDS="10,10,130,10,110,65,10,140"‎
HREF="html-001.html">‎
‎<AREA SHAPE="rect" COORDS="28,255,310,300"‎
HREF="html-002.html">‎
‎<AREA SHAPE="circle" COORDS="140,160,175"‎
HREF="html-003.html">‎
‎<AREA SHAPE="poly" COORDS="150,10,300,20,315,230"‎
HREF="html-004.html">‎

<‎/MAP>


وأخيراً بعد تجميع الشيفرة الخاصة بإدراج الصورة مع هذه الشيفرة بالشكل التالي. (وبالمناسبة فقد قمت بالتجميع من أجل توضيح النتيجة النهائية لشيفرة الخريطة ككل. وفي الواقع أننا نستطيع وضع تعريف الخريطة في أي مكان نريده داخل الملف وليس شرطاً أن يكون قريباً من شيفرة إدراج الصورة)

‎‎<IMG SRC="flowers.jpg" WIDTH="320" HEIGHT="310" BORDER="0" USEMAP="#ourmap"‎>‎

‎<MAP NAME="ourmap">‎

‎<AREA SHAPE="poly" COORDS="10,10,130,10,110,65,10,140"‎
HREF="html-001.html">‎
‎<AREA SHAPE="rect" COORDS="28,255,310,300"‎
HREF="html-002.html">‎
‎<AREA SHAPE="circle" COORDS="140,160,175"‎
HREF="html-003.html">‎
‎<AREA SHAPE="poly" COORDS="150,10,300,20,315,230"‎
HREF="html-004.html">‎

<‎/MAP>

سوف نحصل على النتيجة التالية وحاول أن تجربها:


والآن أريد أن أثير مسألتين مهمتين في هذا السياق:
الأولى: ماذا لو أردنا إدراج هذه الخريطة أكثر من مرة في الصفحة، فهل نحتاج إلى تكرار كتابة الشيفرة <MAP> ... <‎/MAP> مع كل مرة ندرج فيها الصورة؟ الجواب قطعاً لا.!!
فطالما أننا نكتب الخاصية USEMAP فإن المتصفح يقوم بالبحث عن شيفرة الخريطة التي حددنا اسمها مع هذه الخاصية، ومن ثم يطبقها على الصورة المعطاة مهما كان عدد مرات إدراجها.

الثانية: ماذا لو قررنا إلغاء هذه الصورة ووضع صورة أخرى مكانها. هل من مشكلة؟ أيضاً لا يوجد هنا أي مشكلة. لأن تعريف الخريطة بطبيعته غير مرتبط بصورة محددة بعينها. هو فقط يعرف مناطق محددة بالشكل والموقع. ولو دققت النظر في هذا التعريف فلن تجد ما يشير إلى أنها مرتبطة بصورة بعينها، أليس كذلك؟ بل إنك لو أدرجت صورة أكبر مما يجب أو حتى صورة أصغر مما يجب واستخدمت خاصية USEMAP معهما لتشير إلى الخريطة، فلن تواجه أي مشكلة في ذلك. (وأعني هنا مشكلة للمتصفح) لكن بالطبع فالصورة الكبيرة ستحتوي على مناطق دون لينكات، والصورة الصغيرة سوف لن تحتوي على بعض الوصلات المعرفة في الخريطة

One Map, Many Pictures

والخلاصة أن تعريف الخريطة هو تعريف مشاع يوضع مرة واحدة فقط وفي أي مكان داخل الصفحة، وبشرط أن يكون ضمن <BODY> ... <‎/BODY> وبالمقابل نستطيع إدراج عشرات الصور مهما كانت طبيعتها داخل الصفحة لتكون خرائط صورية تستخدم نفس تعريف هذه الخريطة طالما أننا وضعنا الخاصية ‎USEMAP="#map_name"‎ مع هذه الصور.

 

عمل الخرائط الصورية بإستخدام برنامج الدريم ويفر :

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

ثم ستقوم برسم وتحديد مكان الدائرة علي سبيل المثال علي الصورة بحيث يكون اللينك علي هذا الجزء الذي سوف تحدده كما مبين في الصورة :

 

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

أعتقد أن هذه الطريقة أسهل بكثير .. وأوفر في الوقت والمجهود .

أتمني أن يكون درس ممتع ومفيد وقريباً مع الدرس التالي بإذن الله .. أستودعكم الله .

   

 


أخي الكريم أرجوك لا تتردد في التواصل معي إذا كان هناك أي أسئلة
سواء عن طريق البريد الإلكتروني
mohamed@rushdy.net

أو بزيارة صفحتي علي الفيس بوك .. ولا تنساني من الليك
rushdy.net on facebook facebook

 

الأساسيات - الألوان - الخطوط - الفقرات والقوائم - الصور والرسومات - اللينكات - الجداول1 - الجداول2 - الإطارات1 - الإطارات2 - الإطارات3 - الإطارات4 - تاجات متنوعة - الخرائط الصورية - النماذج1 - النماذج2 - التاجات الخاصة - الويب واللغة العربية - الميتا تاج - المراجع

 
 
    
        E-Mail : mohamed@rushdy.net
        Mobile : (+2) 0111 42 777 62
    

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

    
aman4u.net radwa.net
concord-s.com elkhalegeya.com
mforleather.com atef-khattab.com
esouqoman.com alharam-ind.com
afifi-trading.com pharma-is.com
mforleather.com yr-d.com
 
facebook twitter youtube reddit flickr linkedin Instagram delicious stumbleupon rss