popover
, मैप पर किसी जगह के ऊपर एक डायलॉग विंडो में कॉन्टेंट (आम तौर पर टेक्स्ट या इमेज) दिखाता है. इस पॉपओवर में कॉन्टेंट एरिया और पतला स्टेम होता है. स्टेम का सिरा, मैप पर किसी जगह से जुड़ा होता है. पॉपओवर, स्क्रीन रीडर को डायलॉग के तौर पर दिखते हैं.
आम तौर पर, पॉपओवर को इंटरैक्टिव मार्कर से जोड़ा जाता है. हालांकि, पॉपओवर को किसी खास LatLngAltitude
कोऑर्डिनेट से भी जोड़ा जा सकता है. इसके अलावा, इसे मार्कर से ऑफ़सेट भी किया जा सकता है.
पॉपओवर जोड़ना
PopoverElement
कंस्ट्रक्टर, PopoverElementOptions
ऑब्जेक्ट लिटरल लेता है. यह पॉपओवर को दिखाने के लिए शुरुआती पैरामीटर तय करता है.
PopoverElementOptions
ऑब्जेक्ट लिटरल में ये फ़ील्ड शामिल होते हैं:
positionAnchor
: मार्कर को दिखाने के लिएLatLngAltitude
पोज़िशन. अगर मार्कर का इस्तेमाल किया जा रहा है, तो मार्कर की पोज़िशन का इस्तेमाल किया जाएगा.altitudeMode
: पॉपओवर की ऊंचाई को कैसे समझा जाता है.lightDismissDisabled
: इससे यह तय होता है कि जब उपयोगकर्ता पॉपओवर के बाहर क्लिक करता है याEsc
कुंजी दबाता है, तब पॉपओवर खुला रहता है या नहीं. इस विकल्प कोtrue
पर सेट करने पर, मैप पर एक साथ कईlightDismissDisabled
पॉपओवर दिखाए जा सकते हैं.open
: इससे तय होता है कि पॉपओवर खुला होना चाहिए या नहीं. डिफ़ॉल्ट रूप से, यहfalse
पर सेट होती है.
PopoverElement
के कॉन्टेंट में टेक्स्ट की स्ट्रिंग, एचटीएमएल का स्निपेट या DOM एलिमेंट शामिल हो सकता है. header
या default
स्लॉट में PopoverElement
को साफ़ तौर पर जोड़कर, कॉन्टेंट सेट किया जाता है.
अगर आपको कॉन्टेंट का साइज़ तय करना है, तो उसे <div>
एलिमेंट में रखें. इसके बाद, सीएसएस की मदद से <div>
को स्टाइल करें. डिफ़ॉल्ट रूप से, पॉपओवर को स्क्रोल किया जा सकता है. साथ ही, इनकी ऊंचाई पहले से तय होती है.
किसी LatLngAltitude कोऑर्डिनेट पर पॉपओवर को ऐंकर करना
पॉपओवर बनाने पर, वह मैप पर अपने-आप नहीं दिखता. पॉपओवर को दिखाने के लिए, आपको PopoverElement
में open
विकल्प को true
पर सेट करना होगा. इस कार्रवाई को कंस्ट्रक्शन के दौरान या इंस्टैंटिएशन के बाद किया जा सकता है.
async function init() { const { AltitudeMode, Map3DElement, MapMode, PopoverElement } = await google.maps.importLibrary("maps3d"); const map = new Map3DElement({ center: { lat: 37.8204, lng: -122.4783, altitude: 0.407 }, range: 4000, tilt: 74, heading: 38, mode: MapMode.HYBRID, }); const popover = new PopoverElement({ altitudeMode: AltitudeMode.ABSOLUTE, open: true, positionAnchor: { lat: 37.819852, lng: -122.478549, altitude: 150 }, }); popover.append('Golden Gate Bridge'); map.append(popover); document.body.append(map); } init();
किसी मार्कर पर पॉपओवर को ऐंकर करना
मार्कर में पॉपओवर जोड़े जा सकते हैं. मार्कर से जुड़ा पॉपओवर जोड़ते समय, मार्कर का इस्तेमाल करने के लिए PopoverElement.positionAnchor
विकल्प सेट करें.
async function init() { const { AltitudeMode, Map3DElement, Marker3DInteractiveElement, MapMode, PopoverElement } = await google.maps.importLibrary("maps3d"); const map = new Map3DElement({ center: { lat: 37.8204, lng: -122.4783, altitude: 0.407 }, range: 4000, tilt: 74, heading: 38, mode: MapMode.HYBRID, }); // Popovers can only be added to interactive Markers const interactiveMarker = new Marker3DInteractiveElement({ altitudeMode: AltitudeMode.ABSOLUTE, position: { lat: 37.819852, lng: -122.478549, altitude: 100 } }); const popover = new PopoverElement({ open: false, positionAnchor: interactiveMarker, }); popover.append('Golden Gate Bridge'); interactiveMarker.addEventListener('gmp-click', (event) => { // toggle the marker to the other state (unlee you are clicking on the marker itself when it reopens it) popover.open = !popover.open; }); map.append(interactiveMarker); map.append(popover); document.body.append(map); } init();
एचटीएमएल का इस्तेमाल करके, पॉपओवर को मार्कर से ऐंकर करना
बिना JavaScript कोड लिखे भी, पॉपओवर को मार्कर से जोड़ा जा सकता है. इसके लिए, यहां दिया गया तरीका अपनाएं:
<gmp-map-3d mode="hybrid" center="37.819852,-122.478549" tilt="75" range="2000" heading="330">
<gmp-marker-3d-interactive gmp-popover-target="my-popover" position="37.819852,-122.478549,100"></gmp-marker-3d-interactive>
<gmp-popover id="my-popover">
Golden Gate Bridge
</gmp-popover>
</gmp-map-3d>
<script async src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDGl0teQ6qwaBEdHazOWIEXd8XGWOZvoaM&v=beta&libraries=maps3d">
</script>
किसी पॉपओवर में कस्टम कॉन्टेंट जोड़ना
header
और content
विकल्प सेट करके, पॉपओवर में कस्टम कॉन्टेंट जोड़ा जा सकता है:
async function init() {
const {Map3DElement, MapMode, PopoverElement, AltitudeMode} = await google.maps.importLibrary('maps3d');
const map = new Map3DElement({
center: { lat: 37.819852, lng: -122.478549, altitude: 2000 },
tilt: 75,
heading: 330,
mode: MapMode.SATELLITE,
});
const popover = new PopoverElement({
altitudeMode: AltitudeMode.ABSOLUTE,
open: true,
positionAnchor: {lat: 37.819852, lng: -122.478549, altitude: 100},
});
const header = document.createElement('div');
header.style.fontWeight = 'bold';
header.slot = 'header';
header.textContent = 'Golden Gate Bridge';
const content = document.createElement('div');
content.textContent = 'Iconic orange bridge connecting San Francisco to Marin.';
popover.append(header);
popover.append(content);
document.body.append(map);
map.append(popover);
}
init();