Classes

The following classes are available globally.

  • Active Objects are used implement animation.

    Active Objects work in conjuction with the renderer to make updates on the main thread. The way they work is this. They’re called right at the beginning of a frame draw. They can make updates to regular Maply objects via the MaplyBaseViewController add and remove calls with the MaplyThreadMode set to MaplyThreadCurrent. This forces the changes to happen immediately on the current (main) thread.

    Fill in at least the hasUpdate and updateForFrameMethods.

    Active Objects are run on the main thread and you’re probably going to be asking the view controller to add and remove objects on the main thread. As such, this can be slow. Be sure to precalculate whatever you might need to make this run faster. Also consider implementing your changes another way. If it can be done on another thread, do it on another thread.

    See more

    Declaration

    Objective-C

    @interface MaplyActiveObject : NSObject

    Swift

    class MaplyActiveObject : NSObject
  • This object displays an annotation at a particular point and will track that point as the map or globe moves.

    An annotation is used to point out some feature on the globe or map, typically that the user has tapped on. It’s a multi-part beast that may contain titles, subtitles, images, background views and such.

    To add one, create the MaplyAnnotation and then call addAnnotation:forPoint:offset: on the MaplyBaseViewController.

    The MaplyAnnotation is a wrapper around the SMCalloutView by Nick Farina. It exposes much of the functionality, but sets things up correctly and deals with moving the annotation around.

    See more

    Declaration

    Objective-C

    @interface MaplyAnnotation : NSObject

    Swift

    class MaplyAnnotation : NSObject
  • When selecting multiple objects, one or more of these is returned.

    When you implement one of the selection delegates that takes multiple objects, you’ll get an NSArray of these things.

    See more

    Declaration

    Objective-C

    @interface MaplySelectedObject : NSObject

    Swift

    class MaplySelectedObject : NSObject
  • Base class for the Maply and WhirlyGlobe view controllers.

    The Maply Base View Controller is where most of the functionality lives. For the most part Maply and WhirlyGlobe share methods and data structures. This view controller sets up the rendering, the threading, basically everything that makes WhirlyGlobe-Maply work.

    Don’t create one of these directly, instead use the MaplyViewController or the WhirlyGlobeViewController.

    See more

    Declaration

    Objective-C

    @interface MaplyBaseViewController <MaplyRenderControllerProtocol>

    Swift

    class MaplyBaseViewController : MaplyRenderControllerProtocol
  • The View Controller Layer is a base class for other display layers.

    You don’t create these directly. This is a base class for other things. Its hooks into the rest of the system are hidden.

    See more

    Declaration

    Objective-C

    @interface MaplyControllerLayer : NSObject

    Swift

    class MaplyControllerLayer : NSObject
  • Animation State used by the WhirlyGlobeViewControllerAnimationDelegate.

    You fill out one of these when you’re implementing the animation delegate. Return it and the view controller will set the respective values to match.

    See more

    Declaration

    Objective-C

    @interface WhirlyGlobeViewControllerAnimationState : NSObject

    Swift

    class WhirlyGlobeViewControllerAnimationState : NSObject
  • The Globe Render Controller is a standalone renderer for the globe. This is separate from the WhirlyGlobeViewController, but performs a similar function for offline rendering.

    See more

    Declaration

    Objective-C

    @interface WhirlyGlobeRenderController : MaplyRenderController

    Swift

    class WhirlyGlobeRenderController : MaplyRenderController
  • The Render Controller is a standalone WhirlyGlobe-Maply renderer.

    This Render Controller is used for offline rendering.

    See more

    Declaration

    Objective-C

    @interface MaplyRenderController : NSObject <MaplyRenderControllerProtocol>

    Swift

    class MaplyRenderController : NSObject, MaplyRenderControllerProtocol
  • An encapsulation of where the viewer is and what they’re looking at.

    This wraps information about where the viewer is currently looking from and at.

    See more

    Declaration

    Objective-C

    @interface MaplyViewerState : NSObject

    Swift

    class MaplyViewerState : NSObject
  • This layer will call a delegate as the user moves around, but constrained to distance and time.

    This layer is responsible for calling a delegate you provide as the user moves their viewpoint around. You’ll be called if they move from than a certain amount, but not more often than the minimum time.

    See more

    Declaration

    Objective-C

    @interface MaplyUpdateLayer : MaplyControllerLayer

    Swift

    class MaplyUpdateLayer : MaplyControllerLayer
  • Animation State used by the MaplyViewControllerAnimationDelegate.

    You fill out one of these when you’re implementing the animation delegate. Return it and the view controller will set the respective values to match.

    See more

    Declaration

    Objective-C

    @interface MaplyViewControllerAnimationState : NSObject

    Swift

    class MaplyViewControllerAnimationState : NSObject
  • A simple animation delegate for moving the map around.

    The animation delegate support provides a lot of flexibility. This version just provides all the standard fields and interpolates from beginning to end.

    See more

    Declaration

    Objective-C

    @interface MaplyViewControllerSimpleAnimationDelegate
        : NSObject <MaplyViewControllerAnimationDelegate>

    Swift

    class MaplyViewControllerSimpleAnimationDelegate : NSObject, MaplyViewControllerAnimationDelegate
  • This view controller implements a map.

    This is the main entry point for displaying a 2D or 3D map. Create one of these, fill it with data and let your users mess around with it.

    You can display a variety of features on the map, including tile base maps (MaplyQuadImageTilesLayer), vectors (MaplyVectorObject), shapes (MaplyShape), and others. Check out the add calls in the MaplyBaseViewController for details.

    The Maply View Controller can be initialized in 3D map, 2D map mode. The 2D mode can be tethered to a UIScrollView if you want to handle gestures that way. That mode is very specific at the moment.

    To get selection and tap callbacks, fill out the MaplyViewControllerDelegate and assign the delegate.

    Most of the functionality is shared with MaplyBaseViewController. Be sure to look in there first.

    See more

    Declaration

    Objective-C

    @interface MaplyViewController : MaplyBaseViewController

    Swift

    class MaplyViewController : MaplyBaseViewController
  • The View Tracker associates a view with a geographic location.

    The Maply View Tracker will move a UIView around to keep track of a geographic location. This is basically used for popups. The system will move the view around at the end of the frame render. It will hide the UIView if needed or make it reappear. The UIView should be a child of view controller’s view.

    See more

    Declaration

    Objective-C

    @interface MaplyViewTracker : NSObject

    Swift

    class MaplyViewTracker : NSObject
  • A simple animation delegate for moving the globe around.

    The animation delegate support provides a lot of flexibility. This version just provides all the standard fields and interpolates from beginning to end.

    See more

    Declaration

    Objective-C

    @interface WhirlyGlobeViewControllerSimpleAnimationDelegate
        : NSObject <WhirlyGlobeViewControllerAnimationDelegate>

    Swift

    class WhirlyGlobeViewControllerSimpleAnimationDelegate : NSObject, WhirlyGlobeViewControllerAnimationDelegate
  • This view controller implements a 3D interactive globe.

    This is the main entry point for displaying a globe. Create one of these, fill it with data and let your users mess around with it.

    You can display a variety of features on the globe, including tiled base maps (MaplyQuadImageTilesLayer), vectors (MaplyVectorObject), shapes (MaplyShape), and others. Check out the add calls in the MaplyBaseViewController for details.

    To get selection and tap callbacks, fill out the WhirlyGlobeViewControllerDelegate and assign the delegate.

    Most of the functionality is shared with MaplyBaseViewController. Be sure to look in there first.

    See more

    Declaration

    Objective-C

    @interface WhirlyGlobeViewController : MaplyBaseViewController

    Swift

    class WhirlyGlobeViewController : MaplyBaseViewController
  • MBTiles tile fetcher.

    This tile fetcher focuses on a single MBTiles file. You mate this with a QuadImageLoader to do the actual work.

    Will work for image or vector MBTiles files.

    See more

    Declaration

    Objective-C

    @interface MaplyMBTileFetcher : MaplySimpleTileFetcher

    Swift

    class MaplyMBTileFetcher : MaplySimpleTileFetcher
  • A bounding box for a specific CRS in that coordinate system. This is part of the Web Map Server parser.

    See more

    Declaration

    Objective-C

    @interface MaplyWMSLayerBoundingBox : NSObject

    Swift

    class MaplyWMSLayerBoundingBox : NSObject
  • Style of a WMS layer as returned by GetCapabilities. This is part of the Web Map Service parser.

    See more

    Declaration

    Objective-C

    @interface MaplyWMSStyle : NSObject

    Swift

    class MaplyWMSStyle : NSObject
  • Description of a WMS layer as returned by a GetCapabilities call. This is part of the Web Map Service parser.

    See more

    Declaration

    Objective-C

    @interface MaplyWMSLayer : NSObject

    Swift

    class MaplyWMSLayer : NSObject
  • Encapsulates the capabilities coming back from a WMS server. We can query this to see what layers and coordinate systems are available. Part of the Web Map Service parser.

    See more

    Declaration

    Objective-C

    @interface MaplyWMSCapabilities : NSObject

    Swift

    class MaplyWMSCapabilities : NSObject
  • This is a MaplyTileSource that works with a remote Web Map Service implementation. WMS is not the most efficient way to access remote image data, but there are still a few places that use it.

    See more

    Declaration

    Objective-C

    @interface MaplyWMSTileSource : NSObject <MaplyTileInfoNew>

    Swift

    class MaplyWMSTileSource : NSObject, MaplyTileInfoNew
  • Geometry State is used to describe the visual look of objects as they’re added.

    Set the various fields in the geometry state to control how geometry looks when you add it. There are defaults for all of these fields.

    See more

    Declaration

    Objective-C

    @interface MaplyGeomState : NSObject

    Swift

    class MaplyGeomState : NSObject
  • The geometry builder is used to construct 3D models.

    You use the geometry builder when you have a custom 3D model to build. This can include things like airport runways, buildings, or anything else that’s particular to a certain location.

    Start by construting the builder and then adding polygons and strings to it.

    You can combine multiple geometry builders together to build up repeated portions of a model.

    The builder has an “immediate mode” where you add points individually to build up polygons and then add those. This is one of the simpler ways to use the system.

    See more

    Declaration

    Objective-C

    @interface MaplyGeomBuilder : NSObject

    Swift

    class MaplyGeomBuilder : NSObject
  • Holds info about a single style from the MaplySimpleStyleManager. This is enough to build a marker (or other thing, if you like).

    See more

    Declaration

    Objective-C

    @interface MaplySimpleStyle : NSObject

    Swift

    class MaplySimpleStyle : NSObject
  • Used to generate icons and parse styles for the GeoJSON simple Style spec. https://github.com/mapbox/simplestyle-spec

    Can also be used to define some very simple icon styles directly.
    
    See more

    Declaration

    Objective-C

    @interface MaplySimpleStyleManager : NSObject

    Swift

    class MaplySimpleStyleManager : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface MaplyLocationTracker : NSObject <CLLocationManagerDelegate>
    
    /// Exposes MaplyLocationTracker's location manager for use elsewhere
    @property (nonatomic, readonly, nullable) CLLocationManager *locationManager;
    
    /** 
        MaplyLocationTracker constructor
     
        @param viewC The globe or map view controller
     
        @param delegate The MaplyLocationTrackerDelegate for receiving location event callbacks
     
        @param useHeading Use location services heading information (requires physical magnetometer)
     
        @param useCourse Use location services course information as fallback if heading unavailable
     */
    - (nonnull instancetype)initWithViewC:(MaplyBaseViewController *__nullable)viewC delegate:(NSObject<MaplyLocationTrackerDelegate> *__nullable)delegate useHeading:(bool)useHeading useCourse:(bool)useCourse simulate:(bool)simulate;
    
    /**
        Min/max visibility for the marker assigned to follow location.
      */
    @property (nonatomic,assign) float markerMinVis,markerMaxVis;
    
    /**
        Draw priority for the marker assigned to follow location.
      */
    @property (nonatomic,assign) int markerDrawPriority;
    
    /** 
        Change lock type
     
        @param lockType The MaplyLocationLockType value for lock behavior
     
        @param forwardTrackOffset The vertical offset if using MaplyLocationLockHeadingUpOffset (positive values are below the view center)
     */
    - (void) changeLockType:(MaplyLocationLockType)lockType forwardTrackOffset:(int)forwardTrackOffset;
    
    /** 
        Stop the MaplyLocationTracker behavior and shut it down.
     */
    - (void) teardown;
    
    /** 
        Get the current device location
     
        @return The coordinate if valid, else kMaplyNullCoordinate
     */
    - (MaplyCoordinate)getLocation;
    
    @end

    Swift

    class MaplyLocationTracker : NSObject, CLLocationManagerDelegate
  • The Maply Linear Texture Builder is used to construct linear textures for use on widened vectors.

    Linear textures of this type are used to represent dotted and dashed lines. These may come from Mapnik configuration files or you can just make them up yourself.

    After creating an image with this object, you’ll want to pass it as a parameter to the widened vector add method.

    See more

    Declaration

    Objective-C

    @interface MaplyLinearTextureBuilder : NSObject

    Swift

    class MaplyLinearTextureBuilder
  • This class will read GeoJSON via URL with an associated Styled Layer Descriptor via URL. It will then parse both of them and apply the SLD style to the GeoJSON data. This results in visual data in much the same way as loading vector tiles would.

    See more

    Declaration

    Objective-C

    @interface GeoJSONSource : NSObject

    Swift

    class GeoJSONSource : NSObject
  • Describes a single tile worth of data, which may be multiple images.

    Delegates can pass back a single UIImage or NSData object, but if they want to do anything more complex, they need to do it with this.

    See more

    Declaration

    Objective-C

    @interface MaplyImageTile : NSObject

    Swift

    class MaplyImageTile : NSObject
  • Quad Image FrameAnimation runs through the frames in a Quad Image Frame loader over time.

    Set this up with a MaplyQuadImageFrameLoader and it’ll run through the available frames from start to finish. At the end it will snap back to the beginning.

    See more

    Declaration

    Objective-C

    @interface MaplyQuadImageFrameAnimator : MaplyActiveObject

    Swift

    class MaplyQuadImageFrameAnimator : MaplyActiveObject
  • The Maply Quad Image Frame Loader can generation per-frame stats. These are them.

    See more

    Declaration

    Objective-C

    @interface MaplyQuadImageFrameStats : NSObject

    Swift

    class MaplyQuadImageFrameStats : NSObject
  • Stats generated by the Maply Quad Image Frame Loader.

    See more

    Declaration

    Objective-C

    @interface MaplyQuadImageFrameLoaderStats : NSObject

    Swift

    class MaplyQuadImageFrameLoaderStats : NSObject
  • The Maply Quad Image Frame Loader is for paging individual frames of image pyramids.

    This works much like the Quad Image Loader, but handles more than one frame. You can animate between the frames with the QuadImageFrameAnimator

    See more

    Declaration

    Objective-C

    @interface MaplyQuadImageFrameLoader : MaplyQuadImageLoaderBase

    Swift

    class MaplyQuadImageFrameLoader : MaplyQuadImageLoaderBase
  • This version of the loader return is used by the MaplyImageLoaderInterpreter.

    When image tiles load, the interpeter fills in these contents, which can include any sort of ComponentObject and, of course, images.

    See more

    Declaration

    Objective-C

    @interface MaplyImageLoaderReturn : MaplyLoaderReturn

    Swift

    class MaplyImageLoaderReturn : MaplyLoaderReturn
  • Image loader intrepreter turns NSData objects into MaplyImageTiles.

    This is the default interpreter used by the MaplyQuadImageLoader.

    Declaration

    Objective-C

    @interface MaplyImageLoaderInterpreter : NSObject <MaplyLoaderInterpreter>

    Swift

    class MaplyImageLoaderInterpreter : NSObject, MaplyLoaderInterpreter
  • This loader interpreter sticks a designator in the middle of tiles and a line around the edge. Nice for debugging.

    See more

    Declaration

    Objective-C

    @interface MaplyOvlDebugImageLoaderInterpreter : MaplyImageLoaderInterpreter

    Swift

    class MaplyOvlDebugImageLoaderInterpreter : MaplyImageLoaderInterpreter
  • This loader interpreter makes up an image for the given frame/tile and returns that. It doesn’t use any returned data.

    See more

    Declaration

    Objective-C

    @interface MaplyDebugImageLoaderInterpreter : MaplyImageLoaderInterpreter

    Swift

    class MaplyDebugImageLoaderInterpreter : MaplyImageLoaderInterpreter
  • This loader interpreter treats input image data objects as PNGs containing raw data. The difference is we’ll use a direct PNG reader to tease it out, rather than UIImage.

    Declaration

    Objective-C

    @interface MaplyRawPNGImageLoaderInterpreter : MaplyImageLoaderInterpreter

    Swift

    class MaplyRawPNGImageLoaderInterpreter : MaplyImageLoaderInterpreter
  • Base object for Maply Quad Image loader.

    Look to the subclasses for actual functionality. This holds methods they share.

    See more

    Declaration

    Objective-C

    @interface MaplyQuadImageLoaderBase : MaplyQuadLoaderBase

    Swift

    class MaplyQuadImageLoaderBase : MaplyQuadLoaderBase
  • The Maply Quad Image Loader is for paging image pyramids local or remote.

    This layer pages image pyramids. They can be local or remote, in any coordinate system Maply supports and you provide a MaplyTileInfoNew conformant object to do the actual image tile fetching.

    You probably don’t have to implement your own tile source. Go look at the MaplyRemoteTileFetcher and MaplyMBTileFetcher objects. Those will do remote and local fetching.

    See more

    Declaration

    Objective-C

    @interface MaplyQuadImageLoader : MaplyQuadImageLoaderBase

    Swift

    class MaplyQuadImageLoader : MaplyQuadImageLoaderBase
  • Passed in to and returned by the Loader Interpreter.

    We pass this into the interpreter with the unparsed data. It parses it and passes that data back, possibly with an error.

    See more

    Declaration

    Objective-C

    @interface MaplyLoaderReturn : NSObject

    Swift

    class MaplyLoaderReturn : NSObject
  • Base class for the quad loaders.

    The image, frame, and data paging loaders all share much of the same functionality.
    
    See more

    Declaration

    Objective-C

    @interface MaplyQuadLoaderBase : NSObject

    Swift

    class MaplyQuadLoaderBase : NSObject
  • This version of the loader return is used by the MaplyQuadPagingLoader.

    The Object pager is only expecting Component Objects and will manage those as things are loaded in and out.

    See more

    Declaration

    Objective-C

    @interface MaplyObjectLoaderReturn : MaplyLoaderReturn

    Swift

    class MaplyObjectLoaderReturn : MaplyLoaderReturn
  • General purpose quad paging loader.

    This quadtree based paging loader is for fetching and load general geometry.
    There are other loaders that handle images and image animations.  This one is
    purely for geometry.
    
    You need to fill in at least a MaplyLoaderInterpreter, which is probably your own
    implementation.
    
    This replaces the QuadPagingLayer from WhirlyGlobe-Maply 2.x.
    
    See more

    Declaration

    Objective-C

    @interface MaplyQuadPagingLoader : MaplyQuadLoaderBase

    Swift

    class MaplyQuadPagingLoader : MaplyQuadLoaderBase
  • Sampling parameters.

    These are used to describe how we want to break down the globe or flat projection onto the globe.

    See more

    Declaration

    Objective-C

    @interface MaplySamplingParams : NSObject

    Swift

    class MaplySamplingParams : NSObject
  • Remote Tile Info Object (New)

    Not to be confused with the old one, which works with the older loading subsystem, the new remote tile info object contains min/max zoom, coordinate system and URL information for fetching individual data tiles.

    See more

    Declaration

    Objective-C

    @interface MaplyRemoteTileInfoNew : NSObject <MaplyTileInfoNew>

    Swift

    class MaplyRemoteTileInfoNew : NSObject, MaplyTileInfoNew
  • Fetch Info for remote tile fetches.

    The URL (required) and cacheFile (optional) for the given fetch. This is the object the RemoteTileFetcher expects for the fetchInfo member of the TileFetchRequest.

    See more

    Declaration

    Objective-C

    @interface MaplyRemoteTileFetchInfo : NSObject

    Swift

    class MaplyRemoteTileFetchInfo : NSObject
  • Remote Tile fetcher fetches tiles from remote URLs.

    The tile fetcher interacts with loaders that want tiles, as demanded by samplers. It’s complicated. There’s a default one of these that will get used if you pass in nil to the MaplyQuadImageLoader.

    See more

    Declaration

    Objective-C

    @interface MaplyRemoteTileFetcher : NSObject <MaplyTileFetcher>

    Swift

    class MaplyRemoteTileFetcher : NSObject, MaplyTileFetcher
  • Stats collected by the fetcher

    See more

    Declaration

    Objective-C

    @interface MaplyRemoteTileFetcherStats : NSObject

    Swift

    class MaplyRemoteTileFetcherStats : NSObject
  • Single entry for the logging. Reports on the status of a specific fetch.

    See more

    Declaration

    Objective-C

    @interface MaplyRemoteTileFetcherLogEntry : NSObject

    Swift

    class MaplyRemoteTileFetcherLogEntry : NSObject
  • Log of remote fetches, how long they took, their results and so on

    See more

    Declaration

    Objective-C

    @interface MaplyRemoteTileFetcherLog : NSObject

    Swift

    class MaplyRemoteTileFetcherLog : NSObject
  • Simple Tile Fetcher is meant for sub classing.

    Some data sources aren't all that complex.  You read from a local source,
    you return the data.  Something else turns it into visible objects.  Simple.
    
    To implement one of those, subclass the Simple Tile Fetcher and let it do the
    tricky bits.
    
    See more

    Declaration

    Objective-C

    @interface MaplySimpleTileFetcher : NSObject <MaplyTileFetcher>

    Swift

    class MaplySimpleTileFetcher : NSObject, MaplyTileFetcher
  • A tile source that just returns nil. You can use this like a tile source where you need one that doesn’t do anything.

    Declaration

    Objective-C

    @interface MaplyTileInfoNone : NSObject <MaplyTileInfoNew>

    Swift

    class MaplyTileInfoNone : NSObject, MaplyTileInfoNew
  • Generic Tile fetcher request.

    A single request for a single tile of data from a single source. The tile fetcher will… fetch this and call the success or failure callback.

    See more

    Declaration

    Objective-C

    @interface MaplyTileFetchRequest : NSObject

    Swift

    class MaplyTileFetchRequest : NSObject
  • An NSObject based wrapper for 3D coordinates.

    This wrapper encapsulates a MaplyCoordinate3d so we can pass them around in NSDictionary objects.

    See more

    Declaration

    Objective-C

    @interface MaplyCoordinate3dWrapper : NSObject

    Swift

    class MaplyCoordinate3dWrapper : NSObject
  • An NSObject based wrapper for 3D coordinates.

    This wrapper encapsulates a MaplyCoordinate3d so we can pass them around in NSDictionary objects.

    See more

    Declaration

    Objective-C

    @interface MaplyCoordinate3dDWrapper : NSObject

    Swift

    class MaplyCoordinate3dDWrapper : NSObject
  • Coordinate system for tiling systems and data sources and such.

    This object represents the spatial reference system and bounding box for objects like the MaplyTileSource or vectors or other things. Not all data is in lat/lon geographic (actually MaplyPlateCaree) nor is it always in MaplySphericalMercator. Sometimes it’s in one or the other, or a bit of both.

    We use this base class to express the coordinate system and we threw in the bounding box, which we will surely come to regret. Oh well, it’s in there.

    This object gets passed around to tell us what coordinate system data is in or how we’re displaying things. Right now only MaplySphericalMercator and MaplyPlateCarree are represented. In the future, there will be more.

    See more

    Declaration

    Objective-C

    @interface MaplyCoordinateSystem : NSObject

    Swift

    class MaplyCoordinateSystem : NSObject
  • Plate Carree is lat/lon stretched out to its full extents.

    This coordinate system is used when we’re tiling things over the whole earth, from -180 to +180 and from -90 to +90. Use this if you chopped up your data in that way.

    See more

    Declaration

    Objective-C

    @interface MaplyPlateCarree : MaplyCoordinateSystem

    Swift

    class MaplyPlateCarree : MaplyCoordinateSystem
  • Spherical Mercator is what you’ll most commonly see on web maps.

    The Spherical Mercator system, with web extents is what MapBox, Google, Bing, etc. use for their maps. If you ever want to annoy a cartographer, suggest that spherical mercator is all you ever really need.

    The drawback with Spherical Mercator is that it doesn’t cover the poles and it distorts (and how) its north and south extents. Web Standard refers to the extents you’ll find in most online maps. This is probably want you want.

    See more

    Declaration

    Objective-C

    @interface MaplySphericalMercator : MaplyCoordinateSystem

    Swift

    class MaplySphericalMercator : MaplyCoordinateSystem
  • A generic coordinate system wrapper around proj4.

    You create one of these with a proj4 string. It’ll act like a normal MaplyCoordinateSysterm after that.

    Be sure to check that the system is valid. The proj4 string could be wrong.

    See more

    Declaration

    Objective-C

    @interface MaplyProj4CoordSystem : MaplyCoordinateSystem

    Swift

    class MaplyProj4CoordSystem : MaplyCoordinateSystem
  • Represents a matrix for position manipulation.

    Encapsulates a 4x4 matrix used for object placement and other things. This is more a wrapper than a full service object.

    See more

    Declaration

    Objective-C

    @interface MaplyMatrix : NSObject

    Swift

    class MaplyMatrix : NSObject
  • Sets up the objects and shaders to implement an atmosphere.

    This object sets up a shader implementation of the simple atmosphere from GPU Gems 2 http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter16.html

    See more

    Declaration

    Objective-C

    @interface MaplyAtmosphere : NSObject

    Swift

    class MaplyAtmosphere : NSObject
  • The color ramp generator will take a set of color values and generate a linear ramp of those colors in an output image. You typically feed the color ramp image into a shader.

    See more

    Declaration

    Objective-C

    @interface MaplyColorRampGenerator : NSObject

    Swift

    class MaplyColorRampGenerator
  • The Light provides a simple interface to basic lighting within the toolkit.

    You can have up to 8 lights in the current version of the toolkit. Obviously this is all shader implementation with OpenGL ES 2.0, so you can always just bypass this and do what you like. However, the default shaders will look for these lights.

    The lights are very simple, suitable for the globe, and contain a position, a couple of colors, and a view dependent flag.

    See more

    Declaration

    Objective-C

    @interface MaplyLight : NSObject

    Swift

    class MaplyLight : NSObject
  • Represents a render target (other than the screen)

    Individual objects can ask to be drawn somewhere other than the screen. This is how we do that.

    A render target is just a link between a render every frame and a MaplyTexture. To get at the actual image you use the MaplyTexture.

    At the moment a render target can only draw the full screen, possibly at a lower resolution.

    See more

    Declaration

    Objective-C

    @interface MaplyRenderTarget : NSObject

    Swift

    class MaplyRenderTarget : NSObject
  • The shader is a direct interface to OpenGL ES 2.0 shader language.
    
    You can set your own shader programs in the toolkit!  Yeah, that's as complex as it sounds.
    
    The underyling toolkit makes a distinction between the name of the shader and the scene name.  The scene name is used as a way to replace the default shaders we use for triangles and lines.  This would let you replace the shaders you're already using with your own.  See the addShaderProgram: method in the MaplyBaseViewController.
    
    You can also add your own shader and hook it up to any features that can call out a specific shader, such as the MaplyQuadImageTilesLayer.
    
    When writing a new shader, go take a look at DefaultShaderPrograms.mm, particularly the vertexShaderTri and fragmentShaderTri.  The documentation here is for the uniforms and attributes the system is going to hook up for you.  All of these are optional, but obviously nothing much will happen if you don't use the vertices.
    

    Uniform Values

    These are uniform values provided to each shader, if requested.

    |uniform|type|description| |:——|:—|:———-| |u_mvpMatrix|mat4| The model/view/projection matrix. Shaders typically run vertices through this. | |u_mvMatrix|mat4| The model/view matrix. Less comonly used. | |u_mvNormalMatrix|mat4| The model/view matrix for normals. A shader typically uses this when we want view dependent lighting. | |u_fade|float| Available in regular drawables, but not yet in big drawables (e.g. atlases). This is intended to fade geometry in and out over time. | |u_interp|float| If we’re doing multiple textures, this is how to interpolate them. | |u_numLights|int| The number of active lights to use. | |light[8]|directional_light| A data structure for each active light. See the table below. | |material|material_properties| Material information used to calculate lighting. See the table below. | |u_hasTexture|bool| True if there’s a texture available to fetch data from. | |s_baseMapX|sampler2D| s_baseMap0, s_baseMap1 and so forth are references to texture data. |

    Material properties

    These are the fields for the material properties.

    field type description
    ambient vec4 The ambient value for the material. Shaders typically multiply by this value when calculating ambient lighting.
    diffuse vec4 The diffuse value for the material. Shaders typically multiply by this value when calculating diffuse lighting.
    specular vec4 Not currently used.
    specular_exponent float Not currently used.

    Light properties

    These are the fields for each individual light.

    |field|type|description| |:—-|:—|:———-| |direction|vec3| The light’s direction, used in diffuse lighting. | |halfplane|vec3| This would be used in specular lighting. | |ambient|vec4| The ambient value of the light. | |diffuse|vec4| The diffuse value of the light. | |specular|vec4| Not currently used. | |viewdepend|float| If greater than 0.0, the shader should run each normal through the u_mvNormalMatrix. |

    Attributes

    These are the per vertex attributes provided to each vertex shader.

    |field|type|description| |:—-|:—|:———-| |a_position|vec3| The position in display space for a vertex. Shaders typically multiply this by u_mvpMatrix. | |a_texCoord0|vec2| If textures are present, this is the texture coordinate for the first one. | |a_texCoord1|vec2| If two textures are present, this is the texture coordinate for the second. | |a_color|vec4| An RGBA color for the vertex. | |a_normal|vec3| A normal in display space. This is used purely for lighting and often run through u_mvNormalMatrix. | |a_elev|float| An optional elevation value provided by the MaplyQuadImageTiles layer. You can use it to do elevation dependent shading. |

    See more

    Declaration

    Objective-C

    @interface MaplyShader : NSObject

    Swift

    class MaplyShader : NSObject
  • A variable target manages two pass rendering for one type of variable.

    Set up the variable target

    See more

    Declaration

    Objective-C

    @interface MaplyVariableTarget : NSObject

    Swift

    class MaplyVariableTarget : NSObject
  • Vertex Attributes are passed all the way though on objects to shaders.

    If you have your own custom shader, you often need a way to feed it data. The toolkit will set up the standard data, like vertices, texture coordinates and normals, but sometimes you need something custom.

    Vertex attributes are the mechanism you use to pass that custom data all the way down to the shader.

    How the vertex attributes are used depends on the data type, so consult the appropriate object.

    See more

    Declaration

    Objective-C

    @interface MaplyVertexAttribute : NSObject

    Swift

    class MaplyVertexAttribute
  • A single entry in the legend array returned by

    See more

    Declaration

    Objective-C

    @interface MaplyLegendEntry : NSObject

    Swift

    class MaplyLegendEntry : NSObject
  • @brief The Mapbox Vector Style Set parses Mapbox GL Style sheets and turns them into Maply compatible styles. @details A style delegate is required by the Mapnik parser to build geometry out of Mapnik vector tiles. This style delegate can read a Mapbox GL Style sheet and produce compatible styles.

    See more

    Declaration

    Objective-C

    @interface MapboxVectorStyleSet : NSObject <MaplyVectorStyleDelegate>

    Swift

    class MapboxVectorStyleSet : NSObject, MaplyVectorStyleDelegate
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface MaplyMapboxVectorStyleSource : NSObject
    
    // Name of the source
    @property (nonatomic,nullable) NSString *name;
    
    // Vector and raster sources supported for now
    @property (nonatomic) MapboxSourceType type;
    
    // TileJSON URL, if present
    @property (nonatomic,nullable) NSString *url;
    
    // If the TileJSON spec is inline, this is it
    @property (nonatomic,nullable) NSDictionary *tileSpec;
    
    // Initialize with the entry in the style file
    - (id __nullable)initWithName:(NSString *__nonnull)name styleEntry:(NSDictionary * __nonnull)styleEntry styleSet:(MapboxVectorStyleSet * __nonnull)styleSet viewC:(NSObject<MaplyRenderControllerProtocol> * __nonnull)viewC;
    
    @end

    Swift

    class MaplyMapboxVectorStyleSource : NSObject
  • Settings that control how vector tiles look in relation to their styles.

    These are set based on the sort of device we’re on, particularly retina vs. non-retina. They can be manipulated directly as well for your needs.

    See more

    Declaration

    Objective-C

    @interface MaplyVectorStyleSettings : NSObject

    Swift

    class MaplyVectorStyleSettings : NSObject
  • Simple default style to see something in vector tile data.

    A simple vector style that displays each layer in a random color. Use this as a starting point for your own style.

    See more

    Declaration

    Objective-C

    @interface MaplyVectorStyleSimpleGenerator : NSObject <MaplyVectorStyleDelegate>

    Swift

    class MaplyVectorStyleSimpleGenerator : NSObject, MaplyVectorStyleDelegate
  • Base class for the simple vector style.

    See more

    Declaration

    Objective-C

    @interface MaplyVectorStyleSimple : NSObject <MaplyVectorStyle>

    Swift

    class MaplyVectorStyleSimple : NSObject, MaplyVectorStyle
  • Simple filled polygon with a random color.

    See more

    Declaration

    Objective-C

    @interface MaplyVectorStyleSimplePolygon : MaplyVectorStyleSimple

    Swift

    class MaplyVectorStyleSimplePolygon : MaplyVectorStyleSimple
  • Simple point we’ll convert to a label.

    See more

    Declaration

    Objective-C

    @interface MaplyVectorStyleSimplePoint : MaplyVectorStyleSimple

    Swift

    class MaplyVectorStyleSimplePoint : MaplyVectorStyleSimple
  • Simple linear with a random color.

    See more

    Declaration

    Objective-C

    @interface MaplyVectorStyleSimpleLinear : MaplyVectorStyleSimple

    Swift

    class MaplyVectorStyleSimpleLinear : MaplyVectorStyleSimple
  • Implementation of the line style symbolizer for Maply Vector Tiles.

    See more

    Declaration

    Objective-C

    @interface MaplyVectorTileStyleLine : MaplyVectorTileStyle

    Swift

    class MaplyVectorTileStyleLine : MaplyVectorTileStyle
  • Implementation of the marker style symbolizer for Maply Vector Tiles.

    See more

    Declaration

    Objective-C

    @interface MaplyVectorTileStyleMarker : MaplyVectorTileStyle

    Swift

    class MaplyVectorTileStyleMarker : MaplyVectorTileStyle
  • Implementation of the polygon style symbolizer for Maply Vector Tiles.

    See more

    Declaration

    Objective-C

    @interface MaplyVectorTileStylePolygon : MaplyVectorTileStyle

    Swift

    class MaplyVectorTileStylePolygon : MaplyVectorTileStyle
  • The Maply Vector Tile Style is an internal representation of the style JSON coming out of a Maply Vector Tile database.

    See more

    Declaration

    Objective-C

    @interface MaplyVectorTileStyle : NSObject <MaplyVectorStyle>

    Swift

    class MaplyVectorTileStyle : NSObject, MaplyVectorStyle
  • Implementation of the text style symbolizer for Maply Vector Tiles.

    See more

    Declaration

    Objective-C

    @interface MaplyVectorTileStyleText : MaplyVectorTileStyle

    Swift

    class MaplyVectorTileStyleText : MaplyVectorTileStyle
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface MapnikStyle : NSObject
    
    @property (nonatomic, readonly) NSMutableArray *rules;
    @property (nonatomic, strong) NSString *name;
    @property (nonatomic, assign) BOOL filterModeFirst;
    @property (nonatomic, assign) float opacity;
    
    - (void)addRule:(MapnikStyleRule*)rule;
    
    @end

    Swift

    class MapnikStyle : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface MapnikStyleRule : NSObject
    
    @property (nonatomic, strong) NSPredicate *filterPredicate;
    
    @property (nonatomic, assign) NSUInteger minScaleDenominator;
    @property (nonatomic, assign) NSUInteger maxScaleDenomitator;
    @property (nonatomic, assign) NSUInteger minZoom;
    @property (nonatomic, assign) NSUInteger maxZoom;
    
    @property (nonatomic, readonly) NSMutableArray *symbolizers;
    
    - (void)setFilter:(NSString*)filterExpression;
    
    @end

    Swift

    class MapnikStyleRule : NSObject
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface MapnikStyleSet : NSObject <NSXMLParserDelegate, MaplyVectorStyleDelegate>
    
    @property (nonatomic, strong, nullable) MaplyVectorStyleSettings *tileStyleSettings;
    @property (nonatomic, strong, nullable) NSMutableDictionary *styleDictionary;
    @property (nonatomic, weak, nullable) NSObject<MaplyRenderControllerProtocol> *viewC;
    @property (nonatomic, readonly) BOOL parsing;
    @property (nonatomic, strong, nullable) UIColor *backgroundColor;
    @property (nonatomic, assign) NSInteger tileMaxZoom;
    @property (nonatomic, assign) NSInteger drawPriorityOffset;
    @property (nonatomic, assign) CGFloat alpha;
    
    - (nonnull instancetype)initForViewC:(NSObject<MaplyRenderControllerProtocol> *__nonnull)viewC;
    
    - (void)loadXmlFile:(NSString *__nonnull)filePath;
    - (void)loadXmlData:(NSData *__nonnull)docData;
    - (void)loadJsonData:(NSData *__nonnull)jsonData;
    - (void)loadJsonFile:(NSString*__nonnull)filePath;
    - (void)saveAsJSON:(NSString *__nonnull)filePath;
    - (void)generateStyles;
    
    @end

    Swift

    class MapnikStyleSet : NSObject, XMLParserDelegate, MaplyVectorStyleDelegate
  • @brief Base class for elements derived from the ogc:expression abstract element.

    See more

    Declaration

    Objective-C

    @interface SLDExpression : NSObject

    Swift

    class SLDExpression : NSObject
  • @brief Class corresponding to the ogc:PropertyName element

    See more

    Declaration

    Objective-C

    @interface SLDPropertyNameExpression : SLDExpression

    Swift

    class SLDPropertyNameExpression : SLDExpression
  • @brief Class corresponding to the ogc:Literal element

    See more

    Declaration

    Objective-C

    @interface SLDLiteralExpression : SLDExpression

    Swift

    class SLDLiteralExpression : SLDExpression
  • @brief Class corresponding to the ogc:BinaryOperatorType elements

    See more

    Declaration

    Objective-C

    @interface SLDBinaryOperatorExpression : SLDExpression

    Swift

    class SLDBinaryOperatorExpression : SLDExpression
  • @brief Base class for elements of ogc:comparisonOps or ogc:logicOps.

    Elements of ogc:spatialOps are not supported.
    
    See more

    Declaration

    Objective-C

    @interface SLDOperator : NSObject

    Swift

    class SLDOperator : NSObject
  • @brief Class corresponding to the ogc:BinaryComparisonOpType elements

    See more

    Declaration

    Objective-C

    @interface SLDBinaryComparisonOperator : SLDOperator

    Swift

    class SLDBinaryComparisonOperator : SLDOperator
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface SLDIsNullOperator : SLDOperator

    Swift

    class SLDIsNullOperator : SLDOperator
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface SLDIsLikeOperator : SLDOperator

    Swift

    class SLDIsLikeOperator : SLDOperator
  • Undocumented

    See more

    Declaration

    Objective-C

    @interface SLDIsBetweenOperator : SLDOperator

    Swift

    class SLDIsBetweenOperator : SLDOperator
  • @brief Class corresponding to the ogc:Not element

    See more

    Declaration

    Objective-C

    @interface SLDNotOperator : SLDOperator

    Swift

    class SLDNotOperator : SLDOperator
  • @brief Class corresponding to the ogc:BinaryLogicOpType elements

    See more

    Declaration

    Objective-C

    @interface SLDLogicalOperator : SLDOperator

    Swift

    class SLDLogicalOperator : SLDOperator
  • @brief Class corresponding to the sld:NamedLayer element

    See more

    Declaration

    Objective-C

    @interface SLDNamedLayer : NSObject

    Swift

    class SLDNamedLayer : NSObject
  • @brief Class corresponding to the sld:UserStyle element

    See more

    Declaration

    Objective-C

    @interface SLDUserStyle : NSObject

    Swift

    class SLDUserStyle : NSObject
  • @brief Class corresponding to the se:FeatureTypeStyle element

    See more

    Declaration

    Objective-C

    @interface SLDFeatureTypeStyle : NSObject

    Swift

    class SLDFeatureTypeStyle : NSObject
  • @brief Class corresponding to the se:Rule element

    See more

    Declaration

    Objective-C

    @interface SLDRule : NSObject

    Swift

    class SLDRule : NSObject
  • @brief Class corresponding to the ogc:Filter element

    See more

    Declaration

    Objective-C

    @interface SLDFilter : NSObject

    Swift

    class SLDFilter : NSObject
  • @brief Class corresponding to the sld:StyledLayerDescriptor element

    The sld:StyledLayerDescriptor element is the root element of the Styled Layer Descriptor document.
    
    Implements the MaplyVectorStyleDelegate protocol for matching and applying styles to vector objects.
    

    See

    MaplyVectorStyleDelegate
    See more

    Declaration

    Objective-C

    @interface SLDStyleSet : NSObject <MaplyVectorStyleDelegate>

    Swift

    class SLDStyleSet : NSObject, MaplyVectorStyleDelegate
  • @brief Base class for Symbolizer elements

    See more

    Declaration

    Objective-C

    @interface SLDSymbolizer : NSObject

    Swift

    class SLDSymbolizer : NSObject
  • @brief Class corresponding to the LineSymbolizer element

    Declaration

    Objective-C

    @interface SLDLineSymbolizer : SLDSymbolizer

    Swift

    class SLDLineSymbolizer : SLDSymbolizer
  • @brief Class corresponding to the PolygonSymbolizer element

    Declaration

    Objective-C

    @interface SLDPolygonSymbolizer : SLDSymbolizer

    Swift

    class SLDPolygonSymbolizer : SLDSymbolizer
  • @brief Class corresponding to the PointSymbolizer element

    Declaration

    Objective-C

    @interface SLDPointSymbolizer : SLDSymbolizer

    Swift

    class SLDPointSymbolizer : SLDSymbolizer
  • @brief Class corresponding to the TextSymbolizer element

    Declaration

    Objective-C

    @interface SLDTextSymbolizer : SLDSymbolizer

    Swift

    class SLDTextSymbolizer : SLDSymbolizer
  • Class for generating images corresponding to WellKnownName elements.

    Each static method uses low-level Core Graphics calls to generate an appropriate UIImage object.

    See more

    Declaration

    Objective-C

    @interface SLDWellKnownMarkers : NSObject

    Swift

    class SLDWellKnownMarkers : NSObject
  • An interpreter for Mapbox Vector Tiles.

    This will turn vector tiles into images, visual objects, or a combination of the two. Loader interpreters like this one can be used by Loaders that talk to ondevice objects (such as MBTiles files) or remote tile sources.

    See more

    Declaration

    Objective-C

    @interface MapboxVectorInterpreter : NSObject <MaplyLoaderInterpreter>

    Swift

    class MapboxVectorInterpreter : NSObject, MaplyLoaderInterpreter
  • Container for data parsed out of a Mapbox Vector Tile stream.

    This holds the parsed data as well as post-constructed data. You will likely be handed one of these if you see it at all. There are few cases where you might construct one.

    See more

    Declaration

    Objective-C

    @interface MaplyVectorTileData : NSObject

    Swift

    class MaplyVectorTileData : NSObject
  • A billboard is tied to a specific point, but rotates to face the user.

    The billboard object represents a rectangle which is rooted at a specific point, but will rotate to face the user. These are typically used in 3D, when the globe or map has a tilt. They make little sense in 2D.

    See more

    Declaration

    Objective-C

    @interface MaplyBillboard : NSObject

    Swift

    class MaplyBillboard : NSObject
  • Information about the group of objects to cluster.

    This object is passed in when the developer needs to make an image for a group of objects.

    See more

    Declaration

    Objective-C

    @interface MaplyClusterInfo : NSObject

    Swift

    class MaplyClusterInfo : NSObject
  • Visual representation for a group of markers.

    Fill this in when you’re implementing a MaplyClusterGenerator.

    See more

    Declaration

    Objective-C

    @interface MaplyClusterGroup : NSObject

    Swift

    class MaplyClusterGroup : NSObject
  • The basic cluster generator installed by default.

    This cluster generator will make images for grouped clusters of markers/labels.

    See more

    Declaration

    Objective-C

    @interface MaplyBasicClusterGenerator : NSObject <MaplyClusterGenerator>

    Swift

    class MaplyBasicClusterGenerator : NSObject, MaplyClusterGenerator
  • Used to represent the view controller resources attached to one or more visual objects.

    When you add one or more objects to a view controller, you’ll get a component object back. It’s an opaque object (seriously, don’t look inside) that we use to track various resources within the toolkit.

    You can keep these around to remove the visual objects you added earlier, but that’s about all the interaction you’ll have with them.

    See more

    Declaration

    Objective-C

    @interface MaplyComponentObject : NSObject

    Swift

    class MaplyComponentObject : NSObject
  • Contains a big pile of geometry and textures (e.g. a model).

    The geometry model

    See more

    Declaration

    Objective-C

    @interface MaplyGeomModel : NSObject

    Swift

    class MaplyGeomModel : NSObject
  • Place a geometry model at a given location

    Geometry models tend to be expensive so we load and place them in a two step process. First you create the MaplyGeomModel and then you place it in one or more spots with this MaplyGeomModelInstance.

    See more

    Declaration

    Objective-C

    @interface MaplyGeomModelInstance : NSObject

    Swift

    class MaplyGeomModelInstance : NSObject
  • A version of the geometry model instance that moves.

    This version of the geometry model instance can move in a limited way over time.

    See more

    Declaration

    Objective-C

    @interface MaplyMovingGeomModelInstance : MaplyGeomModelInstance

    Swift

    class MaplyMovingGeomModelInstance : MaplyGeomModelInstance
  • Sometimes we don’t know how many instances there will be of a model until some logic runs on the GPU. We can then take that number and run that number of instances of the given model. [Metal only]

    See more

    Declaration

    Objective-C

    @interface MaplyGeomModelGPUInstance : NSObject

    Swift

    class MaplyGeomModelGPUInstance : NSObject
  • This is a 3D label.

    The Maply Label is a 3D object that sits on top of the globe (or map) at a specified location. If you want a 2D label that sits on top of everything else, you want the MaplyScreenLabel. Seriously, you probably want that.

    See more

    Declaration

    Objective-C

    @interface MaplyLabel : NSObject

    Swift

    class MaplyLabel : NSObject
  • The Marker places a UIImage on the globe or map at a given location.

    The Maply Marker takes a location and image, using those to display a textured rectangle on the globe (or map). Since it’s a real 3D object it will get larger and smaller as the user moves around.

    If you want a screen based object that stays the same size and is displayed on top of everything else, look to the MaplyScreenMarker.

    See more

    Declaration

    Objective-C

    @interface MaplyMarker : NSObject

    Swift

    class MaplyMarker : NSObject
  • Utility for calculating moon position.

    This is a utility class that figures out where the moon is at a given data and provides the position.

    See more

    Declaration

    Objective-C

    @interface MaplyMoon : NSObject

    Swift

    class MaplyMoon : NSObject
  • A particle system is used to spawn large numbers of small moving objects.

    The particle system defines what the objects are and how they’re controlled. Actual data is handled through the MaplyParticleBatch.

    You set up a particle system and then add MaplyParticleBatches via a view controller.

    See more

    Declaration

    Objective-C

    @interface MaplyParticleSystem : NSObject

    Swift

    class MaplyParticleSystem : NSObject
  • A particle batch adds a set number of particles to the system.

    The particle batch holds the number of particles defined in the MaplyParticleSystem batchSize property. Each attribute array is added individually via an NSData object. All attributes must be present or the batch is invalid and won’t be passed through the system.

    See more

    Declaration

    Objective-C

    @interface MaplyParticleBatch : NSObject

    Swift

    class MaplyParticleBatch : NSObject
  • The Maply Points object is used to add a large number of static points to the scene.

    Rather than add a single 3D point we assume you want to add a lot of them all at once. This object lets you do that and lets you assign the various data values to input attributes in your custom shader.

    All the cool kids have custom shaders.

    See more

    Declaration

    Objective-C

    @interface MaplyPoints : NSObject

    Swift

    class MaplyPoints : NSObject
  • The Screen Label is a 2D label that tracks a given geographic location.

    This screen label will track the given geographic position. If it’s behind the globe it will disappear. The label is rendered in a fixed size and will always appear on top of other geometry.

    See more

    Declaration

    Objective-C

    @interface MaplyScreenLabel : NSObject

    Swift

    class MaplyScreenLabel : NSObject
  • A version of the maply screen label that moves.

    This version of the screen label can move in a limited way over time.

    See more

    Declaration

    Objective-C

    @interface MaplyMovingScreenLabel : MaplyScreenLabel

    Swift

    class MaplyMovingScreenLabel : MaplyScreenLabel
  • The Screen Marker is a 2D object that displays an image on the screen tracking a given location.

    The screen marker will track the given geographic location and display a centered rectangle with the given image. Essentially it’s a free floating icon, similar to the MaplyScreenLabel and it will always be drawn on top of other objects. If the location would be behind the globe (in globe mode), the marker will disappear.

    If you’re looking for a 3D marker object, that’s the MaplyMarker.

    See more

    Declaration

    Objective-C

    @interface MaplyScreenMarker : NSObject

    Swift

    class MaplyScreenMarker : NSObject
  • A version of the maply screen marker that moves.

    This version of the screen marker can move in a limited way over time.

    See more

    Declaration

    Objective-C

    @interface MaplyMovingScreenMarker : MaplyScreenMarker

    Swift

    class MaplyMovingScreenMarker : MaplyScreenMarker
  • The Maply Screen Object is used to build up a more complex screen object from multiple pieces.

    You can use one or more of these to build up a combination of labels and images that form a single marker, label, or billboard.

    See more

    Declaration

    Objective-C

    @interface MaplyScreenObject : NSObject

    Swift

    class MaplyScreenObject : NSObject
  • Maply Shape is the base class for the actual shape objects.

    The maply shape is just the base class. Look to MaplyShapeCircle, MaplyShapeCylinder, MaplyShapeSphere, MaplyShapeGreatCircle, and MaplyShapeLinear.

    See more

    Declaration

    Objective-C

    @interface MaplyShape : NSObject

    Swift

    class MaplyShape : NSObject
  • Shows a circle at the given location on the globe or map.

    This object represents a circle at the given geographic location. It needs a radius (in display coordinates) and can optionally have a height above the globe or map.

    See more

    Declaration

    Objective-C

    @interface MaplyShapeCircle : MaplyShape

    Swift

    class MaplyShapeCircle : MaplyShape
  • Display a sphere at the given location with the given radius.

    This object represents a sphere at the

    See more

    Declaration

    Objective-C

    @interface MaplyShapeSphere : MaplyShape

    Swift

    class MaplyShapeSphere : MaplyShape
  • Represent a cyclinder on the globe or map.

    This object represents a cylinder with it’s base tied to the surface of the globe or map and it’s top pointed outward (on the globe anyway). The base can be offset and the overall radius and height are adjustable.

    See more

    Declaration

    Objective-C

    @interface MaplyShapeCylinder : MaplyShape

    Swift

    class MaplyShapeCylinder : MaplyShape
  • Represents an great circle or great circle with height.

    Great circles are the shortest distance between two points on a globe. We extend that a bit here, by adding height. The result is a curved object that can either sit on top of the globe or rise above it. In either case it begins and ends at the specified points on the globe.

    See more

    Declaration

    Objective-C

    @interface MaplyShapeGreatCircle : MaplyShape

    Swift

    class MaplyShapeGreatCircle : MaplyShape
  • Represents a simple rectangle in 3D.

    The rectangle is a 2D object in 3D. Specify the lower left and upper right coordinates as well as an optional texture.

    See more

    Declaration

    Objective-C

    @interface MaplyShapeRectangle : MaplyShape

    Swift

    class MaplyShapeRectangle : MaplyShape
  • A linear feature offset from the globe.

    The main difference between this object and a regular MaplyVectorObject is that you specify coordiantes in 3D. You can use this to create linear features that are offset from the globe.

    See more

    Declaration

    Objective-C

    @interface MaplyShapeLinear : MaplyShape

    Swift

    class MaplyShapeLinear : MaplyShape
  • An extruded shape with an arbitrary outline.

    This object represents an extruded shape with the given thickness. It can be oriented according to the pitch, roll, yaw and height.

    See more

    Declaration

    Objective-C

    @interface MaplyShapeExtruded : MaplyShape

    Swift

    class MaplyShapeExtruded : MaplyShape
  • The Stars Model parses and then displays a star field.

    This is used to display a star field around the earth.

    See more

    Declaration

    Objective-C

    @interface MaplyStarsModel : NSObject

    Swift

    class MaplyStarsModel : NSObject
  • Stickers are rectangles placed on the globe with an image.

    The Maply Sticker will stretch a rectangle (in geographic) over the given extents and tack the given image on top of it. Stickers differ from MaplyMarker objects in that they’re big. They can stretch over a larger are and need to be subdivided as such.

    See more

    Declaration

    Objective-C

    @interface MaplySticker : NSObject

    Swift

    class MaplySticker : NSObject
  • Utility for calculating sun position and shading info.

    This is a utility class that figures out where the sun is at a given date and provides positional information for lighting calculations.

    See more

    Declaration

    Objective-C

    @interface MaplySun : NSObject

    Swift

    class MaplySun : NSObject
  • Represents an OpenGL texture.

    The MaplyTexture is an opaque object used to track OpenGL ES textures. You create one from the MaplyBaseViewController’s addImage call. Then that texture will live until this object is released.

    These can be used in place of UIImages in the various objects (e.g. MaplyScreenMarker).

    Declaration

    Objective-C

    @interface MaplyTexture : NSObject

    Swift

    class MaplyTexture : NSObject
  • Maply Vector Object represents zero or more vector features.

    The Vector Object can hold several vector features of the same or different types. It’s meant to be a fairly opaque structure, often read from GeoJSON or Shapefiles. It’s less opaque than originally planned, however, and sports a number of specific methods.

    If you’re doing real vector manipulation, it’s best to do it somewhere else and then create one of these as needed for display.

    Vector Objects can be created directly or read from a MaplyVectorDatabase. They are typically then displayed on top of a MaplyViewController or WhirlyGlobeViewController as vectors.

    Vector Objects vertices are always in geographic, with longitude = x and latitude = y.

    See more

    Declaration

    Objective-C

    @interface MaplyVectorObject : NSObject

    Swift

    class MaplyVectorObject : NSObject