diff options
Diffstat (limited to 'macos/0.9.0/predicates-and-expressions.html')
-rw-r--r-- | macos/0.9.0/predicates-and-expressions.html | 1763 |
1 files changed, 1763 insertions, 0 deletions
diff --git a/macos/0.9.0/predicates-and-expressions.html b/macos/0.9.0/predicates-and-expressions.html new file mode 100644 index 0000000000..f2ba000d9f --- /dev/null +++ b/macos/0.9.0/predicates-and-expressions.html @@ -0,0 +1,1763 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <title>Predicates and Expressions Reference</title> + <link rel="stylesheet" type="text/css" href="css/jazzy.css" /> + <link rel="stylesheet" type="text/css" href="css/highlight.css" /> + <meta charset="utf-8"> + <script src="js/jquery.min.js" defer></script> + <script src="js/jazzy.js" defer></script> + <link rel='shortcut icon' href='https://www.mapbox.com/img/favicon.ico' type='image/x-icon' /> + + <style type="text/css"> + .nav-group-name[data-name="Predicates and Expressions"] > .small-heading, + .nav-group-task[data-name="Predicates and Expressions"] { + background-color: #f5f8fc; + font-family: "Open Sans Bold"; + border-left: 3px solid #3a68d8; + padding-left: 5px + } + </style> + </head> + <body> + + + <a title="Predicates and Expressions Reference"></a> + + <header class="header-container"> + <div class="limiter"> + <div class="header"> + <p class="header-col header-col--primary"> + <a class="header-link" href="index.html"> + <img style="height: 25px;" class="header-icon" src="img/mapbox.svg" alt="Mapbox Maps SDK for macOS Docs"/> + <span class='header-tag'>Maps SDK for macOS Reference</span> + </a> + + </p> + + <p class="header-col header-col--secondary"> + <a class="header-link space-right2" href="https://github.com/mapbox/mapbox-gl-native"> + <svg style="margin-bottom: 1px;" class="header-icon" viewBox="0 0 33 33" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <path stroke="none" stroke-width="1" fill="white" fill-rule="evenodd" d="M16.6,0.4 C7.6,0.4 0.3,7.7 0.3,16.7 C0.3,23.9 5,30 11.4,32.2 C12.2,32.3 12.5,31.8 12.5,31.4 L12.5,28.6 C8,29.6 7,26.4 7,26.4 C6.3,24.5 5.2,24 5.2,24 C3.7,23 5.3,23 5.3,23 C6.9,23.1 7.8,24.7 7.8,24.7 C9.3,27.2 11.6,26.5 12.5,26.1 C12.6,25 13.1,24.3 13.5,23.9 C9.9,23.5 6.1,22.1 6.1,15.8 C6.1,14 6.7,12.6 7.8,11.4 C7.6,11 7.1,9.3 8,7.1 C8,7.1 9.4,6.7 12.5,8.8 C13.8,8.4 15.2,8.3 16.6,8.3 C18,8.3 19.4,8.5 20.7,8.8 C23.8,6.7 25.2,7.1 25.2,7.1 C26.1,9.3 25.5,11 25.4,11.4 C26.4,12.5 27.1,14 27.1,15.8 C27.1,22.1 23.3,23.4 19.7,23.8 C20.3,24.3 20.8,25.3 20.8,26.8 L20.8,31.3 C20.8,31.7 21.1,32.2 21.9,32.1 C28.4,29.9 33,23.8 33,16.6 C32.9,7.7 25.6,0.4 16.6,0.4 L16.6,0.4 Z"></path> + </svg> + View on GitHub + </a> + </p> + + <p class="header-col header-col--secondary"> + <a class="header-link bold" href="dash-feed://https%3A%2F%2Fmapbox%2Egithub%2Eio%2Fmapbox%2Dgl%2Dnative%2Fmacos%2Fdocsets%2FMapbox%2Exml"> + <img style="margin-bottom: 1px;" class="header-icon" src="img/dash.png"/> + Install in Dash + </a> + </p> + </div> + </div> + </header> + + <div class="breadcrumbs"> + <div class="limiter"> + <a class="breadcrumb" href="index.html">Mapbox Maps SDK for macOS Reference</a> + <img class="carat" src="img/carat.png" /> + Predicates and Expressions Reference + </div> + </div> + + <div class="content-wrapper limiter"> + <nav class="navigation"> + <ul class="nav-groups"> + <li class="nav-group-name" data-name="Guides"> + <a class="small-heading" href="Guides.html">Guides<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="Working with GeoJSON Data" data-url="working-with-geojson-data.html"> + <a title="Working with GeoJSON Data" class="nav-group-task-link" href="working-with-geojson-data.html">Working with GeoJSON Data</a> + </li> + <li class="nav-group-task" data-name="Predicates and Expressions" data-url="predicates-and-expressions.html"> + <a title="Predicates and Expressions" class="nav-group-task-link" href="predicates-and-expressions.html">Predicates and Expressions</a> + </li> + <li class="nav-group-task" data-name="For Style Authors" data-url="for-style-authors.html"> + <a title="For Style Authors" class="nav-group-task-link" href="for-style-authors.html">For Style Authors</a> + </li> + <li class="nav-group-task" data-name="Migrating to Expressions" data-url="migrating-to-expressions.html"> + <a title="Migrating to Expressions" class="nav-group-task-link" href="migrating-to-expressions.html">Migrating to Expressions</a> + </li> + <li class="nav-group-task" data-name="Tile URL Templates" data-url="tile-url-templates.html"> + <a title="Tile URL Templates" class="nav-group-task-link" href="tile-url-templates.html">Tile URL Templates</a> + </li> + <li class="nav-group-task" data-name="Info.plist Keys" data-url="infoplist-keys.html"> + <a title="Info.plist Keys" class="nav-group-task-link" href="infoplist-keys.html">Info.plist Keys</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Maps"> + <a class="small-heading" href="Maps.html">Maps<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLAccountManager" data-url="Classes/MGLAccountManager.html"> + <a title="MGLAccountManager" class="nav-group-task-link" href="Classes/MGLAccountManager.html">MGLAccountManager</a> + </li> + <li class="nav-group-task" data-name="MGLMapCamera" data-url="Classes/MGLMapCamera.html"> + <a title="MGLMapCamera" class="nav-group-task-link" href="Classes/MGLMapCamera.html">MGLMapCamera</a> + </li> + <li class="nav-group-task" data-name="MGLMapView" data-url="Classes/MGLMapView.html"> + <a title="MGLMapView" class="nav-group-task-link" href="Classes/MGLMapView.html">MGLMapView</a> + </li> + <li class="nav-group-task" data-name="MGLMapViewDelegate" data-url="Protocols/MGLMapViewDelegate.html"> + <a title="MGLMapViewDelegate" class="nav-group-task-link" href="Protocols/MGLMapViewDelegate.html">MGLMapViewDelegate</a> + </li> + <li class="nav-group-task" data-name="MGLMapSnapshot" data-url="Classes/MGLMapSnapshot.html"> + <a title="MGLMapSnapshot" class="nav-group-task-link" href="Classes/MGLMapSnapshot.html">MGLMapSnapshot</a> + </li> + <li class="nav-group-task" data-name="MGLMapSnapshotOptions" data-url="Classes/MGLMapSnapshotOptions.html"> + <a title="MGLMapSnapshotOptions" class="nav-group-task-link" href="Classes/MGLMapSnapshotOptions.html">MGLMapSnapshotOptions</a> + </li> + <li class="nav-group-task" data-name="MGLMapSnapshotter" data-url="Classes/MGLMapSnapshotter.html"> + <a title="MGLMapSnapshotter" class="nav-group-task-link" href="Classes/MGLMapSnapshotter.html">MGLMapSnapshotter</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Shapes and Annotations"> + <a class="small-heading" href="Shapes and Annotations.html">Shapes and Annotations<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLAnnotation" data-url="Protocols/MGLAnnotation.html"> + <a title="MGLAnnotation" class="nav-group-task-link" href="Protocols/MGLAnnotation.html">MGLAnnotation</a> + </li> + <li class="nav-group-task" data-name="MGLAnnotationImage" data-url="Classes/MGLAnnotationImage.html"> + <a title="MGLAnnotationImage" class="nav-group-task-link" href="Classes/MGLAnnotationImage.html">MGLAnnotationImage</a> + </li> + <li class="nav-group-task" data-name="MGLOverlay" data-url="Protocols/MGLOverlay.html"> + <a title="MGLOverlay" class="nav-group-task-link" href="Protocols/MGLOverlay.html">MGLOverlay</a> + </li> + <li class="nav-group-task" data-name="MGLShape" data-url="Classes/MGLShape.html"> + <a title="MGLShape" class="nav-group-task-link" href="Classes/MGLShape.html">MGLShape</a> + </li> + <li class="nav-group-task" data-name="MGLMultiPoint" data-url="Classes/MGLMultiPoint.html"> + <a title="MGLMultiPoint" class="nav-group-task-link" href="Classes/MGLMultiPoint.html">MGLMultiPoint</a> + </li> + <li class="nav-group-task" data-name="MGLPointAnnotation" data-url="Classes/MGLPointAnnotation.html"> + <a title="MGLPointAnnotation" class="nav-group-task-link" href="Classes/MGLPointAnnotation.html">MGLPointAnnotation</a> + </li> + <li class="nav-group-task" data-name="MGLPointCollection" data-url="Classes/MGLPointCollection.html"> + <a title="MGLPointCollection" class="nav-group-task-link" href="Classes/MGLPointCollection.html">MGLPointCollection</a> + </li> + <li class="nav-group-task" data-name="MGLPolygon" data-url="Classes/MGLPolygon.html"> + <a title="MGLPolygon" class="nav-group-task-link" href="Classes/MGLPolygon.html">MGLPolygon</a> + </li> + <li class="nav-group-task" data-name="MGLPolyline" data-url="Classes/MGLPolyline.html"> + <a title="MGLPolyline" class="nav-group-task-link" href="Classes/MGLPolyline.html">MGLPolyline</a> + </li> + <li class="nav-group-task" data-name="MGLMultiPolygon" data-url="Classes/MGLMultiPolygon.html"> + <a title="MGLMultiPolygon" class="nav-group-task-link" href="Classes/MGLMultiPolygon.html">MGLMultiPolygon</a> + </li> + <li class="nav-group-task" data-name="MGLMultiPolyline" data-url="Classes/MGLMultiPolyline.html"> + <a title="MGLMultiPolyline" class="nav-group-task-link" href="Classes/MGLMultiPolyline.html">MGLMultiPolyline</a> + </li> + <li class="nav-group-task" data-name="MGLShapeCollection" data-url="Classes/MGLShapeCollection.html"> + <a title="MGLShapeCollection" class="nav-group-task-link" href="Classes/MGLShapeCollection.html">MGLShapeCollection</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Styling the Map"> + <a class="small-heading" href="Styling the Map.html">Styling the Map<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLStyle" data-url="Classes/MGLStyle.html"> + <a title="MGLStyle" class="nav-group-task-link" href="Classes/MGLStyle.html">MGLStyle</a> + </li> + <li class="nav-group-task" data-name="MGLLight" data-url="Classes/MGLLight.html"> + <a title="MGLLight" class="nav-group-task-link" href="Classes/MGLLight.html">MGLLight</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Content Primitives"> + <a class="small-heading" href="Content Primitives.html">Content Primitives<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLFeature" data-url="Protocols/MGLFeature.html"> + <a title="MGLFeature" class="nav-group-task-link" href="Protocols/MGLFeature.html">MGLFeature</a> + </li> + <li class="nav-group-task" data-name="MGLPointFeature" data-url="Content Primitives.html#/c:objc(cs)MGLPointFeature"> + <a title="MGLPointFeature" class="nav-group-task-link" href="Content Primitives.html#/c:objc(cs)MGLPointFeature">MGLPointFeature</a> + </li> + <li class="nav-group-task" data-name="MGLPolygonFeature" data-url="Content Primitives.html#/c:objc(cs)MGLPolygonFeature"> + <a title="MGLPolygonFeature" class="nav-group-task-link" href="Content Primitives.html#/c:objc(cs)MGLPolygonFeature">MGLPolygonFeature</a> + </li> + <li class="nav-group-task" data-name="MGLPolylineFeature" data-url="Content Primitives.html#/c:objc(cs)MGLPolylineFeature"> + <a title="MGLPolylineFeature" class="nav-group-task-link" href="Content Primitives.html#/c:objc(cs)MGLPolylineFeature">MGLPolylineFeature</a> + </li> + <li class="nav-group-task" data-name="MGLMultiPolygonFeature" data-url="Content Primitives.html#/c:objc(cs)MGLMultiPolygonFeature"> + <a title="MGLMultiPolygonFeature" class="nav-group-task-link" href="Content Primitives.html#/c:objc(cs)MGLMultiPolygonFeature">MGLMultiPolygonFeature</a> + </li> + <li class="nav-group-task" data-name="MGLMultiPolylineFeature" data-url="Content Primitives.html#/c:objc(cs)MGLMultiPolylineFeature"> + <a title="MGLMultiPolylineFeature" class="nav-group-task-link" href="Content Primitives.html#/c:objc(cs)MGLMultiPolylineFeature">MGLMultiPolylineFeature</a> + </li> + <li class="nav-group-task" data-name="MGLPointCollectionFeature" data-url="Content Primitives.html#/c:objc(cs)MGLPointCollectionFeature"> + <a title="MGLPointCollectionFeature" class="nav-group-task-link" href="Content Primitives.html#/c:objc(cs)MGLPointCollectionFeature">MGLPointCollectionFeature</a> + </li> + <li class="nav-group-task" data-name="MGLShapeCollectionFeature" data-url="Content Primitives.html#/c:objc(cs)MGLShapeCollectionFeature"> + <a title="MGLShapeCollectionFeature" class="nav-group-task-link" href="Content Primitives.html#/c:objc(cs)MGLShapeCollectionFeature">MGLShapeCollectionFeature</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Content Sources"> + <a class="small-heading" href="Content Sources.html">Content Sources<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLSource" data-url="Classes/MGLSource.html"> + <a title="MGLSource" class="nav-group-task-link" href="Classes/MGLSource.html">MGLSource</a> + </li> + <li class="nav-group-task" data-name="MGLShapeSource" data-url="Classes/MGLShapeSource.html"> + <a title="MGLShapeSource" class="nav-group-task-link" href="Classes/MGLShapeSource.html">MGLShapeSource</a> + </li> + <li class="nav-group-task" data-name="MGLComputedShapeSource" data-url="Classes/MGLComputedShapeSource.html"> + <a title="MGLComputedShapeSource" class="nav-group-task-link" href="Classes/MGLComputedShapeSource.html">MGLComputedShapeSource</a> + </li> + <li class="nav-group-task" data-name="MGLTileSource" data-url="Classes/MGLTileSource.html"> + <a title="MGLTileSource" class="nav-group-task-link" href="Classes/MGLTileSource.html">MGLTileSource</a> + </li> + <li class="nav-group-task" data-name="MGLRasterTileSource" data-url="Classes/MGLRasterTileSource.html"> + <a title="MGLRasterTileSource" class="nav-group-task-link" href="Classes/MGLRasterTileSource.html">MGLRasterTileSource</a> + </li> + <li class="nav-group-task" data-name="MGLRasterDEMSource" data-url="Content Sources.html#/c:objc(cs)MGLRasterDEMSource"> + <a title="MGLRasterDEMSource" class="nav-group-task-link" href="Content Sources.html#/c:objc(cs)MGLRasterDEMSource">MGLRasterDEMSource</a> + </li> + <li class="nav-group-task" data-name="MGLVectorTileSource" data-url="Classes/MGLVectorTileSource.html"> + <a title="MGLVectorTileSource" class="nav-group-task-link" href="Classes/MGLVectorTileSource.html">MGLVectorTileSource</a> + </li> + <li class="nav-group-task" data-name="MGLImageSource" data-url="Classes/MGLImageSource.html"> + <a title="MGLImageSource" class="nav-group-task-link" href="Classes/MGLImageSource.html">MGLImageSource</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Style Layers"> + <a class="small-heading" href="Style Layers.html">Style Layers<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLStyleLayer" data-url="Classes/MGLStyleLayer.html"> + <a title="MGLStyleLayer" class="nav-group-task-link" href="Classes/MGLStyleLayer.html">MGLStyleLayer</a> + </li> + <li class="nav-group-task" data-name="MGLForegroundStyleLayer" data-url="Classes/MGLForegroundStyleLayer.html"> + <a title="MGLForegroundStyleLayer" class="nav-group-task-link" href="Classes/MGLForegroundStyleLayer.html">MGLForegroundStyleLayer</a> + </li> + <li class="nav-group-task" data-name="MGLBackgroundStyleLayer" data-url="Classes/MGLBackgroundStyleLayer.html"> + <a title="MGLBackgroundStyleLayer" class="nav-group-task-link" href="Classes/MGLBackgroundStyleLayer.html">MGLBackgroundStyleLayer</a> + </li> + <li class="nav-group-task" data-name="MGLRasterStyleLayer" data-url="Classes/MGLRasterStyleLayer.html"> + <a title="MGLRasterStyleLayer" class="nav-group-task-link" href="Classes/MGLRasterStyleLayer.html">MGLRasterStyleLayer</a> + </li> + <li class="nav-group-task" data-name="MGLVectorStyleLayer" data-url="Classes/MGLVectorStyleLayer.html"> + <a title="MGLVectorStyleLayer" class="nav-group-task-link" href="Classes/MGLVectorStyleLayer.html">MGLVectorStyleLayer</a> + </li> + <li class="nav-group-task" data-name="MGLCircleStyleLayer" data-url="Classes/MGLCircleStyleLayer.html"> + <a title="MGLCircleStyleLayer" class="nav-group-task-link" href="Classes/MGLCircleStyleLayer.html">MGLCircleStyleLayer</a> + </li> + <li class="nav-group-task" data-name="MGLFillStyleLayer" data-url="Classes/MGLFillStyleLayer.html"> + <a title="MGLFillStyleLayer" class="nav-group-task-link" href="Classes/MGLFillStyleLayer.html">MGLFillStyleLayer</a> + </li> + <li class="nav-group-task" data-name="MGLFillExtrusionStyleLayer" data-url="Classes/MGLFillExtrusionStyleLayer.html"> + <a title="MGLFillExtrusionStyleLayer" class="nav-group-task-link" href="Classes/MGLFillExtrusionStyleLayer.html">MGLFillExtrusionStyleLayer</a> + </li> + <li class="nav-group-task" data-name="MGLHeatmapStyleLayer" data-url="Classes/MGLHeatmapStyleLayer.html"> + <a title="MGLHeatmapStyleLayer" class="nav-group-task-link" href="Classes/MGLHeatmapStyleLayer.html">MGLHeatmapStyleLayer</a> + </li> + <li class="nav-group-task" data-name="MGLHillshadeStyleLayer" data-url="Classes/MGLHillshadeStyleLayer.html"> + <a title="MGLHillshadeStyleLayer" class="nav-group-task-link" href="Classes/MGLHillshadeStyleLayer.html">MGLHillshadeStyleLayer</a> + </li> + <li class="nav-group-task" data-name="MGLLineStyleLayer" data-url="Classes/MGLLineStyleLayer.html"> + <a title="MGLLineStyleLayer" class="nav-group-task-link" href="Classes/MGLLineStyleLayer.html">MGLLineStyleLayer</a> + </li> + <li class="nav-group-task" data-name="MGLSymbolStyleLayer" data-url="Classes/MGLSymbolStyleLayer.html"> + <a title="MGLSymbolStyleLayer" class="nav-group-task-link" href="Classes/MGLSymbolStyleLayer.html">MGLSymbolStyleLayer</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Offline Maps"> + <a class="small-heading" href="Offline Maps.html">Offline Maps<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLOfflineRegion" data-url="Offline Maps.html#/c:objc(pl)MGLOfflineRegion"> + <a title="MGLOfflineRegion" class="nav-group-task-link" href="Offline Maps.html#/c:objc(pl)MGLOfflineRegion">MGLOfflineRegion</a> + </li> + <li class="nav-group-task" data-name="MGLOfflineStorage" data-url="Classes/MGLOfflineStorage.html"> + <a title="MGLOfflineStorage" class="nav-group-task-link" href="Classes/MGLOfflineStorage.html">MGLOfflineStorage</a> + </li> + <li class="nav-group-task" data-name="MGLOfflinePack" data-url="Classes/MGLOfflinePack.html"> + <a title="MGLOfflinePack" class="nav-group-task-link" href="Classes/MGLOfflinePack.html">MGLOfflinePack</a> + </li> + <li class="nav-group-task" data-name="MGLOfflinePackProgress" data-url="Structs/MGLOfflinePackProgress.html"> + <a title="MGLOfflinePackProgress" class="nav-group-task-link" href="Structs/MGLOfflinePackProgress.html">MGLOfflinePackProgress</a> + </li> + <li class="nav-group-task" data-name="MGLOfflinePackState" data-url="Enums/MGLOfflinePackState.html"> + <a title="MGLOfflinePackState" class="nav-group-task-link" href="Enums/MGLOfflinePackState.html">MGLOfflinePackState</a> + </li> + <li class="nav-group-task" data-name="MGLTilePyramidOfflineRegion" data-url="Classes/MGLTilePyramidOfflineRegion.html"> + <a title="MGLTilePyramidOfflineRegion" class="nav-group-task-link" href="Classes/MGLTilePyramidOfflineRegion.html">MGLTilePyramidOfflineRegion</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Geometry"> + <a class="small-heading" href="Geometry.html">Geometry<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLCoordinateBounds" data-url="Structs/MGLCoordinateBounds.html"> + <a title="MGLCoordinateBounds" class="nav-group-task-link" href="Structs/MGLCoordinateBounds.html">MGLCoordinateBounds</a> + </li> + <li class="nav-group-task" data-name="MGLCoordinateBoundsEqualToCoordinateBounds" data-url="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateBoundsEqualToCoordinateBounds"> + <a title="MGLCoordinateBoundsEqualToCoordinateBounds" class="nav-group-task-link" href="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateBoundsEqualToCoordinateBounds">MGLCoordinateBoundsEqualToCoordinateBounds</a> + </li> + <li class="nav-group-task" data-name="MGLCoordinateBoundsGetCoordinateSpan" data-url="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateBoundsGetCoordinateSpan"> + <a title="MGLCoordinateBoundsGetCoordinateSpan" class="nav-group-task-link" href="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateBoundsGetCoordinateSpan">MGLCoordinateBoundsGetCoordinateSpan</a> + </li> + <li class="nav-group-task" data-name="MGLCoordinateBoundsIntersectsCoordinateBounds" data-url="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateBoundsIntersectsCoordinateBounds"> + <a title="MGLCoordinateBoundsIntersectsCoordinateBounds" class="nav-group-task-link" href="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateBoundsIntersectsCoordinateBounds">MGLCoordinateBoundsIntersectsCoordinateBounds</a> + </li> + <li class="nav-group-task" data-name="MGLCoordinateBoundsIsEmpty" data-url="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateBoundsIsEmpty"> + <a title="MGLCoordinateBoundsIsEmpty" class="nav-group-task-link" href="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateBoundsIsEmpty">MGLCoordinateBoundsIsEmpty</a> + </li> + <li class="nav-group-task" data-name="MGLCoordinateBoundsMake" data-url="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateBoundsMake"> + <a title="MGLCoordinateBoundsMake" class="nav-group-task-link" href="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateBoundsMake">MGLCoordinateBoundsMake</a> + </li> + <li class="nav-group-task" data-name="MGLCoordinateBoundsOffset" data-url="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateBoundsOffset"> + <a title="MGLCoordinateBoundsOffset" class="nav-group-task-link" href="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateBoundsOffset">MGLCoordinateBoundsOffset</a> + </li> + <li class="nav-group-task" data-name="MGLCoordinateInCoordinateBounds" data-url="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateInCoordinateBounds"> + <a title="MGLCoordinateInCoordinateBounds" class="nav-group-task-link" href="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateInCoordinateBounds">MGLCoordinateInCoordinateBounds</a> + </li> + <li class="nav-group-task" data-name="MGLCoordinateSpan" data-url="Structs/MGLCoordinateSpan.html"> + <a title="MGLCoordinateSpan" class="nav-group-task-link" href="Structs/MGLCoordinateSpan.html">MGLCoordinateSpan</a> + </li> + <li class="nav-group-task" data-name="MGLCoordinateSpanEqualToCoordinateSpan" data-url="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateSpanEqualToCoordinateSpan"> + <a title="MGLCoordinateSpanEqualToCoordinateSpan" class="nav-group-task-link" href="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateSpanEqualToCoordinateSpan">MGLCoordinateSpanEqualToCoordinateSpan</a> + </li> + <li class="nav-group-task" data-name="MGLCoordinateSpanMake" data-url="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateSpanMake"> + <a title="MGLCoordinateSpanMake" class="nav-group-task-link" href="Geometry.html#/c:MGLGeometry.h@F@MGLCoordinateSpanMake">MGLCoordinateSpanMake</a> + </li> + <li class="nav-group-task" data-name="MGLCoordinateSpanZero" data-url="Geometry.html#/c:@MGLCoordinateSpanZero"> + <a title="MGLCoordinateSpanZero" class="nav-group-task-link" href="Geometry.html#/c:@MGLCoordinateSpanZero">MGLCoordinateSpanZero</a> + </li> + <li class="nav-group-task" data-name="MGLDegreesFromRadians" data-url="Geometry.html#/c:MGLGeometry.h@F@MGLDegreesFromRadians"> + <a title="MGLDegreesFromRadians" class="nav-group-task-link" href="Geometry.html#/c:MGLGeometry.h@F@MGLDegreesFromRadians">MGLDegreesFromRadians</a> + </li> + <li class="nav-group-task" data-name="MGLRadiansFromDegrees" data-url="Geometry.html#/c:MGLGeometry.h@F@MGLRadiansFromDegrees"> + <a title="MGLRadiansFromDegrees" class="nav-group-task-link" href="Geometry.html#/c:MGLGeometry.h@F@MGLRadiansFromDegrees">MGLRadiansFromDegrees</a> + </li> + <li class="nav-group-task" data-name="MGLStringFromCoordinateBounds" data-url="Geometry.html#/c:MGLGeometry.h@F@MGLStringFromCoordinateBounds"> + <a title="MGLStringFromCoordinateBounds" class="nav-group-task-link" href="Geometry.html#/c:MGLGeometry.h@F@MGLStringFromCoordinateBounds">MGLStringFromCoordinateBounds</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Formatters"> + <a class="small-heading" href="Formatters.html">Formatters<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLClockDirectionFormatter" data-url="Classes/MGLClockDirectionFormatter.html"> + <a title="MGLClockDirectionFormatter" class="nav-group-task-link" href="Classes/MGLClockDirectionFormatter.html">MGLClockDirectionFormatter</a> + </li> + <li class="nav-group-task" data-name="MGLCompassDirectionFormatter" data-url="Classes/MGLCompassDirectionFormatter.html"> + <a title="MGLCompassDirectionFormatter" class="nav-group-task-link" href="Classes/MGLCompassDirectionFormatter.html">MGLCompassDirectionFormatter</a> + </li> + <li class="nav-group-task" data-name="MGLCoordinateFormatter" data-url="Classes/MGLCoordinateFormatter.html"> + <a title="MGLCoordinateFormatter" class="nav-group-task-link" href="Classes/MGLCoordinateFormatter.html">MGLCoordinateFormatter</a> + </li> + <li class="nav-group-task" data-name="MGLDistanceFormatter" data-url="Classes/MGLDistanceFormatter.html"> + <a title="MGLDistanceFormatter" class="nav-group-task-link" href="Classes/MGLDistanceFormatter.html">MGLDistanceFormatter</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Other Categories"> + <a class="small-heading" href="Other Categories.html">Other Categories<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="NSExpression(MGLAdditions)" data-url="Categories/NSExpression(MGLAdditions).html"> + <a title="NSExpression(MGLAdditions)" class="nav-group-task-link" href="Categories/NSExpression(MGLAdditions).html">NSExpression(MGLAdditions)</a> + </li> + <li class="nav-group-task" data-name="NSValue(MGLAdditions)" data-url="Categories/NSValue(MGLAdditions).html"> + <a title="NSValue(MGLAdditions)" class="nav-group-task-link" href="Categories/NSValue(MGLAdditions).html">NSValue(MGLAdditions)</a> + </li> + <li class="nav-group-task" data-name="NSValue(MGLCircleStyleLayerAdditions)" data-url="Categories/NSValue(MGLCircleStyleLayerAdditions).html"> + <a title="NSValue(MGLCircleStyleLayerAdditions)" class="nav-group-task-link" href="Categories/NSValue(MGLCircleStyleLayerAdditions).html">NSValue(MGLCircleStyleLayerAdditions)</a> + </li> + <li class="nav-group-task" data-name="NSValue(MGLFillExtrusionStyleLayerAdditions)" data-url="Categories/NSValue(MGLFillExtrusionStyleLayerAdditions).html"> + <a title="NSValue(MGLFillExtrusionStyleLayerAdditions)" class="nav-group-task-link" href="Categories/NSValue(MGLFillExtrusionStyleLayerAdditions).html">NSValue(MGLFillExtrusionStyleLayerAdditions)</a> + </li> + <li class="nav-group-task" data-name="NSValue(MGLFillStyleLayerAdditions)" data-url="Categories/NSValue(MGLFillStyleLayerAdditions).html"> + <a title="NSValue(MGLFillStyleLayerAdditions)" class="nav-group-task-link" href="Categories/NSValue(MGLFillStyleLayerAdditions).html">NSValue(MGLFillStyleLayerAdditions)</a> + </li> + <li class="nav-group-task" data-name="NSValue(MGLHillshadeStyleLayerAdditions)" data-url="Categories/NSValue(MGLHillshadeStyleLayerAdditions).html"> + <a title="NSValue(MGLHillshadeStyleLayerAdditions)" class="nav-group-task-link" href="Categories/NSValue(MGLHillshadeStyleLayerAdditions).html">NSValue(MGLHillshadeStyleLayerAdditions)</a> + </li> + <li class="nav-group-task" data-name="NSValue(MGLLineStyleLayerAdditions)" data-url="Categories/NSValue(MGLLineStyleLayerAdditions).html"> + <a title="NSValue(MGLLineStyleLayerAdditions)" class="nav-group-task-link" href="Categories/NSValue(MGLLineStyleLayerAdditions).html">NSValue(MGLLineStyleLayerAdditions)</a> + </li> + <li class="nav-group-task" data-name="NSValue(MGLRasterStyleLayerAdditions)" data-url="Categories/NSValue(MGLRasterStyleLayerAdditions).html"> + <a title="NSValue(MGLRasterStyleLayerAdditions)" class="nav-group-task-link" href="Categories/NSValue(MGLRasterStyleLayerAdditions).html">NSValue(MGLRasterStyleLayerAdditions)</a> + </li> + <li class="nav-group-task" data-name="NSValue(MGLSymbolStyleLayerAdditions)" data-url="Categories/NSValue(MGLSymbolStyleLayerAdditions).html"> + <a title="NSValue(MGLSymbolStyleLayerAdditions)" class="nav-group-task-link" href="Categories/NSValue(MGLSymbolStyleLayerAdditions).html">NSValue(MGLSymbolStyleLayerAdditions)</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Other Classes"> + <a class="small-heading" href="Other Classes.html">Other Classes<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLAttributionInfo" data-url="Classes/MGLAttributionInfo.html"> + <a title="MGLAttributionInfo" class="nav-group-task-link" href="Classes/MGLAttributionInfo.html">MGLAttributionInfo</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Other Constants"> + <a class="small-heading" href="Other Constants.html">Other Constants<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLErrorDomain" data-url="Other Constants.html#/c:@MGLErrorDomain"> + <a title="MGLErrorDomain" class="nav-group-task-link" href="Other Constants.html#/c:@MGLErrorDomain">MGLErrorDomain</a> + </li> + <li class="nav-group-task" data-name="MGLExpressionInterpolationModeCubicBezier" data-url="Other Constants.html#/c:@MGLExpressionInterpolationModeCubicBezier"> + <a title="MGLExpressionInterpolationModeCubicBezier" class="nav-group-task-link" href="Other Constants.html#/c:@MGLExpressionInterpolationModeCubicBezier">MGLExpressionInterpolationModeCubicBezier</a> + </li> + <li class="nav-group-task" data-name="MGLExpressionInterpolationModeExponential" data-url="Other Constants.html#/c:@MGLExpressionInterpolationModeExponential"> + <a title="MGLExpressionInterpolationModeExponential" class="nav-group-task-link" href="Other Constants.html#/c:@MGLExpressionInterpolationModeExponential">MGLExpressionInterpolationModeExponential</a> + </li> + <li class="nav-group-task" data-name="MGLExpressionInterpolationModeLinear" data-url="Other Constants.html#/c:@MGLExpressionInterpolationModeLinear"> + <a title="MGLExpressionInterpolationModeLinear" class="nav-group-task-link" href="Other Constants.html#/c:@MGLExpressionInterpolationModeLinear">MGLExpressionInterpolationModeLinear</a> + </li> + <li class="nav-group-task" data-name="MGLOfflinePackErrorNotification" data-url="Other Constants.html#/c:@MGLOfflinePackErrorNotification"> + <a title="MGLOfflinePackErrorNotification" class="nav-group-task-link" href="Other Constants.html#/c:@MGLOfflinePackErrorNotification">MGLOfflinePackErrorNotification</a> + </li> + <li class="nav-group-task" data-name="MGLOfflinePackMaximumMapboxTilesReachedNotification" data-url="Other Constants.html#/c:@MGLOfflinePackMaximumMapboxTilesReachedNotification"> + <a title="MGLOfflinePackMaximumMapboxTilesReachedNotification" class="nav-group-task-link" href="Other Constants.html#/c:@MGLOfflinePackMaximumMapboxTilesReachedNotification">MGLOfflinePackMaximumMapboxTilesReachedNotification</a> + </li> + <li class="nav-group-task" data-name="MGLOfflinePackProgressChangedNotification" data-url="Other Constants.html#/c:@MGLOfflinePackProgressChangedNotification"> + <a title="MGLOfflinePackProgressChangedNotification" class="nav-group-task-link" href="Other Constants.html#/c:@MGLOfflinePackProgressChangedNotification">MGLOfflinePackProgressChangedNotification</a> + </li> + <li class="nav-group-task" data-name="MGLOfflinePackUserInfoKeyError" data-url="Other Constants.html#/c:@MGLOfflinePackUserInfoKeyError"> + <a title="MGLOfflinePackUserInfoKeyError" class="nav-group-task-link" href="Other Constants.html#/c:@MGLOfflinePackUserInfoKeyError">MGLOfflinePackUserInfoKeyError</a> + </li> + <li class="nav-group-task" data-name="MGLOfflinePackUserInfoKeyMaximumCount" data-url="Other Constants.html#/c:@MGLOfflinePackUserInfoKeyMaximumCount"> + <a title="MGLOfflinePackUserInfoKeyMaximumCount" class="nav-group-task-link" href="Other Constants.html#/c:@MGLOfflinePackUserInfoKeyMaximumCount">MGLOfflinePackUserInfoKeyMaximumCount</a> + </li> + <li class="nav-group-task" data-name="MGLOfflinePackUserInfoKeyProgress" data-url="Other Constants.html#/c:@MGLOfflinePackUserInfoKeyProgress"> + <a title="MGLOfflinePackUserInfoKeyProgress" class="nav-group-task-link" href="Other Constants.html#/c:@MGLOfflinePackUserInfoKeyProgress">MGLOfflinePackUserInfoKeyProgress</a> + </li> + <li class="nav-group-task" data-name="MGLOfflinePackUserInfoKeyState" data-url="Other Constants.html#/c:@MGLOfflinePackUserInfoKeyState"> + <a title="MGLOfflinePackUserInfoKeyState" class="nav-group-task-link" href="Other Constants.html#/c:@MGLOfflinePackUserInfoKeyState">MGLOfflinePackUserInfoKeyState</a> + </li> + <li class="nav-group-task" data-name="MGLShapeSourceOptionBuffer" data-url="Other Constants.html#/c:@MGLShapeSourceOptionBuffer"> + <a title="MGLShapeSourceOptionBuffer" class="nav-group-task-link" href="Other Constants.html#/c:@MGLShapeSourceOptionBuffer">MGLShapeSourceOptionBuffer</a> + </li> + <li class="nav-group-task" data-name="MGLShapeSourceOptionClipsCoordinates" data-url="Other Constants.html#/c:@MGLShapeSourceOptionClipsCoordinates"> + <a title="MGLShapeSourceOptionClipsCoordinates" class="nav-group-task-link" href="Other Constants.html#/c:@MGLShapeSourceOptionClipsCoordinates">MGLShapeSourceOptionClipsCoordinates</a> + </li> + <li class="nav-group-task" data-name="MGLShapeSourceOptionClusterRadius" data-url="Other Constants.html#/c:@MGLShapeSourceOptionClusterRadius"> + <a title="MGLShapeSourceOptionClusterRadius" class="nav-group-task-link" href="Other Constants.html#/c:@MGLShapeSourceOptionClusterRadius">MGLShapeSourceOptionClusterRadius</a> + </li> + <li class="nav-group-task" data-name="MGLShapeSourceOptionClustered" data-url="Other Constants.html#/c:@MGLShapeSourceOptionClustered"> + <a title="MGLShapeSourceOptionClustered" class="nav-group-task-link" href="Other Constants.html#/c:@MGLShapeSourceOptionClustered">MGLShapeSourceOptionClustered</a> + </li> + <li class="nav-group-task" data-name="MGLShapeSourceOptionMaximumZoomLevel" data-url="Other Constants.html#/c:@MGLShapeSourceOptionMaximumZoomLevel"> + <a title="MGLShapeSourceOptionMaximumZoomLevel" class="nav-group-task-link" href="Other Constants.html#/c:@MGLShapeSourceOptionMaximumZoomLevel">MGLShapeSourceOptionMaximumZoomLevel</a> + </li> + <li class="nav-group-task" data-name="MGLShapeSourceOptionMaximumZoomLevelForClustering" data-url="Other Constants.html#/c:@MGLShapeSourceOptionMaximumZoomLevelForClustering"> + <a title="MGLShapeSourceOptionMaximumZoomLevelForClustering" class="nav-group-task-link" href="Other Constants.html#/c:@MGLShapeSourceOptionMaximumZoomLevelForClustering">MGLShapeSourceOptionMaximumZoomLevelForClustering</a> + </li> + <li class="nav-group-task" data-name="MGLShapeSourceOptionMinimumZoomLevel" data-url="Other Constants.html#/c:@MGLShapeSourceOptionMinimumZoomLevel"> + <a title="MGLShapeSourceOptionMinimumZoomLevel" class="nav-group-task-link" href="Other Constants.html#/c:@MGLShapeSourceOptionMinimumZoomLevel">MGLShapeSourceOptionMinimumZoomLevel</a> + </li> + <li class="nav-group-task" data-name="MGLShapeSourceOptionSimplificationTolerance" data-url="Other Constants.html#/c:@MGLShapeSourceOptionSimplificationTolerance"> + <a title="MGLShapeSourceOptionSimplificationTolerance" class="nav-group-task-link" href="Other Constants.html#/c:@MGLShapeSourceOptionSimplificationTolerance">MGLShapeSourceOptionSimplificationTolerance</a> + </li> + <li class="nav-group-task" data-name="MGLShapeSourceOptionWrapsCoordinates" data-url="Other Constants.html#/c:@MGLShapeSourceOptionWrapsCoordinates"> + <a title="MGLShapeSourceOptionWrapsCoordinates" class="nav-group-task-link" href="Other Constants.html#/c:@MGLShapeSourceOptionWrapsCoordinates">MGLShapeSourceOptionWrapsCoordinates</a> + </li> + <li class="nav-group-task" data-name="MGLStyleDefaultVersion" data-url="Other Constants.html#/c:MGLStyle.h@MGLStyleDefaultVersion"> + <a title="MGLStyleDefaultVersion" class="nav-group-task-link" href="Other Constants.html#/c:MGLStyle.h@MGLStyleDefaultVersion">MGLStyleDefaultVersion</a> + </li> + <li class="nav-group-task" data-name="MGLTileSourceOptionAttributionHTMLString" data-url="Other Constants.html#/c:@MGLTileSourceOptionAttributionHTMLString"> + <a title="MGLTileSourceOptionAttributionHTMLString" class="nav-group-task-link" href="Other Constants.html#/c:@MGLTileSourceOptionAttributionHTMLString">MGLTileSourceOptionAttributionHTMLString</a> + </li> + <li class="nav-group-task" data-name="MGLTileSourceOptionAttributionInfos" data-url="Other Constants.html#/c:@MGLTileSourceOptionAttributionInfos"> + <a title="MGLTileSourceOptionAttributionInfos" class="nav-group-task-link" href="Other Constants.html#/c:@MGLTileSourceOptionAttributionInfos">MGLTileSourceOptionAttributionInfos</a> + </li> + <li class="nav-group-task" data-name="MGLTileSourceOptionCoordinateBounds" data-url="Other Constants.html#/c:@MGLTileSourceOptionCoordinateBounds"> + <a title="MGLTileSourceOptionCoordinateBounds" class="nav-group-task-link" href="Other Constants.html#/c:@MGLTileSourceOptionCoordinateBounds">MGLTileSourceOptionCoordinateBounds</a> + </li> + <li class="nav-group-task" data-name="MGLTileSourceOptionDEMEncoding" data-url="Other Constants.html#/c:@MGLTileSourceOptionDEMEncoding"> + <a title="MGLTileSourceOptionDEMEncoding" class="nav-group-task-link" href="Other Constants.html#/c:@MGLTileSourceOptionDEMEncoding">MGLTileSourceOptionDEMEncoding</a> + </li> + <li class="nav-group-task" data-name="MGLTileSourceOptionMaximumZoomLevel" data-url="Other Constants.html#/c:@MGLTileSourceOptionMaximumZoomLevel"> + <a title="MGLTileSourceOptionMaximumZoomLevel" class="nav-group-task-link" href="Other Constants.html#/c:@MGLTileSourceOptionMaximumZoomLevel">MGLTileSourceOptionMaximumZoomLevel</a> + </li> + <li class="nav-group-task" data-name="MGLTileSourceOptionMinimumZoomLevel" data-url="Other Constants.html#/c:@MGLTileSourceOptionMinimumZoomLevel"> + <a title="MGLTileSourceOptionMinimumZoomLevel" class="nav-group-task-link" href="Other Constants.html#/c:@MGLTileSourceOptionMinimumZoomLevel">MGLTileSourceOptionMinimumZoomLevel</a> + </li> + <li class="nav-group-task" data-name="MGLTileSourceOptionTileCoordinateSystem" data-url="Other Constants.html#/c:@MGLTileSourceOptionTileCoordinateSystem"> + <a title="MGLTileSourceOptionTileCoordinateSystem" class="nav-group-task-link" href="Other Constants.html#/c:@MGLTileSourceOptionTileCoordinateSystem">MGLTileSourceOptionTileCoordinateSystem</a> + </li> + <li class="nav-group-task" data-name="MGLTileSourceOptionTileSize" data-url="Other Constants.html#/c:@MGLTileSourceOptionTileSize"> + <a title="MGLTileSourceOptionTileSize" class="nav-group-task-link" href="Other Constants.html#/c:@MGLTileSourceOptionTileSize">MGLTileSourceOptionTileSize</a> + </li> + <li class="nav-group-task" data-name="MapboxVersionNumber" data-url="Other Constants.html#/c:@MapboxVersionNumber"> + <a title="MapboxVersionNumber" class="nav-group-task-link" href="Other Constants.html#/c:@MapboxVersionNumber">MapboxVersionNumber</a> + </li> + <li class="nav-group-task" data-name="MapboxVersionString" data-url="Other Constants.html#/c:@MapboxVersionString"> + <a title="MapboxVersionString" class="nav-group-task-link" href="Other Constants.html#/c:@MapboxVersionString">MapboxVersionString</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Other Enumerations"> + <a class="small-heading" href="Other Enumerations.html">Other Enumerations<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLAttributionInfoStyle" data-url="Enums/MGLAttributionInfoStyle.html"> + <a title="MGLAttributionInfoStyle" class="nav-group-task-link" href="Enums/MGLAttributionInfoStyle.html">MGLAttributionInfoStyle</a> + </li> + <li class="nav-group-task" data-name="MGLCirclePitchAlignment" data-url="Enums/MGLCirclePitchAlignment.html"> + <a title="MGLCirclePitchAlignment" class="nav-group-task-link" href="Enums/MGLCirclePitchAlignment.html">MGLCirclePitchAlignment</a> + </li> + <li class="nav-group-task" data-name="MGLCircleScaleAlignment" data-url="Enums/MGLCircleScaleAlignment.html"> + <a title="MGLCircleScaleAlignment" class="nav-group-task-link" href="Enums/MGLCircleScaleAlignment.html">MGLCircleScaleAlignment</a> + </li> + <li class="nav-group-task" data-name="MGLCircleTranslationAnchor" data-url="Enums/MGLCircleTranslationAnchor.html"> + <a title="MGLCircleTranslationAnchor" class="nav-group-task-link" href="Enums/MGLCircleTranslationAnchor.html">MGLCircleTranslationAnchor</a> + </li> + <li class="nav-group-task" data-name="MGLDEMEncoding" data-url="Enums/MGLDEMEncoding.html"> + <a title="MGLDEMEncoding" class="nav-group-task-link" href="Enums/MGLDEMEncoding.html">MGLDEMEncoding</a> + </li> + <li class="nav-group-task" data-name="MGLErrorCode" data-url="Enums/MGLErrorCode.html"> + <a title="MGLErrorCode" class="nav-group-task-link" href="Enums/MGLErrorCode.html">MGLErrorCode</a> + </li> + <li class="nav-group-task" data-name="MGLFillExtrusionTranslationAnchor" data-url="Enums/MGLFillExtrusionTranslationAnchor.html"> + <a title="MGLFillExtrusionTranslationAnchor" class="nav-group-task-link" href="Enums/MGLFillExtrusionTranslationAnchor.html">MGLFillExtrusionTranslationAnchor</a> + </li> + <li class="nav-group-task" data-name="MGLFillTranslationAnchor" data-url="Enums/MGLFillTranslationAnchor.html"> + <a title="MGLFillTranslationAnchor" class="nav-group-task-link" href="Enums/MGLFillTranslationAnchor.html">MGLFillTranslationAnchor</a> + </li> + <li class="nav-group-task" data-name="MGLHillshadeIlluminationAnchor" data-url="Enums/MGLHillshadeIlluminationAnchor.html"> + <a title="MGLHillshadeIlluminationAnchor" class="nav-group-task-link" href="Enums/MGLHillshadeIlluminationAnchor.html">MGLHillshadeIlluminationAnchor</a> + </li> + <li class="nav-group-task" data-name="MGLIconAnchor" data-url="Enums/MGLIconAnchor.html"> + <a title="MGLIconAnchor" class="nav-group-task-link" href="Enums/MGLIconAnchor.html">MGLIconAnchor</a> + </li> + <li class="nav-group-task" data-name="MGLIconPitchAlignment" data-url="Enums/MGLIconPitchAlignment.html"> + <a title="MGLIconPitchAlignment" class="nav-group-task-link" href="Enums/MGLIconPitchAlignment.html">MGLIconPitchAlignment</a> + </li> + <li class="nav-group-task" data-name="MGLIconRotationAlignment" data-url="Enums/MGLIconRotationAlignment.html"> + <a title="MGLIconRotationAlignment" class="nav-group-task-link" href="Enums/MGLIconRotationAlignment.html">MGLIconRotationAlignment</a> + </li> + <li class="nav-group-task" data-name="MGLIconTextFit" data-url="Enums/MGLIconTextFit.html"> + <a title="MGLIconTextFit" class="nav-group-task-link" href="Enums/MGLIconTextFit.html">MGLIconTextFit</a> + </li> + <li class="nav-group-task" data-name="MGLIconTranslationAnchor" data-url="Enums/MGLIconTranslationAnchor.html"> + <a title="MGLIconTranslationAnchor" class="nav-group-task-link" href="Enums/MGLIconTranslationAnchor.html">MGLIconTranslationAnchor</a> + </li> + <li class="nav-group-task" data-name="MGLLightAnchor" data-url="Enums/MGLLightAnchor.html"> + <a title="MGLLightAnchor" class="nav-group-task-link" href="Enums/MGLLightAnchor.html">MGLLightAnchor</a> + </li> + <li class="nav-group-task" data-name="MGLLineCap" data-url="Enums/MGLLineCap.html"> + <a title="MGLLineCap" class="nav-group-task-link" href="Enums/MGLLineCap.html">MGLLineCap</a> + </li> + <li class="nav-group-task" data-name="MGLLineJoin" data-url="Enums/MGLLineJoin.html"> + <a title="MGLLineJoin" class="nav-group-task-link" href="Enums/MGLLineJoin.html">MGLLineJoin</a> + </li> + <li class="nav-group-task" data-name="MGLLineTranslationAnchor" data-url="Enums/MGLLineTranslationAnchor.html"> + <a title="MGLLineTranslationAnchor" class="nav-group-task-link" href="Enums/MGLLineTranslationAnchor.html">MGLLineTranslationAnchor</a> + </li> + <li class="nav-group-task" data-name="MGLMapDebugMaskOptions" data-url="Enums/MGLMapDebugMaskOptions.html"> + <a title="MGLMapDebugMaskOptions" class="nav-group-task-link" href="Enums/MGLMapDebugMaskOptions.html">MGLMapDebugMaskOptions</a> + </li> + <li class="nav-group-task" data-name="MGLRasterResamplingMode" data-url="Enums/MGLRasterResamplingMode.html"> + <a title="MGLRasterResamplingMode" class="nav-group-task-link" href="Enums/MGLRasterResamplingMode.html">MGLRasterResamplingMode</a> + </li> + <li class="nav-group-task" data-name="MGLResourceKind" data-url="Enums/MGLResourceKind.html"> + <a title="MGLResourceKind" class="nav-group-task-link" href="Enums/MGLResourceKind.html">MGLResourceKind</a> + </li> + <li class="nav-group-task" data-name="MGLSymbolPlacement" data-url="Enums/MGLSymbolPlacement.html"> + <a title="MGLSymbolPlacement" class="nav-group-task-link" href="Enums/MGLSymbolPlacement.html">MGLSymbolPlacement</a> + </li> + <li class="nav-group-task" data-name="MGLTextAnchor" data-url="Enums/MGLTextAnchor.html"> + <a title="MGLTextAnchor" class="nav-group-task-link" href="Enums/MGLTextAnchor.html">MGLTextAnchor</a> + </li> + <li class="nav-group-task" data-name="MGLTextJustification" data-url="Enums/MGLTextJustification.html"> + <a title="MGLTextJustification" class="nav-group-task-link" href="Enums/MGLTextJustification.html">MGLTextJustification</a> + </li> + <li class="nav-group-task" data-name="MGLTextPitchAlignment" data-url="Enums/MGLTextPitchAlignment.html"> + <a title="MGLTextPitchAlignment" class="nav-group-task-link" href="Enums/MGLTextPitchAlignment.html">MGLTextPitchAlignment</a> + </li> + <li class="nav-group-task" data-name="MGLTextRotationAlignment" data-url="Enums/MGLTextRotationAlignment.html"> + <a title="MGLTextRotationAlignment" class="nav-group-task-link" href="Enums/MGLTextRotationAlignment.html">MGLTextRotationAlignment</a> + </li> + <li class="nav-group-task" data-name="MGLTextTransform" data-url="Enums/MGLTextTransform.html"> + <a title="MGLTextTransform" class="nav-group-task-link" href="Enums/MGLTextTransform.html">MGLTextTransform</a> + </li> + <li class="nav-group-task" data-name="MGLTextTranslationAnchor" data-url="Enums/MGLTextTranslationAnchor.html"> + <a title="MGLTextTranslationAnchor" class="nav-group-task-link" href="Enums/MGLTextTranslationAnchor.html">MGLTextTranslationAnchor</a> + </li> + <li class="nav-group-task" data-name="MGLTileCoordinateSystem" data-url="Enums/MGLTileCoordinateSystem.html"> + <a title="MGLTileCoordinateSystem" class="nav-group-task-link" href="Enums/MGLTileCoordinateSystem.html">MGLTileCoordinateSystem</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Other Protocols"> + <a class="small-heading" href="Other Protocols.html">Other Protocols<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLComputedShapeSourceDataSource" data-url="Protocols/MGLComputedShapeSourceDataSource.html"> + <a title="MGLComputedShapeSourceDataSource" class="nav-group-task-link" href="Protocols/MGLComputedShapeSourceDataSource.html">MGLComputedShapeSourceDataSource</a> + </li> + <li class="nav-group-task" data-name="MGLOfflineStorageDelegate" data-url="Protocols/MGLOfflineStorageDelegate.html"> + <a title="MGLOfflineStorageDelegate" class="nav-group-task-link" href="Protocols/MGLOfflineStorageDelegate.html">MGLOfflineStorageDelegate</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Other Type Definitions"> + <a class="small-heading" href="Other Type Definitions.html">Other Type Definitions<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLMapSnapshotCompletionHandler" data-url="Other Type Definitions.html#/c:MGLMapSnapshotter.h@T@MGLMapSnapshotCompletionHandler"> + <a title="MGLMapSnapshotCompletionHandler" class="nav-group-task-link" href="Other Type Definitions.html#/c:MGLMapSnapshotter.h@T@MGLMapSnapshotCompletionHandler">MGLMapSnapshotCompletionHandler</a> + </li> + <li class="nav-group-task" data-name="MGLOfflinePackAdditionCompletionHandler" data-url="Other Type Definitions.html#/c:MGLOfflineStorage.h@T@MGLOfflinePackAdditionCompletionHandler"> + <a title="MGLOfflinePackAdditionCompletionHandler" class="nav-group-task-link" href="Other Type Definitions.html#/c:MGLOfflineStorage.h@T@MGLOfflinePackAdditionCompletionHandler">MGLOfflinePackAdditionCompletionHandler</a> + </li> + <li class="nav-group-task" data-name="MGLOfflinePackRemovalCompletionHandler" data-url="Other Type Definitions.html#/c:MGLOfflineStorage.h@T@MGLOfflinePackRemovalCompletionHandler"> + <a title="MGLOfflinePackRemovalCompletionHandler" class="nav-group-task-link" href="Other Type Definitions.html#/c:MGLOfflineStorage.h@T@MGLOfflinePackRemovalCompletionHandler">MGLOfflinePackRemovalCompletionHandler</a> + </li> + <li class="nav-group-task" data-name="MGLOfflinePackUserInfoKey" data-url="Other Type Definitions.html#/c:MGLOfflineStorage.h@T@MGLOfflinePackUserInfoKey"> + <a title="MGLOfflinePackUserInfoKey" class="nav-group-task-link" href="Other Type Definitions.html#/c:MGLOfflineStorage.h@T@MGLOfflinePackUserInfoKey">MGLOfflinePackUserInfoKey</a> + </li> + <li class="nav-group-task" data-name="MGLShapeSourceOption" data-url="Other Type Definitions.html#/c:MGLShapeSource.h@T@MGLShapeSourceOption"> + <a title="MGLShapeSourceOption" class="nav-group-task-link" href="Other Type Definitions.html#/c:MGLShapeSource.h@T@MGLShapeSourceOption">MGLShapeSourceOption</a> + </li> + <li class="nav-group-task" data-name="MGLTileSourceOption" data-url="Other Type Definitions.html#/c:MGLTileSource.h@T@MGLTileSourceOption"> + <a title="MGLTileSourceOption" class="nav-group-task-link" href="Other Type Definitions.html#/c:MGLTileSource.h@T@MGLTileSourceOption">MGLTileSourceOption</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Other Functions"> + <a class="small-heading" href="Other Functions.html">Other Functions<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLCoordinateQuadFromCoordinateBounds" data-url="Other Functions.html#/c:MGLGeometry.h@F@MGLCoordinateQuadFromCoordinateBounds"> + <a title="MGLCoordinateQuadFromCoordinateBounds" class="nav-group-task-link" href="Other Functions.html#/c:MGLGeometry.h@F@MGLCoordinateQuadFromCoordinateBounds">MGLCoordinateQuadFromCoordinateBounds</a> + </li> + <li class="nav-group-task" data-name="MGLCoordinateQuadMake" data-url="Other Functions.html#/c:MGLGeometry.h@F@MGLCoordinateQuadMake"> + <a title="MGLCoordinateQuadMake" class="nav-group-task-link" href="Other Functions.html#/c:MGLGeometry.h@F@MGLCoordinateQuadMake">MGLCoordinateQuadMake</a> + </li> + <li class="nav-group-task" data-name="MGLMapPointForCoordinate" data-url="Other Functions.html#/c:@F@MGLMapPointForCoordinate"> + <a title="MGLMapPointForCoordinate" class="nav-group-task-link" href="Other Functions.html#/c:@F@MGLMapPointForCoordinate">MGLMapPointForCoordinate</a> + </li> + <li class="nav-group-task" data-name="MGLMapPointMake" data-url="Other Functions.html#/c:MGLGeometry.h@F@MGLMapPointMake"> + <a title="MGLMapPointMake" class="nav-group-task-link" href="Other Functions.html#/c:MGLGeometry.h@F@MGLMapPointMake">MGLMapPointMake</a> + </li> + <li class="nav-group-task" data-name="MGLSphericalPositionMake" data-url="Other Functions.html#/c:MGLLight.h@F@MGLSphericalPositionMake"> + <a title="MGLSphericalPositionMake" class="nav-group-task-link" href="Other Functions.html#/c:MGLLight.h@F@MGLSphericalPositionMake">MGLSphericalPositionMake</a> + </li> + <li class="nav-group-task" data-name="MGLStringFromCoordinateQuad" data-url="Other Functions.html#/c:MGLGeometry.h@F@MGLStringFromCoordinateQuad"> + <a title="MGLStringFromCoordinateQuad" class="nav-group-task-link" href="Other Functions.html#/c:MGLGeometry.h@F@MGLStringFromCoordinateQuad">MGLStringFromCoordinateQuad</a> + </li> + <li class="nav-group-task" data-name="MGLTransitionMake" data-url="Other Functions.html#/c:MGLTypes.h@F@MGLTransitionMake"> + <a title="MGLTransitionMake" class="nav-group-task-link" href="Other Functions.html#/c:MGLTypes.h@F@MGLTransitionMake">MGLTransitionMake</a> + </li> + </ul> + </li> + <li class="nav-group-name" data-name="Other Structures"> + <a class="small-heading" href="Other Structures.html">Other Structures<span class="anchor-icon" /></a> + <ul class="nav-group-tasks"> + <li class="nav-group-task" data-name="MGLCoordinateQuad" data-url="Structs/MGLCoordinateQuad.html"> + <a title="MGLCoordinateQuad" class="nav-group-task-link" href="Structs/MGLCoordinateQuad.html">MGLCoordinateQuad</a> + </li> + <li class="nav-group-task" data-name="MGLSphericalPosition" data-url="Structs/MGLSphericalPosition.html"> + <a title="MGLSphericalPosition" class="nav-group-task-link" href="Structs/MGLSphericalPosition.html">MGLSphericalPosition</a> + </li> + <li class="nav-group-task" data-name="MGLTransition" data-url="Structs/MGLTransition.html"> + <a title="MGLTransition" class="nav-group-task-link" href="Structs/MGLTransition.html">MGLTransition</a> + </li> + </ul> + </li> + </ul> + </nav> + <article class="main-content"> + + <section class="section"> + <div class="section-content"> + + <h1 id='predicates-and-expressions' class='heading'>Predicates and expressions</h1> + +<p>Style layers use predicates and expressions to determine what to display and how +to format it. <em>Predicates</em> are represented by the same <code>NSPredicate</code> class that +filters results from Core Data or items in an <code>NSArray</code> in Objective-C. +Predicates are based on <em>expressions</em>, represented by the <code>NSExpression</code> class. +Somewhat unusually, style layers also use expressions on their own.</p> + +<p>This document discusses the specific subset of the predicate and expression +syntax supported by this SDK. For a more general introduction to predicates and +expressions, consult the +<em><a href="https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Predicates/AdditionalChapters/Introduction.html">Predicate Programming Guide</a></em> +in Apple developer documentation.</p> +<h2 id='using-predicates-to-filter-vector-data' class='heading'>Using predicates to filter vector data</h2> + +<p>Most style layer classes display <code><a href="Protocols/MGLFeature.html">MGLFeature</a></code> objects that you can show or hide +based on the feature’s attributes. Use the <code><a href="Classes/MGLVectorStyleLayer.html#/c:objc(cs)MGLVectorStyleLayer(py)predicate">MGLVectorStyleLayer.predicate</a></code> +property to include only the features in the source layer that satisfy a +condition that you define.</p> +<h3 id='operators' class='heading'>Operators</h3> + +<p>The following comparison operators are supported:</p> + +<table><thead> +<tr> +<th><code>NSPredicateOperatorType</code></th> +<th>Format string syntax</th> +</tr> +</thead><tbody> +<tr> +<td><code>NSEqualToPredicateOperatorType</code></td> +<td><code>key = value</code><br /><code>key == value</code></td> +</tr> +<tr> +<td><code>NSGreaterThanOrEqualToPredicateOperatorType</code></td> +<td><code>key >= value</code><br /><code>key => value</code></td> +</tr> +<tr> +<td><code>NSLessThanOrEqualToPredicateOperatorType</code></td> +<td><code>key <= value</code><br /><code>key =< value</code></td> +</tr> +<tr> +<td><code>NSGreaterThanPredicateOperatorType</code></td> +<td><code>key > value</code></td> +</tr> +<tr> +<td><code>NSLessThanPredicateOperatorType</code></td> +<td><code>key < value</code></td> +</tr> +<tr> +<td><code>NSNotEqualToPredicateOperatorType</code></td> +<td><code>key != value</code><br /><code>key <> value</code></td> +</tr> +<tr> +<td><code>NSBetweenPredicateOperatorType</code></td> +<td><code>key BETWEEN { 32, 212 }</code></td> +</tr> +</tbody></table> + +<p>To test whether a feature has or lacks a specific attribute, compare the +attribute to <code>NULL</code> or <code>NIL</code>. Predicates created using the +<code>+[NSPredicate predicateWithValue:]</code> method are also supported. String +operators and custom operators are not supported.</p> + +<p>The following compound operators are supported:</p> + +<table><thead> +<tr> +<th><code>NSCompoundPredicateType</code></th> +<th>Format string syntax</th> +</tr> +</thead><tbody> +<tr> +<td><code>NSAndPredicateType</code></td> +<td><code>predicate1 AND predicate2</code><br /><code>predicate1 && predicate2</code></td> +</tr> +<tr> +<td><code>NSOrPredicateType</code></td> +<td><code>predicate1 OR predicate2</code><br /><code>predicate1 || predicate2</code></td> +</tr> +<tr> +<td><code>NSNotPredicateType</code></td> +<td><code>NOT predicate</code><br /><code>!predicate</code></td> +</tr> +</tbody></table> + +<p>The following aggregate operators are supported:</p> + +<table><thead> +<tr> +<th><code>NSPredicateOperatorType</code></th> +<th>Format string syntax</th> +</tr> +</thead><tbody> +<tr> +<td><code>NSInPredicateOperatorType</code></td> +<td><code>key IN { 'iOS', 'macOS', 'tvOS', 'watchOS' }</code></td> +</tr> +<tr> +<td><code>NSContainsPredicateOperatorType</code></td> +<td><code>{ 'iOS', 'macOS', 'tvOS', 'watchOS' } CONTAINS key</code></td> +</tr> +</tbody></table> + +<p>The following comparison predicate options are supported for comparison and +aggregate operators that are used in the predicate:</p> + +<table><thead> +<tr> +<th><code>NSComparisonPredicateOptions</code></th> +<th>Format string syntax</th> +</tr> +</thead><tbody> +<tr> +<td><code>NSCaseInsensitivePredicateOption</code></td> +<td><code>'QUEBEC' =[c] 'Quebec'</code></td> +</tr> +<tr> +<td><code>NSDiacriticInsensitivePredicateOption</code></td> +<td><code>'Québec' =[d] 'Quebec'</code></td> +</tr> +</tbody></table> + +<p>Other comparison predicate options are unsupported, namely <code>l</code> +(for locale sensitivity) and <code>n</code> (for normalization). A comparison is +locale-sensitive as long as it is case- or diacritic-insensitive.</p> +<h3 id='operands' class='heading'>Operands</h3> + +<p>Operands in predicates can be <a href="#variables">variables</a>, <a href="#key-paths">key paths</a>, +or almost anything else that can appear +<a href="#using-expressions-to-configure-layout-and-paint-attributes">inside an expression</a>.</p> + +<p>Automatic type casting is not performed. Therefore, a feature only matches a +predicate if its value for the attribute in question is of the same type as the +value specified in the predicate. Use the <code>CAST()</code> operator to convert a key +path or variable into a matching type:</p> + +<ul> +<li>To cast a value to a number, use <code>CAST(key, 'NSNumber')</code>.</li> +<li>To cast a value to a string, use <code>CAST(key, 'NSString')</code>.</li> +<li>To cast a value to a color, use <code>CAST(key, 'UIColor')</code> on iOS and <code>CAST(key, 'NSColor')</code> on macOS.</li> +<li>To cast an <code>NSColor</code> or <code>UIColor</code> object to an array, use <code>CAST(noindex(color), 'NSArray')</code>.</li> +</ul> + +<p>For details about the predicate format string syntax, consult the “Predicate +Format String Syntax” chapter of the +<em><a href="https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Predicates/AdditionalChapters/Introduction.html">Predicate Programming Guide</a></em> +in Apple developer documentation.</p> +<h2 id='using-expressions-to-configure-layout-and-paint-attributes' class='heading'>Using expressions to configure layout and paint attributes</h2> + +<p>An expression can contain subexpressions of various types. Each of the supported +types of expressions is discussed below.</p> +<h3 id='constant-values' class='heading'>Constant values</h3> + +<p>A constant value can be of any of the following types:</p> + +<table><thead> +<tr> +<th>In Objective-C</th> +<th>In Swift</th> +</tr> +</thead><tbody> +<tr> +<td><code>NSColor</code> (macOS)<br><code>UIColor</code> (iOS)</td> +<td><code>NSColor</code> (macOS)<br><code>UIColor</code> (iOS)</td> +</tr> +<tr> +<td><code>NSString</code></td> +<td><code>String</code></td> +</tr> +<tr> +<td><code>NSString</code></td> +<td><code>String</code></td> +</tr> +<tr> +<td><code>NSNumber.boolValue</code></td> +<td><code>NSNumber.boolValue</code></td> +</tr> +<tr> +<td><code>NSNumber.doubleValue</code></td> +<td><code>NSNumber.doubleValue</code></td> +</tr> +<tr> +<td><code>NSArray<NSNumber></code></td> +<td><code>[Float]</code></td> +</tr> +<tr> +<td><code>NSArray<NSString></code></td> +<td><code>[String]</code></td> +</tr> +<tr> +<td><code>NSValue.CGVectorValue</code> (iOS)<br><code>NSValue</code> containing <code>CGVector</code> (macOS)</td> +<td><code>NSValue.cgVectorValue</code> (iOS)<br><code>NSValue</code> containing <code>CGVector</code> (macOS)</td> +</tr> +<tr> +<td><code>NSValue.UIEdgeInsetsValue</code> (iOS)<br><code>NSValue.edgeInsetsValue</code> (macOS)</td> +<td><code>NSValue.uiEdgeInsetsValue</code> (iOS)<br><code>NSValue.edgeInsetsValue</code> (macOS)</td> +</tr> +</tbody></table> + +<p>For literal floating-point values, use <code>-[NSNumber numberWithDouble:]</code> instead +of <code>-[NSNumber numberWithFloat:]</code> to avoid precision issues.</p> +<h3 id='key-paths' class='heading'>Key paths</h3> + +<p>A key path expression refers to an attribute of the <code><a href="Protocols/MGLFeature.html">MGLFeature</a></code> object being +evaluated for display. For example, if a polygon’s <code><a href="Protocols/MGLFeature.html#/c:objc(pl)MGLFeature(py)attributes">MGLFeature.attributes</a></code> +dictionary contains the <code>floorCount</code> key, then the key path <code>floorCount</code> refers +to the value of the <code>floorCount</code> attribute when evaluating that particular +polygon.</p> + +<p>The following special attribute is also available on features that are produced +as a result of clustering multiple point features together in a shape source:</p> + +<table> +<thead> +<tr><th>Attribute</th><th>Type</th><th>Meaning</th></tr> +</thead> +<tbody> +<tr> + <td><code>point_count</code></td> + <td>Number</td> + <td>The number of point features in a given cluster.</td> +</tr> +</tbody> +</table> + +<p>Some characters may not be used directly as part of a key path in a format +string. For example, if a feature’s attribute is named <code>ISO 3166-1:2006</code>, an +expression format string of <code>lowercase(ISO 3166-1:2006)</code> or a predicate format +string of <code>ISO 3166-1:2006 == 'US-OH'</code> would raise an exception. Instead, use a +<code>%K</code> placeholder or the <code>+[NSExpression expressionForKeyPath:]</code> initializer:</p> +<pre class="highlight objective_c"><code><span class="p">[</span><span class="n">NSPredicate</span> <span class="nf">predicateWithFormat</span><span class="p">:</span><span class="s">@"%K == 'US-OH'"</span><span class="p">,</span> <span class="s">@"ISO 3166-1:2006"</span><span class="p">];</span> +<span class="p">[</span><span class="n">NSExpression</span> <span class="nf">expressionForFunction</span><span class="p">:</span><span class="s">@"lowercase:"</span> + <span class="nf">arguments</span><span class="p">:@[[</span><span class="n">NSExpression</span> <span class="nf">expressionForKeyPath</span><span class="p">:</span><span class="s">@"ISO 3166-1:2006"</span><span class="p">]]]</span> +</code></pre> +<pre class="highlight swift"><code><span class="kt">NSPredicate</span><span class="p">(</span><span class="nv">format</span><span class="p">:</span> <span class="s">"%K == 'US-OH'"</span><span class="p">,</span> <span class="s">"ISO 3166-1:2006"</span><span class="p">)</span> +<span class="kt">NSExpression</span><span class="p">(</span><span class="nv">forFunction</span><span class="p">:</span> <span class="s">"lowercase:"</span><span class="p">,</span> + <span class="nv">arguments</span><span class="p">:</span> <span class="p">[</span><span class="kt">NSExpression</span><span class="p">(</span><span class="nv">forKeyPath</span><span class="p">:</span> <span class="s">"ISO 3166-1:2006"</span><span class="p">)])</span> +</code></pre> +<h3 id='functions' class='heading'>Functions</h3> + +<p>Of the +<a href="https://developer.apple.com/documentation/foundation/nsexpression/1413747-init#discussion">functions predefined</a> +by the +<a href="https://developer.apple.com/documentation/foundation/nsexpression/1413747-init"><code>+[NSExpression expressionForFunction:arguments:]</code> method</a>, +the following subset is supported in layer attribute values:</p> + +<table><thead> +<tr> +<th>Initializer parameter</th> +<th>Format string syntax</th> +</tr> +</thead><tbody> +<tr> +<td><code>average:</code></td> +<td><code>average({1, 2, 2, 3, 4, 7, 9})</code></td> +</tr> +<tr> +<td><code>sum:</code></td> +<td><code>sum({1, 2, 2, 3, 4, 7, 9})</code></td> +</tr> +<tr> +<td><code>count:</code></td> +<td><code>count({1, 2, 2, 3, 4, 7, 9})</code></td> +</tr> +<tr> +<td><code>min:</code></td> +<td><code>min({1, 2, 2, 3, 4, 7, 9})</code></td> +</tr> +<tr> +<td><code>max:</code></td> +<td><code>max({1, 2, 2, 3, 4, 7, 9})</code></td> +</tr> +<tr> +<td><code>add:to:</code></td> +<td><code>1 + 2</code></td> +</tr> +<tr> +<td><code>from:subtract:</code></td> +<td><code>2 - 1</code></td> +</tr> +<tr> +<td><code>multiply:by:</code></td> +<td><code>1 * 2</code></td> +</tr> +<tr> +<td><code>divide:by:</code></td> +<td><code>1 / 2</code></td> +</tr> +<tr> +<td><code>modulus:by:</code></td> +<td><code>modulus:by:(1, 2)</code></td> +</tr> +<tr> +<td><code>sqrt:</code></td> +<td><code>sqrt(2)</code></td> +</tr> +<tr> +<td><code>log:</code></td> +<td><code>log(10)</code></td> +</tr> +<tr> +<td><code>ln:</code></td> +<td><code>ln(2)</code></td> +</tr> +<tr> +<td><code>raise:toPower:</code></td> +<td><code>2 ** 2</code></td> +</tr> +<tr> +<td><code>exp:</code></td> +<td><code>exp(0)</code></td> +</tr> +<tr> +<td><code>ceiling:</code></td> +<td><code>ceiling(0.99999)</code></td> +</tr> +<tr> +<td><code>abs:</code></td> +<td><code>abs(-1)</code></td> +</tr> +<tr> +<td><code>trunc:</code></td> +<td><code>trunc(6378.1370)</code></td> +</tr> +<tr> +<td><code>floor:</code></td> +<td><code>floor(-0.99999)</code></td> +</tr> +<tr> +<td><code>uppercase:</code></td> +<td><code>uppercase('Elysian Fields')</code></td> +</tr> +<tr> +<td><code>lowercase:</code></td> +<td><code>lowercase('DOWNTOWN')</code></td> +</tr> +<tr> +<td><code>noindex:</code></td> +<td><code>noindex(0 + 2 + c)</code></td> +</tr> +<tr> +<td><code>length:</code></td> +<td><code>length('Wapakoneta')</code></td> +</tr> +<tr> +<td><code>castObject:toType:</code></td> +<td><code>CAST(ele, 'NSString')</code><br><code>CAST(ele, 'NSNumber')</code></td> +</tr> +</tbody></table> + +<p>A number of <a href="#mapbox-specific-functions">Mapbox-specific functions</a> are also +available.</p> + +<p>The following predefined functions are <strong>not</strong> supported:</p> + +<table><thead> +<tr> +<th>Initializer parameter</th> +<th>Format string syntax</th> +</tr> +</thead><tbody> +<tr> +<td><code>median:</code></td> +<td><code>median({1, 2, 2, 3, 4, 7, 9})</code></td> +</tr> +<tr> +<td><code>mode:</code></td> +<td><code>mode({1, 2, 2, 3, 4, 7, 9})</code></td> +</tr> +<tr> +<td><code>stddev:</code></td> +<td><code>stddev({1, 2, 2, 3, 4, 7, 9})</code></td> +</tr> +<tr> +<td><code>random</code></td> +<td><code>random()</code></td> +</tr> +<tr> +<td><code>randomn:</code></td> +<td><code>randomn(10)</code></td> +</tr> +<tr> +<td><code>now</code></td> +<td><code>now()</code></td> +</tr> +<tr> +<td><code>bitwiseAnd:with:</code></td> +<td><code>bitwiseAnd:with:(5, 3)</code></td> +</tr> +<tr> +<td><code>bitwiseOr:with:</code></td> +<td><code>bitwiseOr:with:(5, 3)</code></td> +</tr> +<tr> +<td><code>bitwiseXor:with:</code></td> +<td><code>bitwiseXor:with:(5, 3)</code></td> +</tr> +<tr> +<td><code>leftshift:by:</code></td> +<td><code>leftshift:by:(23, 1)</code></td> +</tr> +<tr> +<td><code>rightshift:by:</code></td> +<td><code>rightshift:by:(23, 1)</code></td> +</tr> +<tr> +<td><code>onesComplement:</code></td> +<td><code>onesComplement(255)</code></td> +</tr> +<tr> +<td><code>distanceToLocation:fromLocation:</code></td> +<td><code>distanceToLocation:fromLocation:(there, here)</code></td> +</tr> +</tbody></table> +<h3 id='conditionals' class='heading'>Conditionals</h3> + +<p>Conditionals are supported via the built-in +<code>+[NSExpression expressionForConditional:trueExpression:falseExpression:]</code> +method and <code>TERNARY()</code> operator. If you need to express multiple cases +(“else-if”), you can either nest a conditional within a conditional or use the +<a href="#code-mgl_if-code"><code>MGL_IF()</code></a> or <a href="#code-mgl_match-code"><code>MGL_MATCH()</code></a> function.</p> +<h3 id='aggregates' class='heading'>Aggregates</h3> + +<p>Aggregate expressions can contain arrays of expressions. In some cases, it is +possible to use the array itself instead of wrapping the array in an aggregate +expression.</p> +<h3 id='variables' class='heading'>Variables</h3> + +<p>The following variables are defined by this SDK for use with style layers:</p> + +<table> +<thead> +<tr><th>Variable</th><th>Type</th><th>Meaning</th></tr> +</thead> +<tbody> +<tr> + <td><code>$featureIdentifier</code></td> + <td> + Any + <a href="working-with-geojson-data.html#about-geojson-deserialization">GeoJSON data type</a> + </td> + <td> + A value that uniquely identifies the feature in the containing source. + This variable corresponds to the + <code>NSExpression.featureIdentifierVariableExpression</code> property. + </td> +</tr> +<tr> + <td><code>$geometryType</code></td> + <td>String</td> + <td> + The type of geometry represented by the feature. A feature’s type is one + of the following strings: + <ul> + <li> + <code>Point</code> for point features, corresponding to the + <code><a href="Classes/MGLPointAnnotation.html">MGLPointAnnotation</a></code> class + </li> + <li> + <code>LineString</code> for polyline features, corresponding to + the <code><a href="Classes/MGLPolyline.html">MGLPolyline</a></code> class + </li> + <li> + <code>Polygon</code> for polygon features, corresponding to the + <code><a href="Classes/MGLPolygon.html">MGLPolygon</a></code> class + </li> + </ul> + This variable corresponds to the + <code>NSExpression.geometryTypeVariableExpression</code> property. + </td> +</tr> +<tr> + <td><code>$heatmapDensity</code></td> + <td>Number</td> + <td> + The + <a href="https://en.wikipedia.org/wiki/Kernel_density_estimation">kernel density estimation</a> + of a screen point in a heatmap layer; in other words, a relative measure + of how many data points are crowded around a particular pixel. This + variable can only be used with the <code>heatmapColor</code> property. + This variable corresponds to the + <code>NSExpression.heatmapDensityVariableExpression</code> property. + </td> +</tr> +<tr> + <td><code>$zoomLevel</code></td> + <td>Number</td> + <td> + The current zoom level. In style layout and paint properties, this + variable may only appear as the target of a top-level interpolation or + step expression. This variable corresponds to the + <code>NSExpression.zoomLevelVariableExpression</code> property. + </td> +</tr> +</tbody> +</table> + +<p>In addition to these variables, you can define your own variables and refer to +them elsewhere in the expression. The syntax for defining a variable makes use +of a <a href="#mapbox-specific-functions">Mapbox-specific function</a> that takes an +<code>NSDictionary</code> as an argument:</p> +<pre class="highlight objective_c"><code><span class="p">[</span><span class="n">NSExpression</span> <span class="nf">expressionWithFormat</span><span class="p">:</span><span class="s">@"MGL_LET('floorCount', 2, $floorCount + 1)"</span><span class="p">];</span> +</code></pre> +<pre class="highlight swift"><code><span class="kt">NSExpression</span><span class="p">(</span><span class="nv">format</span><span class="p">:</span> <span class="s">"MGL_LET(floorCount, 2, $floorCount + 1)"</span><span class="p">)</span> +</code></pre> +<h2 id='mapbox-specific-functions' class='heading'>Mapbox-specific functions</h2> + +<p>For compatibility with the Mapbox Style Specification, the following functions +are defined by this SDK. When setting a style layer property, you can call these +functions just like the predefined functions above, using either the +<code>+[NSExpression expressionForFunction:arguments:]</code> method or a convenient format +string syntax:</p> +<h3 id='code-mgl_does-have-code' class='heading'><code>mgl_does:have:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_does:have:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>mgl_does:have:(SELF, '🧀🍔')</code> or <code>mgl_does:have:(%@, '🧀🍔')</code></dd> +</dl> + +<p>Returns a Boolean value indicating whether the dictionary has a value for the +key or whether the evaluated object (<code>SELF</code>) has a value for the feature +attribute. Compared to the <a href="#code-mgl_has-code"><code>mgl_has:</code></a> custom function, +that function’s target is instead passed in as the first argument to this +function. Both functions are equivalent to the syntax <code>key != NIL</code> or +<code>%@[key] != NIL</code> but can be used outside of a predicate.</p> +<h3 id='code-mgl_interpolate-withcurvetype-parameters-stops-code' class='heading'><code>mgl_interpolate:withCurveType:parameters:stops:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_interpolate:withCurveType:parameters:stops:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>mgl_interpolate:withCurveType:parameters:stops:(x, 'linear', nil, %@)</code></dd> +</dl> + +<p>Produces continuous, smooth results by interpolating between pairs of input and +output values (“stops”). Compared to the +<a href="#code-mgl_interpolatewithcurvetype-parameters-stops-code"><code>mgl_interpolateWithCurveType:parameters:stops:</code></a> +custom function, the input expression (that function’s target) is instead passed +in as the first argument to this function.</p> +<h3 id='code-mgl_step-from-stops-code' class='heading'><code>mgl_step:from:stops:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_step:from:stops:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>mgl_step:from:stops:(x, 11, %@)</code></dd> +</dl> + +<p>Produces discrete, stepped results by evaluating a piecewise-constant function +defined by pairs of input and output values (<q>stops</q>). Compared to the +<a href="#code-mgl_stepwithminimum-stops-code"><code>mgl_stepWithMinimum:stops:</code></a> custom +function, the input expression (that function’s target) is instead passed in as +the first argument to this function.</p> +<h3 id='code-mgl_join-code' class='heading'><code>mgl_join:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_join:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>mgl_join({'Old', 'MacDonald'})</code></dd> +</dl> + +<p>Returns the result of concatenating together all the elements of an array in +order. Compared to the +<a href="#code-stringbyappendingstring-code"><code>stringByAppendingString:</code></a> custom +function, this function takes only one argument, which is an aggregate +expression containing the strings to concatenate.</p> +<h3 id='code-mgl_acos-code' class='heading'><code>mgl_acos:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_acos:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>mgl_acos(1)</code></dd> +</dl> + +<p>Returns the arccosine of the number.</p> + +<p>This function corresponds to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-acos"><code>acos</code></a> +operator in the Mapbox Style Specification.</p> +<h3 id='code-mgl_asin-code' class='heading'><code>mgl_asin:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_asin:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>mgl_asin(0)</code></dd> +</dl> + +<p>Returns the arcsine of the number.</p> + +<p>This function corresponds to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-asin"><code>asin</code></a> +operator in the Mapbox Style Specification.</p> +<h3 id='code-mgl_atan-code' class='heading'><code>mgl_atan:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_atan:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>mgl_atan(20)</code></dd> +</dl> + +<p>Returns the arctangent of the number.</p> + +<p>This function corresponds to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-atan"><code>atan</code></a> +operator in the Mapbox Style Specification.</p> +<h3 id='code-mgl_cos-code' class='heading'><code>mgl_cos:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_cos:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>mgl_cos(0)</code></dd> +</dl> + +<p>Returns the cosine of the number.</p> + +<p>This function corresponds to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-cos"><code>cos</code></a> +operator in the Mapbox Style Specification.</p> +<h3 id='code-mgl_log2-code' class='heading'><code>mgl_log2:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_log2:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>mgl_log2(1024)</code></dd> +</dl> + +<p>Returns the base-2 logarithm of the number.</p> + +<p>This function corresponds to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-log2"><code>log2</code></a> +operator in the Mapbox Style Specification.</p> +<h3 id='code-mgl_round-code' class='heading'><code>mgl_round:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_round:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>mgl_round(1.5)</code></dd> +</dl> + +<p>Returns the number rounded to the nearest integer. If the number is halfway +between two integers, this function rounds it away from zero.</p> + +<p>This function corresponds to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-round"><code>round</code></a> +operator in the Mapbox Style Specification.</p> +<h3 id='code-mgl_sin-code' class='heading'><code>mgl_sin:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_sin:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>mgl_sin(0)</code></dd> +</dl> + +<p>Returns the sine of the number.</p> + +<p>This function corresponds to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-sin"><code>sin</code></a> +operator in the Mapbox Style Specification.</p> +<h3 id='code-mgl_tan-code' class='heading'><code>mgl_tan:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_tan:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>mgl_tan(0)</code></dd> +</dl> + +<p>Returns the tangent of the number.</p> + +<p>This function corresponds to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-tan"><code>tan</code></a> +operator in the Mapbox Style Specification.</p> +<h3 id='code-mgl_coalesce-code' class='heading'><code>mgl_coalesce:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_coalesce:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>mgl_coalesce({x, y, z})</code></dd> +</dl> + +<p>Returns the first non-<code>nil</code> value from an array of expressions.</p> + +<p>This function corresponds to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-coalesce"><code>coalesce</code></a> +operator in the Mapbox Style Specification.</p> +<h3 id='code-mgl_let-code' class='heading'><code>MGL_LET</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>MGL_LET:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>MGL_LET('age', uppercase('old'), 'name', uppercase('MacDonald'), mgl_join({$age, $name}))</code></dd> +<dt>Arguments:</dt> +<dd> + Any number of variable names interspersed with their assigned + <code>NSExpression</code> values, followed by an <code>NSExpression</code> + that may contain references to those variables. +</dd> +</dl> + +<p>Returns the result of evaluating an expression with the given variable values. +Compared to the +<a href="#code-mgl_expressionwithcontext-code"><code>mgl_expressionWithContext:</code></a> custom +function, this function takes the variable names and values inline before the +expression that contains references to those variables.</p> +<h3 id='code-mgl_match-code' class='heading'><code>MGL_MATCH</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>MGL_MATCH:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>MGL_MATCH(x, 0, 'zero match', 1, 'one match', 2, 'two match', 'default')</code></dd> +<dt>Arguments:</dt> +<dd> + An input expression, then any number of argument pairs, followed by a default + expression. Each argument pair consists of a constant value followed by an + expression to produce as a result of matching that constant value. + If the input value is an aggregate expression, then any of the constant values within + that aggregate expression result in the following argument. This is shorthand for + specifying an argument pair for each of the constant values within that aggregate + expression. It is not possible to match the aggregate expression itself. +</dd> +</dl> + +<p>Returns the result of matching the input expression against the given constant +values.</p> + +<p>This function corresponds to the +<code><a href="Categories/NSExpression(MGLAdditions).html#/c:objc(cs)NSExpression(cm)mgl_expressionForMatchingExpression:inDictionary:defaultExpression:">+[NSExpression(MGLAdditions) mgl_expressionForMatchingExpression:inDictionary:defaultExpression:]</a></code> +method and the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-match"><code>match</code></a> +operator in the Mapbox Style Specification.</p> +<h3 id='code-mgl_if-code' class='heading'><code>MGL_IF</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>MGL_IF:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>MGL_IF(1 = 2, YES, 2 = 2, YES, NO)</code></dd> +<dt>Arguments:</dt> +<dd> + Alternating <code>NSPredicate</code> conditionals and resulting expressions, + followed by a default expression. +</dd> +</dl> + +<p>Returns the first expression that meets the condition; otherwise, the default +value. Unlike +<code>+[NSExpression expressionForConditional:trueExpression:falseExpression:]</code> or +the <code>TERNARY()</code> syntax, this function can accept multiple “if else” conditions +and is supported on iOS 8.<em>x</em> and macOS 10.10.<em>x</em>; however, each conditional +passed into this function must be wrapped in a constant expression.</p> + +<p>This function corresponds to the +<code><a href="Categories/NSExpression(MGLAdditions).html#/c:objc(cs)NSExpression(cm)mgl_expressionForConditional:trueExpression:falseExpresssion:">+[NSExpression(MGLAdditions) mgl_expressionForConditional:trueExpression:falseExpresssion:]</a></code> +method and the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-case"><code>case</code></a> +operator in the Mapbox Style Specification.</p> +<h3 id='code-mgl_function-code' class='heading'><code>MGL_FUNCTION</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>MGL_FUNCTION:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>MGL_FUNCTION('typeof', mystery)</code></dd> +<dt>Arguments:</dt> +<dd> + Any arguments required by the expression operator. +</dd> +</dl> + +<p>An expression exactly as defined by the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions">Mapbox Style Specification</a>.</p> +<h2 id='custom-functions' class='heading'>Custom functions</h2> + +<p>The following custom functions are also available with the +<code>+[NSExpression expressionForFunction:selectorName:arguments:]</code> method or the +<code>FUNCTION()</code> format string syntax.</p> + +<p>Some of these functions are defined as methods on their respective target +classes, but you should not call them directly outside the context of an +expression, because the result may differ from the evaluated expression’s result +or may result in undefined behavior.</p> + +<p>The Mapbox Style Specification defines some operators for which no custom +function is available. To use these operators in an <code>NSExpression</code>, call the +<a href="#code-mgl_function-code"><code>MGL_FUNCTION()</code></a> function with the same arguments +that the operator expects.</p> +<h3 id='code-boolvalue-code' class='heading'><code>boolValue</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>boolValue</code></dd> +<dt>Format string syntax:</dt> +<dd><code>FUNCTION(1, 'boolValue')</code></dd> +<dt>Target:</dt> +<dd> + An <code>NSExpression</code> that evaluates to a number or string. +</dd> +<dt>Arguments:</dt> +<dd>None.</dd> +</dl> + +<p>A Boolean representation of the target: <code>FALSE</code> when then input is an +empty string, 0, <code>FALSE</code>, <code>NIL</code>, or <code>NaN</code>, +otherwise <code>TRUE</code>.</p> +<h3 id='code-mgl_has-code' class='heading'><code>mgl_has:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_has:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>FUNCTION($featureAttributes, 'mgl_has:', '🧀🍔')</code></dd> +<dt>Target:</dt> +<dd> + An <code>NSExpression</code> that evaluates to an <code>NSDictionary</code> + or the evaluated object (<code>SELF</code>). +</dd> +<dt>Arguments:</dt> +<dd> + An <code>NSExpression</code> that evaluates to an <code>NSString</code> + representing the key to look up in the dictionary or the feature attribute to + look up in the evaluated object (see <code><a href="Protocols/MGLFeature.html#/c:objc(pl)MGLFeature(py)attributes">MGLFeature.attributes</a></code>). +</dd> +</dl> + +<p><code>true</code> if the dictionary has a value for the key or if the evaluated +object has a value for the feature attribute.</p> + +<p>This function corresponds to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-has"><code>has</code></a> +operator in the Mapbox Style Specification. See also the +<a href="#code-mgl_does-have-code"><code>mgl_does:have:</code></a> function, which is used on its own +without the <code>FUNCTION()</code> operator. You can also check whether an object has an +attribute by comparing the key path to <code>NIL</code>, for example <code>cheeseburger != NIL</code> +or <code>burger.cheese != NIL</code></p> +<h3 id='code-mgl_expressionwithcontext-code' class='heading'><code>mgl_expressionWithContext:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_expressionWithContext:</code></dd> +<dt>Format string syntax:</dt> +<dd> + <code>FUNCTION($ios + $macos, 'mgl_expressionWithContext:', %@)</code> with + a dictionary containing <code>ios</code> and <code>macos</code> keys +</dd> +<dt>Target:</dt> +<dd> + An <code>NSExpression</code> that may contain references to the variables + defined in the context dictionary. +</dd> +<dt>Arguments:</dt> +<dd> + An <code>NSDictionary</code> with <code>NSString</code>s as keys and + <code>NSExpression</code>s as values. Each key is a variable name and each + value is the variable’s value within the target expression. +</dd> +</dl> + +<p>The target expression with variable subexpressions replaced with the values +defined in the context dictionary.</p> + +<p>This function corresponds to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-let"><code>let</code></a> +operator in the Mapbox Style Specification. See also the +<a href="#code-mgl_let-code"><code>MGL_LET</code></a> function, which is used on its own without the +<code>FUNCTION()</code> operator.</p> +<h3 id='code-mgl_interpolatewithcurvetype-parameters-stops-code' class='heading'><code>mgl_interpolateWithCurveType:parameters:stops:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_interpolateWithCurveType:parameters:stops:</code></dd> +<dt>Format string syntax:</dt> +<dd> + <code>FUNCTION($zoomLevel, 'mgl_interpolateWithCurveType:parameters:stops:', 'linear', NIL, %@)</code> + with a dictionary containing zoom levels or other constant values as keys +</dd> +<dt>Target:</dt> +<dd> + An <code>NSExpression</code> that evaluates to a number and contains a + variable or key path expression. +</dd> +<dt>Arguments:</dt> +<dd> + The first argument is one of the following strings denoting curve types: + <code>linear</code>, <code>exponential</code>, or <code>cubic-bezier</code>. + + The second argument is an expression providing parameters for the curve: + + <ul> + <li>If the curve type is <code>linear</code>, the argument is <code>NIL</code>.</li> + <li> + If the curve type is <code>exponential</code>, the argument is an + expression that evaluates to a number, specifying the base of the + exponential interpolation. + </li> + <li> + If the curve type is <code>cubic-bezier</code>, the argument is an + array or aggregate expression containing four expressions, each + evaluating to a number. The four numbers are control points for the + cubic Bézier curve. + </li> + </ul> + + The third argument is an <code>NSDictionary</code> object representing the + interpolation’s stops, with numeric zoom levels as keys and expressions as + values. +</dd> +</dl> + +<p>A value interpolated along the continuous mathematical function defined by the +arguments, with the target as the input to the function.</p> + +<p>The input expression is matched against the keys in the stop dictionary. The +keys may be feature attribute values, zoom levels, or heatmap densities. The +values may be constant values or <code>NSExpression</code> objects. For example, you can +use a stop dictionary with the zoom levels 0, 10, and 20 as keys and the colors +yellow, orange, and red as the values.</p> + +<p>This function corresponds to the +<code><a href="Categories/NSExpression(MGLAdditions).html#/c:objc(cs)NSExpression(cm)mgl_expressionForInterpolatingExpression:withCurveType:parameters:stops:">+[NSExpression(MGLAdditions) mgl_expressionForInterpolatingExpression:withCurveType:parameters:stops:]</a></code> +method and the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-interpolate"><code>interpolate</code></a> +operator in the Mapbox Style Specification. See also the +<a href="#code-mgl_interpolate-withcurvetype-parameters-stops-code"><code>mgl_interpolate:withCurveType:parameters:stops:</code></a> +function, which is used on its own without the <code>FUNCTION()</code> operator.</p> +<h3 id='code-mgl_numberwithfallbackvalues-code' class='heading'><code>mgl_numberWithFallbackValues:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd> + <code>mgl_numberWithFallbackValues:</code>, + <code>doubleValue</code>, + <code>floatValue</code>, or + <code>decimalValue</code> +</dd> +<dt>Format string syntax:</dt> +<dd><code>FUNCTION(ele, 'mgl_numberWithFallbackValues:', 0)</code></dd> +<dt>Target:</dt> +<dd> + An <code>NSExpression</code> that evaluates to a Boolean value, number, or + string. +</dd> +<dt>Arguments:</dt> +<dd> + Zero or more <code>NSExpression</code>s, each evaluating to a Boolean value + or string. +</dd> +</dl> + +<p>A numeric representation of the target:</p> + +<ul> +<li>If the target is <code>NIL</code> or <code>FALSE</code>, the result is 0.</li> +<li>If the target is true, the result is 1. + +<ul> +<li>If the target is a string, it is converted to a number as specified by the +“<a href="https://tc39.github.io/ecma262/#sec-tonumber-applied-to-the-string-type">ToNumber Applied to the String Type</a>” +algorithm of the ECMAScript Language Specification.</li> +<li>If multiple values are provided, each one is evaluated in order until the +first successful conversion is obtained.</li> +</ul></li> +</ul> + +<p>This function corresponds to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-types-to-number"><code>to-number</code></a> +operator in the Mapbox Style Specification. You can also cast a value to a +number by passing the value and the string <code>NSNumber</code> into the <code>CAST()</code> +operator.</p> +<h3 id='code-mgl_stepwithminimum-stops-code' class='heading'><code>mgl_stepWithMinimum:stops:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>mgl_stepWithMinimum:stops:</code></dd> +<dt>Format string syntax:</dt> +<dd> + <code>FUNCTION($zoomLevel, 'mgl_stepWithMinimum:stops:', 0, %@)</code> with + a dictionary with zoom levels or other constant values as keys +</dd> +<dt>Target:</dt> +<dd> + An <code>NSExpression</code> that evaluates to a number and contains a + variable or key path expression. +</dd> +<dt>Arguments:</dt> +<dd> + The first argument is an expression that evaluates to a number, specifying + the minimum value in case the target is less than any of the stops in the + second argument. + + The second argument is an <code>NSDictionary</code> object representing the + interpolation’s stops, with numeric zoom levels as keys and expressions as + values. +</dd> +</dl> + +<p>The output value of the stop whose key is just less than the evaluated target, +or the minimum value if the target is less than the least of the stops’ keys.</p> + +<p>The input expression is matched against the keys in the stop dictionary. The +keys may be feature attribute values, zoom levels, or heatmap densities. The +values may be constant values or <code>NSExpression</code> objects. For example, you can +use a stop dictionary with the zoom levels 0, 10, and 20 as keys and the colors +yellow, orange, and red as the values.</p> + +<p>This function corresponds to the +<code><a href="Categories/NSExpression(MGLAdditions).html#/c:objc(cs)NSExpression(cm)mgl_expressionForSteppingExpression:fromExpression:stops:">+[NSExpression(MGLAdditions) mgl_expressionForSteppingExpression:fromExpression:stops:]</a></code> +method and the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-step"><code>step</code></a> +operator in the Mapbox Style Specification.</p> +<h3 id='code-stringbyappendingstring-code' class='heading'><code>stringByAppendingString:</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>stringByAppendingString:</code></dd> +<dt>Format string syntax:</dt> +<dd><code>FUNCTION('Old', 'stringByAppendingString:', 'MacDonald')</code></dd> +<dt>Target:</dt> +<dd>An <code>NSExpression</code> that evaluates to a string.</dd> +<dt>Arguments:</dt> +<dd>One or more <code>NSExpression</code>s, each evaluating to a string.</dd> +</dl> + +<p>The target string with each of the argument strings appended in order.</p> + +<p>This function corresponds to the +<code><a href="Categories/NSExpression(MGLAdditions).html#/c:objc(cs)NSExpression(im)mgl_expressionByAppendingExpression:">-[NSExpression(MGLAdditions) mgl_expressionByAppendingExpression:]</a></code> +method and is similar to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-concat"><code>concat</code></a> +operator in the Mapbox Style Specification. See also the +<a href="#code-mgl_join-code"><code>mgl_join:</code></a> function, which concatenates multiple +expressions and is used on its own without the <code>FUNCTION()</code> operator.</p> +<h3 id='code-stringvalue-code' class='heading'><code>stringValue</code></h3> + +<dl> +<dt>Selector:</dt> +<dd><code>stringValue</code></dd> +<dt>Format string syntax:</dt> +<dd><code>FUNCTION(ele, 'stringValue')</code></dd> +<dt>Target:</dt> +<dd> + An <code>NSExpression</code> that evaluates to a Boolean value, number, or + string. +</dd> +<dt>Arguments:</dt> +<dd>None.</dd> +</dl> + +<p>A string representation of the target:</p> + +<ul> +<li>If the target is <code>NIL</code>, the result is the empty string.</li> +<li>If the target is a Boolean value, the result is the string <code>true</code> or <code>false</code>.</li> +<li>If the target is a number, it is converted to a string as specified by the +“<a href="https://tc39.github.io/ecma262/#sec-tostring-applied-to-the-number-type">NumberToString</a>” +algorithm of the ECMAScript Language Specification.</li> +<li>If the target is a color, it is converted to a string of the form +<code>rgba(r,g,b,a)</code>, where <var>r</var>, <var>g</var>, and <var>b</var> are +numerals ranging from 0 to 255 and <var>a</var> ranges from 0 to 1.</li> +<li>Otherwise, the target is converted to a string in the format specified by the +<a href="https://tc39.github.io/ecma262/#sec-json.stringify"><code>JSON.stringify()</code></a> +function of the ECMAScript Language Specification.</li> +</ul> + +<p>This function corresponds to the +<a href="https://www.mapbox.com/mapbox-gl-js/style-spec/#expressions-types-to-string"><code>to-string</code></a> +operator in the Mapbox Style Specification. You can also cast a value to a +string by passing the value and the string <code>NSString</code> into the <code>CAST()</code> +operator.</p> + + </div> + </section> + + + </article> + </div> + <section class="footer limiter"> + <p>© 2014–2018 <a class="link" href="https://www.mapbox.com/" target="_blank" rel="external">Mapbox</a>. See <a class="link" href="https://github.com/mapbox/mapbox-gl-native/blob/master/LICENSE.md" target="_blank" rel="external">license</a> for more details.</p> Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.3</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project. + </section> + </body> +</div> +</html> |