DingiShape
@interface DingiShape : NSObject <DingiAnnotation, NSSecureCoding>
DingiShape is an abstract class that represents a shape or annotation. Shapes
constitute the content of a map – not only the overlays atop the map, but also
the content that forms the base map.
Create instances of DingiPointAnnotation, DingiPointCollection, DingiPolyline,
DingiMultiPolyline, DingiPolygon, DingiMultiPolygon, or DingiShapeCollection in
order to use DingiShape‘s methods. Do not create instances of DingiShape
directly, and do not create your own subclasses of this class. The shape
classes correspond to the
Geometry object
types in the GeoJSON standard, but some have nonstandard names for backwards
compatibility.
Although you do not create instances of this class directly, you can use its
+[DingiShape shapeWithData:encoding:error:] factory method to create one of the
concrete subclasses of DingiShape noted above from GeoJSON data. To access a
shape’s attributes, use the corresponding DingiFeature class instead.
You can add shapes to the map by adding them to an DingiShapeSource object.
Configure the appearance of an DingiShapeSource’s or DingiVectorTileSource’s
shapes collectively using a concrete instance of DingiVectorStyleLayer.
Alternatively, you can add some kinds of shapes directly to a map view as
annotations or overlays.
-
Returns an
DingiShapeobject initialized with the given data interpreted as a string containing a GeoJSON object.If the GeoJSON object is a geometry, the returned value is a kind of
DingiShape. If it is a feature object, the returned value is a kind ofDingiShapethat conforms to theDingiFeatureprotocol. If it is a feature collection object, the returned value is an instance ofDingiShapeCollectionFeature.Example
let url = mainBundle.url(forResource: "amsterdam", withExtension: "geojson")! let data = try! Data(contentsOf: url) let feature = try! DingiShape(data: data, encoding: String.Encoding.utf8.rawValue) as! DingiShapeCollectionFeatureDeclaration
Objective-C
+ (nullable DingiShape *)shapeWithData:(nonnull NSData *)data encoding:(NSStringEncoding)encoding error:(NSError *_Nullable *_Nullable)outError;Swift
/*not inherited*/ init(data: Data, encoding: UInt) throwsParameters
dataString data containing GeoJSON source code.
encodingThe encoding used by
data.outErrorUpon return, if an error has occurred, a pointer to an
NSErrorobject describing the error. Pass inNULLto ignore any error.Return Value
An
DingiShapeobject representation ofdata, ornilifdatacould not be parsed as valid GeoJSON source code. Ifnil,outErrorcontains anNSErrorobject describing the problem.
-
The title of the shape annotation.
The default value of this property is
nil.This property is ignored when the shape is used in an
DingiShapeSource. To name a shape used in a shape source, create anDingiFeatureand add an attribute to theDingiFeature.attributesproperty.Declaration
Objective-C
@property (readwrite, copy, nonatomic, nullable) NSString *title;Swift
var title: String? { get set } -
The subtitle of the shape annotation. The default value of this property is
nil.This property is ignored when the shape is used in an
DingiShapeSource. To provide additional information about a shape used in a shape source, create anDingiFeatureand add an attribute to theDingiFeature.attributesproperty.Declaration
Objective-C
@property (readwrite, copy, nonatomic, nullable) NSString *subtitle;Swift
var subtitle: String? { get set }
-
Returns the GeoJSON string representation of the shape encapsulated in a data object.
Declaration
Objective-C
- (nonnull NSData *)geoJSONDataUsingEncoding:(NSStringEncoding)encoding;Swift
func geoJSONData(usingEncoding encoding: UInt) -> DataParameters
encodingThe string encoding to use.
Return Value
A data object containing the shape’s GeoJSON string representation.
DingiShape Class Reference