Popovers

Select platform: Android iOS JavaScript

Map of San Francisco with marker and popover over the Ferry Building.

A popover displays content (usually text or images) in an info bubble window above the map, at a given location. The popover has a content area and a tapered stem. The tip of the stem is attached to a specified location on the map.

Typically you will attach a popover to a marker using the .popover modifier, but you can also attach a popover to a specific LatLng coordinate with altitude, or offset it from a marker.

Add a popover

To add a popover, create a Popover entity and set its options, including position and altitude mode. The position is a LatLngAltitude object, determining where the popover is displayed. You can control how altitude is interpreted when anchoring by LatLngAltitude by setting the altitude mode. If anchoring to a marker, the marker's position is used instead.

The content of a popover can be customized using SwiftUI Views. You can provide custom layouts by passing a View builder closure to the Popover entity or the .popover modifier.

Add a popover to a LatLngAltitude object

The following code sample adds a popover to a LatLngAltitude object:

  import 
  
 GoogleMaps3D 
 import 
  
 SwiftUI 
 struct 
  
 SimpleCoordinatePopover 
 : 
  
 View 
  
 { 
  
 @ 
 State 
  
 private 
  
 var 
  
 isOpen 
  
 = 
  
 true 
  
 // Alcatraz Island coordinates 
  
 private 
  
 let 
  
 alcatraz 
  
 = 
  
 LatLngAltitude 
 ( 
 latitude 
 : 
  
 37.8270 
 , 
  
 longitude 
 : 
  
 - 
 122.4230 
 ) 
  
 var 
  
 body 
 : 
  
 some 
  
 View 
  
 { 
  
 Map 
 ( 
 initialCamera 
 : 
  
 . 
 init 
 ( 
 latitude 
 : 
  
 37.8270 
 , 
  
 longitude 
 : 
  
 - 
 122.4230 
 )) 
  
 { 
  
 Popover 
 ( 
  
 positionAnchor 
 : 
  
 alcatraz 
 , 
  
 isOpen 
 : 
  
 $ 
 isOpen 
  
 ) 
  
 { 
  
 Text 
 ( 
 "Alcatraz Island" 
 ) 
  
 } 
  
 } 
  
 } 
 } 
 

Add a popover to a marker

The following code sample adds a popover to a marker:

  import 
  
 GoogleMaps3D 
 import 
  
 SwiftUI 
 struct 
  
 SimpleMarkerPopover 
 : 
  
 View 
  
 { 
  
 @ 
 State 
  
 private 
  
 var 
  
 isOpen 
  
 = 
  
 false 
  
 // Ferry Building coordinates 
  
 private 
  
 let 
  
 ferryBuilding 
  
 = 
  
 LatLngAltitude 
 ( 
 latitude 
 : 
  
 37.7955 
 , 
  
 longitude 
 : 
  
 - 
 122.3937 
 ) 
  
 var 
  
 body 
 : 
  
 some 
  
 View 
  
 { 
  
 Map 
 ( 
 initialCamera 
 : 
  
 . 
 init 
 ( 
 latitude 
 : 
  
 37.7955 
 , 
  
 longitude 
 : 
  
 - 
 122.3937 
 )) 
  
 { 
  
 Marker 
 ( 
 position 
 : 
  
 ferryBuilding 
 ) 
  
 . 
 popover 
 ( 
 isOpen 
 : 
  
 $ 
 isOpen 
 ) 
  
 { 
  
 Text 
 ( 
 "Ferry Building" 
 ) 
  
 } 
  
 . 
 onTap 
  
 { 
  
 isOpen 
 . 
 toggle 
 () 
  
 } 
  
 } 
  
 } 
 } 
 
Create a Mobile Website
View Site in Mobile | Classic
Share by: