ArcGIS Runtime SDK for iOS
100.15
|
A base class for multilayer symbols. Multilayer symbols are built from multiple layers of symbols, which combine to let you add complex symbols to maps and scenes.
Multilayer symbols can be returned from feature layers based on web maps, feature services (with Use Advanced Symbology set to true), or mobile map packages, and can also be created from JSON by calling fromJSON:error: (AGSJSONSerializable-p)
. The same multilayer symbols and the components used to build them are available in ArcGIS Runtime, allowing you to programmatically create and change them using the AGSMultilayerPointSymbol
, AGSMultilayerPolylineSymbol
, and AGSMultilayerPolygonSymbol
subclasses. You can access the layers that comprise the symbol through AGSMultilayerSymbol::symbolLayers
. You can modify symbol layer properties, such as the color of a multilayer symbol. Some subclasses also expose additional symbol properties.
The symbol layers that comprise the symbol can be of different types. For example, a polyline geometry may be drawn with an AGSMultilayerPolylineSymbol
that has line (stroke) symbol layers that draw the line geometry, and also point (marker) symbol layers that are drawn at specified point locations relative to the line geometry. When you save an ArcGIS Pro map as a web map, any multilayer symbols in the map are converted to simple symbols. In general, point symbols are converted to picture marker symbols optimized for the web, and line and polygon symbols are simplified while representing the original symbol as closely as possible. If you're authoring a feature service from ArcGIS Pro or ArcGIS Desktop, however, both the original symbols and the simplified symbols are stored. The stored symbols allow clients that support advanced symbols to render the features as originally symbolized, while those that do not support advanced symbols (such as ArcGIS Online Map Viewer) can use the simple symbols for display. Having both sets of symbols allows you to retain the advanced symbology where available and still share the feature service as widely as possible. Symbols used by web scenes are also multilayer but use a different specification than the ArcGIS Pro and ArcGIS Runtime symbols. When you read symbols from a web scene in your ArcGIS Runtime app, you get an ArcGIS Runtime representation of the multilayer symbol. Symbol layers in an ArcGIS Runtime multilayer symbol are in reverse order of how they appear in the JSON representation from the server.
AGSSymbol
Instance Methods | |
(id< AGSCancelable >) | - createSwatchWithBackgroundColor:screen:completion: |
(id< AGSCancelable >) | - createSwatchWithCompletion: |
(id< AGSCancelable >) | - createSwatchWithGeometry:width:height:screen:backgroundColor:completion: |
(nullable id< AGSCancelable >) | - createSwatchWithWidth:height:screen:backgroundColor:completion: |
(BOOL) | - isEqualToSymbol: |
(nullable id) | - toJSON: |
Class Methods | |
(nullable id< AGSJSONSerializable >) | + fromJSON:error: |
Properties | |
AGSColor * | color |
AGSSymbolReferenceProperties * | referenceProperties |
NSMutableArray< AGSSymbolLayer * > * | symbolLayers |
NSDictionary< NSString *, id > * | unknownJSON |
NSDictionary< NSString *, id > * | unsupportedJSON |
- (id<AGSCancelable>) createSwatchWithBackgroundColor: | (nullable AGSColor *) | backgroundColor | |
screen: | (nullable AGSScreen *) | screen | |
completion: | (void(^)(AGSImage *__nullable swatch, NSError *__nullable error)) | completion | |
Creates swatch with provided background color.
backgroundColor | Desired background color of the image. |
screen | Screen that the swatch will be rendered for. If you specify nil then the main screen will be used. |
completion | A block that is invoked when the operation completes. |
- (id<AGSCancelable>) createSwatchWithCompletion: | (void(^)(AGSImage *__nullable swatch, NSError *__nullable error)) | completion |
Creates a swatch with a clear background color. This method uses main screen's scale to determine the size of the image.
completion | block that is invoked when operation completes. |
- (id<AGSCancelable>) createSwatchWithGeometry: | (AGSGeometry *) | geometry | |
width: | (NSInteger) | width | |
height: | (NSInteger) | height | |
screen: | (nullable AGSScreen *) | screen | |
backgroundColor: | (nullable AGSColor *) | backgroundColor | |
completion: | (void(^)(AGSImage *__nullable swatch, NSError *__nullable error)) | completion | |
Creates a swatch using the provided geometry and other parameters. This is the most configurable of the methods to create swatches. You can pass the pixels per inch that you would like the image to be rendered at. This will determine how many pixels are used to render symbols of sizes that are specified in points.
geometry | The geometry of the symbol to be drawn in the swatch image. The specified geometry is in DIPs, with the point {0,0} located at the center of the swatch image. The X-axis increases towards the right side of the swatch image. The Y-axis increases towards the top of the swatch image. For example: when creating a swatch for an AGSMarkerSymbol , specifying a geometry of {10,10} will draw the marker 10 DIPs up and to the right of the center of the swatch. The geometry type (AGSPoint , AGSPolyline , AGSPolygon ) should correspond to the symbol type (AGSMarkerSymbol , AGSLineSymbol , AGSFillSymbol ). The geometry's spatial reference is ignored. |
width | Desired width of the image in pixels. |
height | Desired height of the image in pixels. |
screen | The screen that the swatch will be rendered for. If you specify nil then the main screen will be used. |
backgroundColor | The desired background color of the image. |
completion | A block that is invoked when operation completes. |
- (nullable id<AGSCancelable>) createSwatchWithWidth: | (NSInteger) | width | |
height: | (NSInteger) | height | |
screen: | (nullable AGSScreen *) | screen | |
backgroundColor: | (nullable AGSColor *) | backgroundColor | |
completion: | (void(^)(AGSImage *__nullable swatch, NSError *__nullable error)) | completion | |
|
staticrequiredinherited |
Initializes and returns an object from its JSON representation.
JSONObject | NSDictionary or NSArray containing the JSON. |
error | encountered during the operation, if any. |
- (BOOL) isEqualToSymbol: | (AGSSymbol *) | other |
Compares this symbol to another for equality.
other | The other symbol to compare this one to. |
YES
if the two symbols are equal, otherwise NO
.
|
requiredinherited |
Returns JSON representation for this object.
error | encountered during the operation, if any. |
NSDictionary
or NSArray
containing the JSON. Reimplemented in AGSPortalItem.
|
readwritenonatomicstrong |
The consensus color of all layers in the symbol (excluding those that are color-locked).
Because AGSMultilayerSymbol
may have multiple symbol layers, this property represents the value of all color and tint color properties of constituent symbol layers, excluding any AGSStrokeSymbolLayer
in an AGSMultilayerPolygonSymbol
, as those symbol layers are outlines. The property defines the color and tint color of symbols contained in AGSVectorMarkerSymbolElement
. Constituent symbol layers whose isColorLocked
property is YES
do not change color as a result of this function. To change outline colors, modify the outline symbol layer colors individually.
|
readwritenonatomicstrong |
The reference properties for this symbol.
|
readnonatomicstrong |
The symbol layers of the multilayer symbol.
|
readrequirednonatomiccopyinherited |
A dictionary of values that was in the source JSON but was unparsed by API.
NSDictionary
containing the unknown JSON.
|
readnonatomiccopyinherited |
A dictionary of values that are supported by the REST API, but not exposed through the SDK API.
NSDictionary
containing the unsupported JSON.