MaplyCoordinateSystem
Objective-C
@interface MaplyCoordinateSystem : NSObject
Swift
class MaplyCoordinateSystem : 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.
-
Set the bounding box in the local coordinate system.
This is the bounding box, for things like display coordinates. If the extents would normally be in degrees, use radians. Otherwise, the values are in the local system.
Declaration
Objective-C
- (void)setBounds:(MaplyBoundingBox)bounds;
Swift
func setBounds(_ bounds: MaplyBoundingBox)
-
Set the bounding box in the local coordinate system.
This is the bounding box, for things like display coordinates. If the extents would normally be in degrees, use radians. Otherwise, the values are in the local system.
Declaration
Objective-C
- (void)setBoundsD:(MaplyBoundingBoxD)boundsD;
Swift
func setBoundsD(_ boundsD: MaplyBoundingBoxD)
-
Set the bounding box in the local coordinate system.
This is the bounding box, for things like display coordinates. If the extents would normally be in degrees, use radians. Otherwise, the values are in the local system.
Declaration
Objective-C
- (void)setBoundsLL:(MaplyCoordinate *_Nonnull)ll ur:(MaplyCoordinate *_Nonnull)ll;
Swift
func setBoundsLL(_ ll: UnsafeMutablePointer<MaplyCoordinate>, ur ll: UnsafeMutablePointer<MaplyCoordinate>)
-
Return the bounding box in local coordinates.
This is the bounding box in local coordinates, or if the extents would normally be expressed in degrees, it’s radians.
-
Return the bounding box in local coordinates.
This is the bounding box in local coordinates, or if the extents would normally be expressed in degrees, it’s radians.
Declaration
Objective-C
- (void)getBoundsLL:(MaplyCoordinate *_Nonnull)ret_ll ur:(MaplyCoordinate *_Nonnull)ret_ur;
Swift
func getBoundsLL(_ ret_ll: UnsafeMutablePointer<MaplyCoordinate>, ur ret_ur: UnsafeMutablePointer<MaplyCoordinate>)
-
Convert a coordinate from geographic to the local coordinate system.
Take a geo coordinate (lon/lat in radians) and convert to the local space.
Declaration
Objective-C
- (MaplyCoordinate)geoToLocal:(MaplyCoordinate)coord;
Swift
func geo(toLocal coord: MaplyCoordinate) -> MaplyCoordinate
-
Convert a coordinate from the local space to geographic.
This takes a coordinate in this coordinate system and converts it to geographic (lat/lon in radians).
Declaration
Objective-C
- (MaplyCoordinate)localToGeo:(MaplyCoordinate)coord;
Swift
func local(toGeo coord: MaplyCoordinate) -> MaplyCoordinate
-
Convert a 3D coordinate from the local space to geocentric.
This takes a 3D coordinate (including height) and converts it to geocentric in WGS84.
Declaration
Objective-C
- (MaplyCoordinate3dD)localToGeocentric:(MaplyCoordinate3dD)coord;
Swift
func local(toGeocentric coord: MaplyCoordinate3dD) -> MaplyCoordinate3dD
-
Convert a 3D coordinate from geocentric to the local space.
This takes a 3D geocentric coordinate (WGS84) and converts it to the local space, including height;
Declaration
Objective-C
- (MaplyCoordinate3dD)geocentricToLocal:(MaplyCoordinate3dD)coord;
Swift
func geocentric(toLocal coord: MaplyCoordinate3dD) -> MaplyCoordinate3dD
-
Express the coordinate system in an SRS compatible string.
Declaration
Objective-C
- (NSString *_Nonnull)getSRS;
Swift
func getSRS() -> String
-
Can this coordinate system be expressed in degrees?
This is set for coordinate systems that express their extents in degrees. This is useful for cases where we need to construct some metadata to go along with the system and you’d normally expect it to be in degrees rather than radians.
Declaration
Objective-C
- (_Bool)canBeDegrees;
Swift
func canBeDegrees() -> Bool