AI-generated Key Takeaways
-
Advanced markers on iOS are customized using
GMSAdvancedMarkerandGMSPinImageOptionsclasses to control appearance and behavior. -
Developers can modify marker background color, border color, glyph color, and glyph text for visual customization.
-
The
iconViewproperty allows for integrating custom views and animations, similar to standard markers, but without direct layout constraint support. -
Although
GMSAdvancedMarkerdoesn't directly support layout constraints foriconView, developers can set constraints for elements within theiconViewand define the view's frame or size.

Advanced markers uses two classes to define markers: the GMSAdvancedMarker
class provides default marker
capabilities, and GMSPinImageOptions
contains options for further customization. This page shows you how to customize
markers in the following ways:
- Change the background color
- Change the border color
- Change the glyph color
- Change the glyph text
- Support custom views and animation with the iconView property
Change the background color
Use the GMSPinImageOptions.backgroundColor
option to
change the background color of a marker.
Swift
//... let options = GMSPinImageOptions () options . backgroundColor = . blue let pinImage = GMSPinImage ( options : options ) advancedMarker . icon = pinImage advancedMarker . map = mapView
Objective-C
//... GMSPinImageOptions * options = [[ GMSPinImageOptions alloc ] init ]; options . backgroundColor = [ UIColor blueColor ]; GMSPinImage * pin = [ GMSPinImage pinImageWithOptions : options ]; customTextMarker . icon = pin ; customTextMarker . map = mapView ;
Change the border color
Use the GMSPinImageOptions.borderColor
option to change the background color of a marker.
Swift
//... let options = GMSPinImageOptions () options . borderColor = . blue let pinImage = GMSPinImage ( options : options ) advancedMarker . icon = pinImage advancedMarker . map = mapView
Objective-C
//... GMSPinImageOptions * options = [[ GMSPinImageOptions alloc ] init ]; options . backgroundColor = [ UIColor blueColor ]; GMSPinImage * pin = [ GMSPinImage pinImageWithOptions : options ]; advancedMarker . icon = pin ; advancedMarker . map = mapView ;
Change the glyph color
Use GMSPinImageGlyph.glyphColor
to change the background color of a marker.
Swift
//... let options = GMSPinImageOptions () let glyph = GMSPinImageGlyph ( glyphColor : . yellow ) options . glyph = glyph let glyphColor = GMSPinImage ( options : options ) advancedMarker . icon = glyphColor advancedMarker . map = mapView
Objective-C
//... GMSPinImageOptions * options = [[ GMSPinImageOptions alloc ] init ]; options . glyph = [[ GMSPinImageGlyph alloc ] initWithGlyphColor : [ UIColor yellowColor ]]; GMSPinImage * glyphColor = [ GMSPinImage pinImageWithOptions : options ]; advancedMarker . icon = glyphColor ; advancedMarker . map = mapView ;
Change the glyph text
Use GMSPinImageGlyph
to change the glyph text of a marker.
Swift
//... let options = GMSPinImageOptions () let glyph = GMSPinImageGlyph ( text : "ABC" , textColor : . white ) options . glyph = glyph let pinImage = GMSPinImage ( options : options ) advancedMarker . icon = pinImage advancedMarker . map = mapView
Objective-C
//... GMSPinImageOptions * options = [[ GMSPinImageOptions alloc ] init ]; options . glyph = [[ GMSPinImageGlyph alloc ] initWithText : @"ABC" textColor : [ UIColor whiteColor ]]; GMSPinImage * pin = [ GMSPinImage pinImageWithOptions : options ]; customTextMarker . icon = pin ; customTextMarker . map = mapView ;
Support custom views and animation with the iconView
property
Similar to GMSMarker
, GMSAdvancedMarker
also supports markers with an iconView
.
The iconView
property supports animation of all animatable properties of UIView
except frame and center. It does not support markers with iconViews
and icons
displayed on the same map.
Swift
//... let advancedMarker = GMSAdvancedMarker ( position : coordinate ) advancedMarker . iconView = customView () advancedMarker . map = mapView func customView () -> UIView { // return your custom UIView. }
Objective-C
//... GMSAdvancedMarker * advancedMarker = [ GMSAdvancedMarker markerWithPosition : kCoordinate ]; advancedMarker . iconView = [ self customView ]; advancedMarker . map = self . mapView ; - ( UIView * ) customView { // return custom view }
Layout constraints
GMSAdvancedMarker
does not directly support layout
constraints for its iconView
. However, you can set layout constraints for user
interface elements within the iconView
. Upon creating your view, the object frame
or size
should be passed to the marker.
Swift
//do not set advancedMarker.iconView.translatesAutoresizingMaskIntoConstraints = false let advancedMarker = GMSAdvancedMarker ( position : coordinate ) let customView = customView () //set frame customView . frame = CGRect ( 0 , 0 , width , height ) advancedMarker . iconView = customView
Objective-C
//do not set advancedMarker.iconView.translatesAutoresizingMaskIntoConstraints = NO; GMSAdvancedMarker * advancedMarker = [ GMSAdvancedMarker markerWithPosition : kCoordinate ]; CustomView * customView = [ self customView ]; //set frame customView . frame = CGRectMake ( 0 , 0 , width , height ); advancedMarker . iconView = customView ;

