مقدمة
تعرض السمة
InfoWindow محتوى (عادةً نصًا أو صورًا) في نافذة منبثقة فوق الخريطة، في موقع جغرافي معيّن. تحتوي نافذة المعلومات على منطقة محتوى وجزء مدبّب. ويكون طرف الجزء المدبّب متصلاً بموقع جغرافي محدّد
على الخريطة. تظهر النوافذ المنبثقة لقارئات الشاشة على شكل مربّع حوار.
عادةً ما تربط نافذة معلومات بـ علامة، ولكن يمكنك أيضًا ربطها بخط عرض/خط طول معيّنَين، كما هو موضّح في القسم حول إضافة نافذة معلومات أدناه.
بشكل عام، النوافذ المنبثقة هي نوع من التراكبات. للحصول على معلومات حول الأنواع الأخرى من التراكبات، يُرجى الاطّلاع على الرسم على الخريطة.
إضافة نافذة معلومات
يأخذ الدالة الإنشائية
InfoWindow كائنًا حرفيًا من
InfoWindowOptions، يحدّد المعلمات الأولية
لعرض نافذة المعلومات.
يحتوي الكائن الحرفي InfoWindowOptions
على الحقول التالية:
contentيحتوي على سلسلة نصية أو عقدة DOM لعرضها في نافذة المعلومات.pixelOffsetيحتوي على إزاحة من طرف نافذة المعلومات إلى الموقع الجغرافي الذي ترتكز عليه نافذة المعلومات. في الواقع، لن تحتاج إلى تحديد هذا الحقل. يمكنك تركه على القيمة التلقائيةpositionيحتوي علىLatLngالذي ترتكز عليه هذه النافذة المنبثقة. ملاحظة: يمكن ربطInfoWindowإما بكائنMarker(في هذه الحالة، يستند موضعها إلى موقع العلامة) أو على الخريطة نفسها فيLatLngمحدّد. إحدى طرق استردادLatLngهي استخدام خدمة الترميز الجغرافي. سيؤدي فتح نافذة معلومات على علامة إلى تعديلpositionتلقائيًا.maxWidthيحدّد الحد الأقصى لعرض النافذة المنبثقة بالبكسل. تتوسّع نافذة المعلومات تلقائيًا لتناسب محتواها، ويتم تلقائيًا نقل النص إلى سطر جديد إذا ملأت نافذة المعلومات الخريطة. إذا أضفتmaxWidth، سيتم تلقائيًا نقل النص إلى سطر جديد لفرض العرض المحدّد. إذا وصلت نافذة المعلومات إلى الحد الأقصى للعرض وكان هناك مساحة رأسية على الشاشة، قد تتوسّع نافذة المعلومات رأسيًا.
قد يحتوي محتوى InfoWindow على سلسلة نصية أو مقتطف HTML أو عنصر DOM. لضبط المحتوى، يمكنك تحديده ضمن InfoWindowOptions أو استدعاء
setContent() على InfoWindow بشكل صريح.
إذا أردت تحديد حجم المحتوى بشكل صريح، يمكنك وضعه في عنصر
<div> وتنسيق <div> باستخدام
CSS. يمكنك أيضًا استخدام CSS لتفعيل التمرير. يُرجى العِلم أنّه إذا لم تفعِّل التمرير وتجاوز المحتوى المساحة المتاحة في نافذة المعلومات، قد يخرج المحتوى من نافذة المعلومات.
فتح نافذة معلومات
عند إنشاء نافذة معلومات، لا يتم عرضها تلقائيًا على الخريطة.
لإظهار نافذة المعلومات، عليك استدعاء طريقة open() على InfoWindow، مع تمرير كائن حرفي InfoWindowOpenOptions يحدّد الخيارات التالية:
mapيحدّد الخريطة أو بانوراما في "التجوّل الافتراضي" التي سيتم فتحها.anchorيحتوي على نقطة ارتكاز (مثلMarker). إذا كان الخيارanchorهوnullأو غير محدّد، سيتم فتح النافذة المنبثقة في السمةposition.
TypeScript
// This example displays a marker at the center of Australia. // When the user clicks the marker, an info window opens. async function initMap(): Promise<void> { // Import the needed libraries. await google.maps.importLibrary("maps"); await google.maps.importLibrary("marker"); // Get the map element and the inner map from it. const mapElement = document.querySelector('gmp-map') as google.maps.MapElement; const innerMap = mapElement.innerMap; // Get the center of the map. const center = mapElement.center; // Create the info window content. const heading = document.createElement("h1"); heading.textContent = "Uluru (Ayers Rock)"; const content = document.createElement("div"); const infoParagraph = document.createElement("p"); infoParagraph.textContent = `Uluru, also referred to as Ayers Rock, is a large sandstone rock formation in the southern part of the Northern Territory, central Australia. It lies 335 km (208 mi) south west of the nearest large town, Alice Springs; 450 km (280 mi) by road. Kata Tjuta and Uluru are the two major features of the Uluru - Kata Tjuta National Park. Uluru is sacred to the Pitjantjatjara and Yankunytjatjara, the Aboriginal people of the area. It has many springs, waterholes, rock caves and ancient paintings. Uluru is listed as a World Heritage Site.`; content.appendChild(infoParagraph); const link = document.createElement("a"); link.href = "https://en.wikipedia.org/w/index.php?title=Uluru"; link.textContent = "https://en.wikipedia.org/w/index.php?title=Uluru"; link.target = "_blank"; content.appendChild(link); // Create the info window. const infowindow = new google.maps.InfoWindow({ headerContent: heading, content: content, ariaLabel: "Uluru", maxWidth: 500, // Set max width (optional). }); // Create the marker. const marker = new google.maps.marker.AdvancedMarkerElement({ position: center, map: innerMap, title: "Uluru (Ayers Rock)", gmpClickable: true, }); // Open the info window when the map loads. infowindow.open({ anchor: marker, map: innerMap, }); // Open the info window when the marker is clicked. marker.addEventListener("gmp-click", () => { infowindow.open({ anchor: marker, map: innerMap, }); }); } initMap();
JavaScript
// This example displays a marker at the center of Australia. // When the user clicks the marker, an info window opens. async function initMap() { // Import the needed libraries. await google.maps.importLibrary("maps"); await google.maps.importLibrary("marker"); // Get the map element and the inner map from it. const mapElement = document.querySelector('gmp-map'); const innerMap = mapElement.innerMap; // Get the center of the map. const center = mapElement.center; // Create the info window content. const heading = document.createElement("h1"); heading.textContent = "Uluru (Ayers Rock)"; const content = document.createElement("div"); const infoParagraph = document.createElement("p"); infoParagraph.textContent = `Uluru, also referred to as Ayers Rock, is a large sandstone rock formation in the southern part of the Northern Territory, central Australia. It lies 335 km (208 mi) south west of the nearest large town, Alice Springs; 450 km (280 mi) by road. Kata Tjuta and Uluru are the two major features of the Uluru - Kata Tjuta National Park. Uluru is sacred to the Pitjantjatjara and Yankunytjatjara, the Aboriginal people of the area. It has many springs, waterholes, rock caves and ancient paintings. Uluru is listed as a World Heritage Site.`; content.appendChild(infoParagraph); const link = document.createElement("a"); link.href = "https://en.wikipedia.org/w/index.php?title=Uluru"; link.textContent = "https://en.wikipedia.org/w/index.php?title=Uluru"; link.target = "_blank"; content.appendChild(link); // Create the info window. const infowindow = new google.maps.InfoWindow({ headerContent: heading, content: content, ariaLabel: "Uluru", maxWidth: 500, // Set max width (optional). }); // Create the marker. const marker = new google.maps.marker.AdvancedMarkerElement({ position: center, map: innerMap, title: "Uluru (Ayers Rock)", gmpClickable: true, }); // Open the info window when the map loads. infowindow.open({ anchor: marker, map: innerMap, }); // Open the info window when the marker is clicked. marker.addEventListener("gmp-click", () => { infowindow.open({ anchor: marker, map: innerMap, }); }); } initMap();
تجربة نموذج
يضبط المثال التالي maxWidth لنافذة معلومات:
عرض مثال.
ضبط التركيز على نافذة معلومات
لتعيين التركيز على نافذة معلومات، استدعِ طريقة focus(). ننصحك باستخدام هذه الطريقة مع حدث visible
قبل التركيز. لن يكون لاستدعاء هذه الطريقة على نافذة منبثقة غير مرئية
أي تأثير. استدعِ open() لإظهار نافذة معلومات.
إغلاق نافذة معلومات
تظل نافذة المعلومات مفتوحة تلقائيًا إلى أن ينقر المستخدم على عنصر التحكّم في الإغلاق (علامة X في أعلى يسار نافذة المعلومات) أو يضغط على مفتاح ESC.
يمكنك أيضًا إغلاق نافذة المعلومات بشكل صريح عن طريق استدعاء طريقة close().
عند إغلاق نافذة معلومات، يعود التركيز إلى العنصر الذي كان التركيز عليه قبل فتح نافذة المعلومات. إذا كان هذا العنصر غير متاح،
يعود التركيز إلى الخريطة. لتجاوز هذا السلوك، يمكنك الاستماع إلى
حدث closeclick وإدارة التركيز يدويًا كما هو موضّح في
المثال التالي:
infoWindow.addListener('closeclick', ()=>{ // Handle focus manually. });
نقل نافذة معلومات
هناك طريقتان لتغيير موقع نافذة معلومات:
- استدعاء
setPosition()على نافذة المعلومات، أو - ربط نافذة المعلومات بعلامة جديدة باستخدام طريقة
InfoWindow.open()ملاحظة: إذا استدعيتopen()بدون تمرير علامة، سيستخدمInfoWindowالموضع المحدّد عند الإنشاء من خلالInfoWindowOptionsالكائن الحرفي.
التخصيص
لا يقدّم الصف InfoWindow خيارات التخصيص. بدلاً من ذلك،
يمكنك الاطّلاع على
مثال النافذة المنبثقة
المخصّصة
لمعرفة كيفية إنشاء نافذة منبثقة مخصّصة بالكامل.