إضافة علامات HTML إلى الخريطة

توضح لك هذه المقالة كيفية إضافة HTML مخصص مثل ملف صورة إلى الخريطة لتكون علامة HTML.

إشعار

لا تتصل علامات HTML بمصادر البيانات. بدلًا من ذلك، تتم إضافة معلومات الموضع مباشرةً إلى العلامة ويتم إضافة العلامة إلى خاصية markers الخرائط وهي HtmlMarkerManager.

هام

على عكس معظم الطبقات في عنصر تحكم Azure Maps Web الذي يستخدم WebGL للعرض، تستخدم علامات HTML عناصر DOM التقليدية للعرض. على هذا النحو، كلما أُضيفت علامات HTML إلى الصفحة، زادت عناصر DOM هناك. يمكن أن يتدهور الأداء بعد إضافة بضع مئات من علامات HTML. بالنسبة لمجموعات البيانات الأكبر حجمًا ضع في اعتبارك إما تجميع البيانات أو استخدام Symbol أو طبقة Bubble.

إضافة علامة HTML

تحتوي فئة HtmlMarker على نمط افتراضي. يمكنك تخصيص العلامة عن طريق تعيين خيارات لون العلامة ونصها. إن النمط الافتراضي لفئة علامة HTML هو قالب SVG الذي يحتوي على {color} و {text} عنصر نائب. قم بتعيين خصائص اللون والنص في خيارات علامة HTML للحصول على تخصيص سريع.

تنشئ التعليمات البرمجية التالية علامة HTML، وتعين خاصية اللون إلى DodgerBlue وخاصية النص إلى 10. يتم إرفاق نافذة منبثقة بالعلامة ويتم استخدام الحدث click لتبديل رؤية النافذة المنبثقة.

//Create an HTML marker and add it to the map.
var marker = new atlas.HtmlMarker({
    color: 'DodgerBlue',
    text: '10',
    position: [0, 0],
    popup: new atlas.Popup({
        content: '<div style="padding:10px">Hello World</div>',
        pixelOffset: [0, -30]
    })
});

map.markers.add(marker);

//Add a click event to toggle the popup.
map.events.add('click',marker, () => {
    marker.togglePopup();
});

للحصول على عينة عمل كاملة حول كيفية إضافة علامة HTML، راجع علامة HTML البسيطة في نماذج خرائط Azure. للحصول على التعليمات البرمجية المصدر لهذا النموذج، راجع التعليمات البرمجية المصدر لعلامة HTML البسيطة.

لقطة شاشة تعرض خريطة العالم باستخدام HtmlMarker بسيط.

إنشاء علامة HTML بقالب SVG

إن htmlContent الافتراضي لعلامة Html هو قالب SVG به مجلدات الأماكن {color} و {text} بداخله. يمكنك إنشاء سلاسل SVG مخصصة وإضافة العناصر النائبة نفسها إلى SVG إذ يقوم بتعيين color وخيارات text لتحديث العلامة هذه العناصر النائبة في SVG.

للحصول على عينة عمل كاملة حول كيفية إنشاء قالب SVG مخصص واستخدامه مع فئة HtmlMarker، راجع HTML Marker مع قالب SVG مخصص في نماذج خرائط Azure. عند تشغيل هذا النموذج، حدد الزر في الجانب العلوي الأيسر من النافذة المسمى خيارات علامة التحديث لتغيير color خيارات و text من قالب SVG المستخدم في HtmlMarker. للحصول على التعليمات البرمجية المصدر لهذا النموذج، راجع HTML Marker مع التعليمات البرمجية المصدر لقالب SVG المخصص.

لقطة شاشة تعرض خريطة للعالم مع قالب SVG مخصص مستخدم مع فئة HtmlMarker. يتضمن زرا باسم خيارات علامة التحديث، والذي عند تحديده يغير خيارات اللون والنص من قالب SVG المستخدم في HtmlMarker.

تلميح

يوفر Azure Maps web SDK العديد من قوالب صور SVG التي يمكن استخدامها مع علامات HTML. لمزيد من المعلومات، راجع مستند كيفية استخدام قوالب الصور.

إضافة علامة HTML بنمط CSS

تتمثل إحدى ميزات علامات HTML بوجود العديد من التخصيصات المذهلة التي يمكن تحقيقها باستخدام CSS. في العينة التالية، يتكون محتوى HtmlMarker من HTML وCSS التي تنشئ دبوسا متحركا يسقط في مكانه ويذبذب.

