popover
محتوا (معمولاً متن یا تصاویر) را در یک پنجره گفتگو در بالای نقشه، در یک مکان مشخص نمایش می دهد. پاپاور دارای یک ناحیه محتوا و یک ساقه مخروطی است. نوک ساقه به مکان مشخصی روی نقشه متصل است. Popover ها به عنوان یک گفتگو برای صفحه خوان ها ظاهر می شوند.
معمولاً یک پاپاور را به یک نشانگر تعاملی متصل میکنید، اما میتوانید یک پاپاور را به یک مختصات LatLngAltitude
خاص وصل کنید یا آن را از یک نشانگر جبران کنید.
پاپاور اضافه کنید
سازنده PopoverElement
یک شی PopoverElementOptions
به صورت تحت اللفظی می گیرد که پارامترهای اولیه برای نمایش popover را مشخص می کند.
شیء PopoverElementOptions
حاوی فیلدهای زیر است:
-
positionAnchor
: موقعیتLatLngAltitude
که در آن نشانگر نمایش داده می شود. در صورت استفاده از نشانگر، به جای آن از موقعیت نشانگر استفاده می شود. -
altitudeMode
: ارتفاع پاپاور چگونه تفسیر می شود. -
lightDismissDisabled
: آیا پاپاور زمانی که کاربر خارج از آن کلیک می کند باز می ماند یا کلیدEsc
را فشار می دهد. وقتی این گزینه رویtrue
تنظیم شود، میتوان همزمان چند پاپاورlightDismissDisabled
را روی نقشه نشان داد. -
open
: تعیین می کند که پاپاور باز باشد یا نه. پیش فرض ها بهfalse
.
محتوای PopoverElement
ممکن است شامل یک رشته متن، یک قطعه HTML یا یک عنصر DOM باشد. شما محتوا را با ضمیمه کردن آن به PopoverElement
به طور صریح در header
یا شکاف default
تنظیم میکنید.
اگر میخواهید به وضوح محتوا را اندازه کنید، میتوانید آن را در عنصر <div>
قرار دهید و به <div>
با CSS استایل دهید. Popover ها به طور پیش فرض قابل پیمایش هستند و حداکثر ارتفاع از پیش تعریف شده دارند.
پاپاور را به مختصات LatLngAltitude متصل کنید
وقتی پاپاور ایجاد می کنید، به طور خودکار روی نقشه نمایش داده نمی شود. برای اینکه popover قابل مشاهده باشد، باید گزینه open
را در PopoverElement
روی 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();
پاپاور را با استفاده از HTML به یک نشانگر متصل کنید
همچنین میتوانید پاپاورها را بدون نوشتن کد جاوا اسکریپت به نشانگرها متصل کنید، همانطور که در زیر نشان داده شده است:
<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();