Each of the GL libraries uses different terminology in its public APIs. This is because each library attempts to feel natural to developers on that platform.

Conflicts in usage

The following terms in the Mapbox Style Specification have different meanings on the native platforms. The table below examines these terms along with a limited selection of terms from the GL libraries’ public APIs. Definitions in italics denote concepts that the Mapbox GL developers have no control over.

TermWebiOS/macOSAndroid
annotationDirections API metadataa point or shape overlayJava language feature; Directions API metadata
attributepart of an HTML elementvector tile metadata; Directions API metadataβ€”
bindingsNode something-somethingreactive programming built into Objective-C/Swiftreactive programming in Java?
classa way to toggle paint propertieslanguage featurelanguage feature
filtera way to hide features in a layerApple compositing featurea way to hide features in a layer
functionJavaScript language feature; a variable property value2 different Objective-C/Swift language featuresJava language feature; a variable property value
idunique identifierObjective-C language keywordunique identifier
layersimilar to an overlay, but part of the mapApple animation featuresimilar to an overlay, but part of the map
map viewan occasion a map is vieweda container for a mapa container for a map
regionβ€”akin to bounding boxbundle of resources for offline usage
pluginbrowser feature; GL helper libraryGL helper library; obscure application extension feature (macOS)GL helper library
point1D shapeunit of distance; 1D shape1D shape
propertyJavaScript language feature; an option for a style layer or vector featureObjective-C/Swift language featureJava language feature; an option for a style layer or vector feature

Platform-specific naming conventions

These differences in terminology have led to a number of differences in the libraries’ public APIs, as illustrated in the following table. πŸ›£ denotes a term used in a client of the Mapbox Directions API that is used together with a GL library (Mapbox GL Directions, MapboxDirections.swift, Mapbox Java SDK).

WebiOS/macOSAndroidQt
pixelpointpixelpixel
β€”pixelβ€”β€”
symbolβ€”β€”β€”
β€”annotationmarker, annotationannotation
markerannotation viewmarker viewβ€”
spriteannotation imagemarker iconannotation icon
popupcallout, callout view; popover (macOS)info windowβ€”
geometryshapegeometry annotationshape
sourcecontent sourcesourcedata source
GeoJSON sourceshape sourceGeoJSON sourceGeoJSON data source
raster sourceraster tile sourceraster sourceraster data source
vector sourcevector tile sourcevector sourcevector data source
β€”computed shape sourcecustom sourceβ€”
layerstyle layerlayerlayer, style layer
β€”OpenGL style layercustom layercustom layer
propertyattributepropertyproperty
ididentifieridid
classstyle classβ€”class
imagestyle imageimageimage
SDF icontemplate imageβ€”β€”
expression operatorexpression function, predicate operatorexpression operatorβ€”
functionβ€”β€”β€”
filterpredicatefilterβ€”
rendered featuresvisible featuresrendered featuresβ€”
source featuresfeatures in sourcesource featuresβ€”
β€”offline packoffline regionβ€”
β€”offline regionoffline region definitionβ€”
β€”offline storageoffline manageroffline cache database
attributionattributionattributioncopyrights
bearingdirection, headingbearingbearing
paddingedge insets, edge paddingcontent paddingmargins
LngLatcoordinateLatLngcoordinate
bounds, bboxcoordinate bounds, regionLatLng boundsbounds
project/unprojectconvertproject/unprojectβ€”
camera optionsmap cameracameraβ€”
β€”user location annotation view, user dotmy location viewβ€”
event listenerobserverlistenersignal
handlergesture recognizerβ€”β€”
β€”swipeswipe, flingβ€”
clicktap (iOS) / click (macOS)click, touchclick
double-clickdouble-tap (iOS) / double-click (macOS)double-touchdouble-click
β€”long tap (iOS) / press (macOS)long click, long pressβ€”
panpan, scrollscrollpan
scroll, zoompinchpinchscale
annotation πŸ›£attributeannotationβ€”