//Wait until the map resources are ready.
map.events.add('ready', function () {
    //Create a HTML marker and add it to the map.
    map.markers.add(new atlas.HtmlMarker({
        htmlContent: "<div><div class='pin bounce'></div><div class='pulse'></div></div>",
        position: [-0.1406, 51.5018],
        pixelOffset: [5, -18]
    }));
});

The CSS:

    <style>
        .pin {
            width: 30px;
            height: 30px;
            border-radius: 50% 50% 50% 0;
            background: #00cae9;
            position: absolute;
            transform: rotate(-45deg);
            left: 50%;
            top: 50%;
            margin: -20px 0 0 -20px;
        }

            .pin:after {
                content: "";
                width: 14px;
                height: 14px;
                margin: 8px 0 0 8px;
                background: #e6e6e6;
                position: absolute;
                border-radius: 50%;
            }

        .bounce {
            animation-name: bounce;
            animation-fill-mode: both;
            animation-duration: 1s;
        }

        .pulse {
            background: #d6d4d4;
            border-radius: 50%;
            height: 14px;
            width: 14px;
            position: absolute;
            left: 50%;
            top: 50%;
            margin: 11px 0px 0px -12px;
            transform: rotateX(55deg);
            z-index: -2;
        }

            .pulse:after {
                content: "";
                border-radius: 50%;
                height: 40px;
                width: 40px;
                position: absolute;
                margin: -13px 0 0 -13px;
                animation: pulsate 1s ease-out;
                animation-iteration-count: infinite;
                opacity: 0;
                box-shadow: 0 0 1px 2px #00cae9;
                animation-delay: 1.1s;
            }

        @keyframes pulsate {
            0% {
                transform: scale(0.1, 0.1);
                opacity: 0;
            }

            50% {
                opacity: 1;
            }

            100% {
                transform: scale(1.2, 1.2);
                opacity: 0;
            }
        }

        @keyframes bounce {
            0% {
                opacity: 0;
                transform: translateY(-2000px) rotate(-45deg);
            }

            60% {
                opacity: 1;
                transform: translateY(30px) rotate(-45deg);
            }

            80% {
                transform: translateY(-10px) rotate(-45deg);
            }

            100% {
                transform: translateY(0) rotate(-45deg);
            }
        }
    </style>

للحصول على عينة عمل كاملة حول كيفية استخدام CSS وHTML لإنشاء علامة على الخريطة، راجع CSS Styled HTML Marker في خرائط Azure Samples. للحصول على التعليمات البرمجية المصدر لهذا النموذج، راجع التعليمات البرمجية المصدر لعلامة HTML بنمط CSS.

لقطة شاشة تعرض علامة HTML بنمط CSS.

علامات HTML القابلة للسحب

يوضح هذا النموذج كيفية جعل علامة HTML قابلة للسحب. تدعم علامات HTML أحداث drag، و dragstart، و dragend.

للحصول على عينة عمل كاملة حول كيفية استخدام CSS و HTML لإنشاء علامة على الخريطة، راجع علامة HTML القابلة للسحب في نماذج خرائط Azure. للحصول على التعليمات البرمجية المصدر لهذا النموذج، راجع التعليمات البرمجية المصدر لعلامة HTML القابلة للسحب.

لقطة شاشة تعرض خريطة للولايات المتحدة مع سحب إبهام أصفر لإظهار علامة HTML قابلة للسحب.

إضافة أحداث الماوس إلى علامات HTML

للحصول على عينة عمل كاملة حول كيفية إضافة الماوس وسحب الأحداث إلى علامة HTML، راجع أحداث HTML Marker في خرائط Azure Samples. للحصول على التعليمات البرمجية المصدر لهذا النموذج، راجع التعليمات البرمجية المصدر لأحداث HTML Marker.

لقطة شاشة تعرض خريطة للعالم مع HtmlMarker وقائمة بأحداث HtmlMarker التي يتم تمييزها باللون الأخضر عند إطلاق هذا الحدث.

الخطوات التالية

تعرّف على المزيد حول الفئات والأساليب المُستخدمة في هذه المقالة:

لمزيدٍ من أمثلة التعليمات البرمجية لإضافتها إلى الخرائط، راجع المقالات التالية: