-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Terminology across platforms
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.
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.
Term | Web | iOS/macOS | Android |
---|---|---|---|
annotation | Directions API metadata | a point or shape overlay | Java language feature; Directions API metadata |
attribute | part of an HTML element | vector tile metadata; Directions API metadata | — |
bindings | Node something-something | reactive programming built into Objective-C | reactive programming in Java? |
class | a way to toggle paint properties | language feature | language feature |
filter | a way to hide features in a layer | Apple compositing feature | a way to hide features in a layer |
function | JavaScript language feature; a variable property value | Objective-C language feature | Java language feature; a variable property value |
id | unique identifier | Objective-C language keyword | unique identifier |
layer | similar to an overlay, but part of the map | Apple animation feature | similar to an overlay, but part of the map |
map view | an occasion a map is viewed | a container for a map | a container for a map |
region | — | akin to bounding box | bundle of resources for offline usage |
plugin | browser feature; GL helper library | GL helper library; obscure application extension feature (macOS) | GL helper library |
point | 1D shape | unit of distance; 1D shape | 1D shape |
property | JavaScript language feature; an option for a style layer or vector feature | Objective-C/Swift language feature | Java language feature; an option for a style layer or vector feature |
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 Services).
Web | iOS/macOS | Android | Qt |
---|---|---|---|
pixel | point | pixel | pixel |
— | pixel | — | — |
symbol | — | — | — |
— | annotation | marker, annotation | annotation |
marker | annotation view | marker view | — |
sprite | annotation image | marker icon | annotation icon |
popup | callout, callout view; popover (macOS) | info window | — |
geometry | shape | geometry annotation | shape |
source | content source | source | data source |
GeoJSON source | shape source | GeoJSON source | GeoJSON data source |
layer | style layer | layer | layer, style layer |
— | OpenGL style layer | custom layer | custom layer |
property | attribute | property | property |
id | identifier | id | id |
class | style class | — | class |
image | style image | image | image |
SDF icon | template image | — | — |
function | style function | function | — |
zoom function | camera style function | camera function | — |
property function | source style function | source function | — |
zoom-and-property function | composite style function | composite function | — |
filter | predicate | filter | — |
— | offline pack | offline region | — |
— | offline region | offline region definition | — |
— | offline storage | offline manager | offline cache database |
attribution | attribution | attribution | copyrights |
bearing | direction, heading | bearing | bearing |
padding | edge insets, edge padding | content padding | margins |
LngLat | coordinate | LatLng | coordinate |
bounds, bbox | coordinate bounds, region | LatLng bounds | bounds |
project/unproject | convert | project/unproject | — |
camera options | map camera | camera | — |
— | user location annotation view, user dot | my location view | — |
event listener | observer | listener | signal |
handler | gesture recognizer | — | — |
— | swipe | swipe, fling | — |
click | tap (iOS) / click (macOS) | click, touch | click |
double-click | double-tap (iOS) / double-click (macOS) | double-touch | double-click |
— | long tap (iOS) / press (macOS) | long click, long press | — |
pan | pan, scroll | scroll | pan |
scroll, zoom | pinch | pinch | scale |
annotation 🛣 | attribute | annotation | — |
Workflow: Code, Makefile, CMake, Xcode, ccache, Debugging, CI, JS/Native, Code Generation, Versions & Tagging, Contributing, Troubleshooting
Architecture: Threads, Immutability, Expressions, Text Rendering, Collision Detection, CJK Text
Rendering: OpenGL, Coordinate Systems
Android: checkstyle, APK Size, 4→5, 5→6, 6→7, Symbolication
iOS/macOS: 3→4
Releasing: iOS, macOS, Merging back
Misc: Terminology