@goongmaps/goong-map-react-native
Version:
A Goong GL react native module for creating custom maps
1,864 lines (1,647 loc) • 49.1 kB
JavaScript
/* eslint-disable */
// DO NOT MODIFY
// THIS FILE IS AUTOGENERATED
import PropTypes from 'prop-types';
import { IS_ANDROID } from './index';
export const StyleTypes = {
Constant: 'constant',
Color: 'color',
Transition: 'transition',
Translation: 'translation',
Function: 'function',
Image: 'image',
Enum: 'enum',
};
export function getStyleType(styleProp) {
if (!IS_ANDROID && styleExtras[styleProp]) {
return styleExtras[styleProp].iosType;
}
if (styleMap[styleProp]) {
return styleMap[styleProp];
}
throw new Error(`${styleProp} is not a valid Mapbox layer style`);
}
export const FillLayerStyleProp = PropTypes.shape({
/**
* Whether this layer is displayed.
*/
visibility: PropTypes.oneOf(['visible', 'none']),
/**
* Whether or not the fill should be antialiased.
*/
fillAntialias: PropTypes.oneOfType([
PropTypes.bool,
PropTypes.array,
]),
/**
* The opacity of the entire fill layer. In contrast to the `fillColor`, this value will also affect the 1px stroke around the fill, if the stroke is used.
*/
fillOpacity: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s fillOpacity property.
*/
fillOpacityTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The color of the filled part of this layer. This color can be specified as `rgba` with an alpha component and the color's opacity will not affect the opacity of the 1px stroke, if it is used.
*
* @disabledBy fillPattern
*/
fillColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s fillColor property.
*/
fillColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The outline color of the fill. Matches the value of `fillColor` if unspecified.
*
* @disabledBy fillPattern
*/
fillOutlineColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s fillOutlineColor property.
*/
fillOutlineColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.
*/
fillTranslate: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.number),
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s fillTranslate property.
*/
fillTranslateTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Controls the frame of reference for `fillTranslate`.
*
* @requires fillTranslate
*/
fillTranslateAnchor: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport']),
PropTypes.array,
]),
/**
* Name of image in sprite to use for drawing image fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoomDependent expressions will be evaluated only at integer zoom levels.
*/
fillPattern: PropTypes.oneOfType([
PropTypes.number,
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s fillPattern property.
*/
fillPatternTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
});
export const LineLayerStyleProp = PropTypes.shape({
/**
* The display of line endings.
*/
lineCap: PropTypes.oneOfType([
PropTypes.oneOf(['butt', 'round', 'square']),
PropTypes.array,
]),
/**
* The display of lines when joining.
*/
lineJoin: PropTypes.oneOfType([
PropTypes.oneOf(['bevel', 'round', 'miter']),
PropTypes.array,
]),
/**
* Used to automatically convert miter joins to bevel joins for sharp angles.
*/
lineMiterLimit: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* Used to automatically convert round joins to miter joins for shallow angles.
*/
lineRoundLimit: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* Whether this layer is displayed.
*/
visibility: PropTypes.oneOf(['visible', 'none']),
/**
* The opacity at which the line will be drawn.
*/
lineOpacity: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s lineOpacity property.
*/
lineOpacityTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The color with which the line will be drawn.
*
* @disabledBy linePattern
*/
lineColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s lineColor property.
*/
lineColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.
*/
lineTranslate: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.number),
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s lineTranslate property.
*/
lineTranslateTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Controls the frame of reference for `lineTranslate`.
*
* @requires lineTranslate
*/
lineTranslateAnchor: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport']),
PropTypes.array,
]),
/**
* Stroke thickness.
*/
lineWidth: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s lineWidth property.
*/
lineWidthTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Draws a line casing outside of a line's actual path. Value indicates the width of the inner gap.
*/
lineGapWidth: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s lineGapWidth property.
*/
lineGapWidthTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The line's offset. For linear features, a positive value offsets the line to the right, relative to the direction of the line, and a negative value to the left. For polygon features, a positive value results in an inset, and a negative value results in an outset.
*/
lineOffset: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s lineOffset property.
*/
lineOffsetTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Blur applied to the line, in pixels.
*/
lineBlur: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s lineBlur property.
*/
lineBlurTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Specifies the lengths of the alternating dashes and gaps that form the dash pattern. The lengths are later scaled by the line width. To convert a dash length to pixels, multiply the length by the current line width. Note that GeoJSON sources with `lineMetrics: true` specified won't render dashed lines to the expected scale. Also note that zoomDependent expressions will be evaluated only at integer zoom levels.
*
* @disabledBy linePattern
*/
lineDasharray: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.number),
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s lineDasharray property.
*/
lineDasharrayTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Name of image in sprite to use for drawing image lines. For seamless patterns, image width must be a factor of two (2, 4, 8, ..., 512). Note that zoomDependent expressions will be evaluated only at integer zoom levels.
*/
linePattern: PropTypes.oneOfType([
PropTypes.number,
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s linePattern property.
*/
linePatternTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Defines a gradient with which to color a line feature. Can only be used with GeoJSON sources that specify `"lineMetrics": true`.
*
* @disabledBy lineDasharray, linePattern
*/
lineGradient: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
});
export const SymbolLayerStyleProp = PropTypes.shape({
/**
* Label placement relative to its geometry.
*/
symbolPlacement: PropTypes.oneOfType([
PropTypes.oneOf(['point', 'line', 'line-center']),
PropTypes.array,
]),
/**
* Distance between two symbol anchors.
*/
symbolSpacing: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* If true, the symbols will not cross tile edges to avoid mutual collisions. Recommended in layers that don't have enough padding in the vector tile to prevent collisions, or if it is a point symbol layer placed after a line symbol layer.
*/
symbolAvoidEdges: PropTypes.oneOfType([
PropTypes.bool,
PropTypes.array,
]),
/**
* Controls the order in which overlapping symbols in the same layer are rendered
*/
symbolZOrder: PropTypes.oneOfType([
PropTypes.oneOf(['auto', 'viewport-y', 'source']),
PropTypes.array,
]),
/**
* If true, the icon will be visible even if it collides with other previously drawn symbols.
*
* @requires iconImage
*/
iconAllowOverlap: PropTypes.oneOfType([
PropTypes.bool,
PropTypes.array,
]),
/**
* If true, other symbols can be visible even if they collide with the icon.
*
* @requires iconImage
*/
iconIgnorePlacement: PropTypes.oneOfType([
PropTypes.bool,
PropTypes.array,
]),
/**
* If true, text will display without their corresponding icons when the icon collides with other symbols and the text does not.
*
* @requires iconImage, textField
*/
iconOptional: PropTypes.oneOfType([
PropTypes.bool,
PropTypes.array,
]),
/**
* In combination with `symbolPlacement`, determines the rotation behavior of icons.
*
* @requires iconImage
*/
iconRotationAlignment: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport', 'auto']),
PropTypes.array,
]),
/**
* Scales the original size of the icon by the provided factor. The new pixel size of the image will be the original pixel size multiplied by `iconSize`. 1 is the original size; 3 triples the size of the image.
*
* @requires iconImage
*/
iconSize: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* Scales the icon to fit around the associated text.
*
* @requires iconImage, textField
*/
iconTextFit: PropTypes.oneOfType([
PropTypes.oneOf(['none', 'width', 'height', 'both']),
PropTypes.array,
]),
/**
* Size of the additional area added to dimensions determined by `iconTextFit`, in clockwise order: top, right, bottom, left.
*
* @requires iconImage, textField
*/
iconTextFitPadding: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.number),
PropTypes.array,
]),
/**
* Name of image in sprite to use for drawing an image background.
*/
iconImage: PropTypes.oneOfType([
PropTypes.number,
PropTypes.string,
PropTypes.array,
]),
/**
* Rotates the icon clockwise.
*
* @requires iconImage
*/
iconRotate: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* Size of the additional area around the icon bounding box used for detecting symbol collisions.
*
* @requires iconImage
*/
iconPadding: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* If true, the icon may be flipped to prevent it from being rendered upsideDown.
*
* @requires iconImage
*/
iconKeepUpright: PropTypes.oneOfType([
PropTypes.bool,
PropTypes.array,
]),
/**
* Offset distance of icon from its anchor. Positive values indicate right and down, while negative values indicate left and up. Each component is multiplied by the value of `iconSize` to obtain the final offset in pixels. When combined with `iconRotate` the offset will be as if the rotated direction was up.
*
* @requires iconImage
*/
iconOffset: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.number),
PropTypes.array,
]),
/**
* Part of the icon placed closest to the anchor.
*
* @requires iconImage
*/
iconAnchor: PropTypes.oneOfType([
PropTypes.oneOf(['center', 'left', 'right', 'top', 'bottom', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),
PropTypes.array,
]),
/**
* Orientation of icon when map is pitched.
*
* @requires iconImage
*/
iconPitchAlignment: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport', 'auto']),
PropTypes.array,
]),
/**
* Orientation of text when map is pitched.
*
* @requires textField
*/
textPitchAlignment: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport', 'auto']),
PropTypes.array,
]),
/**
* In combination with `symbolPlacement`, determines the rotation behavior of the individual glyphs forming the text.
*
* @requires textField
*/
textRotationAlignment: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport', 'auto']),
PropTypes.array,
]),
/**
* Value to use for a text label. If a plain `string` is provided, it will be treated as a `formatted` with default/inherited formatting options.
*/
textField: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* Font stack to use for displaying text.
*
* @requires textField
*/
textFont: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.string),
PropTypes.array,
]),
/**
* Font size.
*
* @requires textField
*/
textSize: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The maximum line width for text wrapping.
*
* @requires textField
*/
textMaxWidth: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* Text leading value for multiLine text.
*
* @requires textField
*/
textLineHeight: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* Text tracking amount.
*
* @requires textField
*/
textLetterSpacing: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* Text justification options.
*
* @requires textField
*/
textJustify: PropTypes.oneOfType([
PropTypes.oneOf(['auto', 'left', 'center', 'right']),
PropTypes.array,
]),
/**
* Part of the text placed closest to the anchor.
*
* @requires textField
*/
textAnchor: PropTypes.oneOfType([
PropTypes.oneOf(['center', 'left', 'right', 'top', 'bottom', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),
PropTypes.array,
]),
/**
* Maximum angle change between adjacent characters.
*
* @requires textField
*/
textMaxAngle: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* Rotates the text clockwise.
*
* @requires textField
*/
textRotate: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* Size of the additional area around the text bounding box used for detecting symbol collisions.
*
* @requires textField
*/
textPadding: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* If true, the text may be flipped vertically to prevent it from being rendered upsideDown.
*
* @requires textField
*/
textKeepUpright: PropTypes.oneOfType([
PropTypes.bool,
PropTypes.array,
]),
/**
* Specifies how to capitalize text, similar to the CSS `textTransform` property.
*
* @requires textField
*/
textTransform: PropTypes.oneOfType([
PropTypes.oneOf(['none', 'uppercase', 'lowercase']),
PropTypes.array,
]),
/**
* Offset distance of text from its anchor. Positive values indicate right and down, while negative values indicate left and up.
*
* @requires textField
*
* @disabledBy textRadialOffset
*/
textOffset: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.number),
PropTypes.array,
]),
/**
* If true, the text will be visible even if it collides with other previously drawn symbols.
*
* @requires textField
*/
textAllowOverlap: PropTypes.oneOfType([
PropTypes.bool,
PropTypes.array,
]),
/**
* If true, other symbols can be visible even if they collide with the text.
*
* @requires textField
*/
textIgnorePlacement: PropTypes.oneOfType([
PropTypes.bool,
PropTypes.array,
]),
/**
* If true, icons will display without their corresponding text when the text collides with other symbols and the icon does not.
*
* @requires textField, iconImage
*/
textOptional: PropTypes.oneOfType([
PropTypes.bool,
PropTypes.array,
]),
/**
* Whether this layer is displayed.
*/
visibility: PropTypes.oneOf(['visible', 'none']),
/**
* The opacity at which the icon will be drawn.
*
* @requires iconImage
*/
iconOpacity: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s iconOpacity property.
*/
iconOpacityTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The color of the icon. This can only be used with sdf icons.
*
* @requires iconImage
*/
iconColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s iconColor property.
*/
iconColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The color of the icon's halo. Icon halos can only be used with SDF icons.
*
* @requires iconImage
*/
iconHaloColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s iconHaloColor property.
*/
iconHaloColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Distance of halo to the icon outline.
*
* @requires iconImage
*/
iconHaloWidth: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s iconHaloWidth property.
*/
iconHaloWidthTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Fade out the halo towards the outside.
*
* @requires iconImage
*/
iconHaloBlur: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s iconHaloBlur property.
*/
iconHaloBlurTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Distance that the icon's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.
*
* @requires iconImage
*/
iconTranslate: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.number),
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s iconTranslate property.
*/
iconTranslateTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Controls the frame of reference for `iconTranslate`.
*
* @requires iconImage, iconTranslate
*/
iconTranslateAnchor: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport']),
PropTypes.array,
]),
/**
* The opacity at which the text will be drawn.
*
* @requires textField
*/
textOpacity: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s textOpacity property.
*/
textOpacityTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The color with which the text will be drawn.
*
* @requires textField
*/
textColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s textColor property.
*/
textColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The color of the text's halo, which helps it stand out from backgrounds.
*
* @requires textField
*/
textHaloColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s textHaloColor property.
*/
textHaloColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Distance of halo to the font outline. Max text halo width is 1/4 of the fontSize.
*
* @requires textField
*/
textHaloWidth: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s textHaloWidth property.
*/
textHaloWidthTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The halo's fadeout distance towards the outside.
*
* @requires textField
*/
textHaloBlur: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s textHaloBlur property.
*/
textHaloBlurTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Distance that the text's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.
*
* @requires textField
*/
textTranslate: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.number),
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s textTranslate property.
*/
textTranslateTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Controls the frame of reference for `textTranslate`.
*
* @requires textField, textTranslate
*/
textTranslateAnchor: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport']),
PropTypes.array,
]),
});
export const CircleLayerStyleProp = PropTypes.shape({
/**
* Whether this layer is displayed.
*/
visibility: PropTypes.oneOf(['visible', 'none']),
/**
* Circle radius.
*/
circleRadius: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s circleRadius property.
*/
circleRadiusTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The fill color of the circle.
*/
circleColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s circleColor property.
*/
circleColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Amount to blur the circle. 1 blurs the circle such that only the centerpoint is full opacity.
*/
circleBlur: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s circleBlur property.
*/
circleBlurTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The opacity at which the circle will be drawn.
*/
circleOpacity: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s circleOpacity property.
*/
circleOpacityTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The geometry's offset. Values are [x, y] where negatives indicate left and up, respectively.
*/
circleTranslate: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.number),
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s circleTranslate property.
*/
circleTranslateTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Controls the frame of reference for `circleTranslate`.
*
* @requires circleTranslate
*/
circleTranslateAnchor: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport']),
PropTypes.array,
]),
/**
* Controls the scaling behavior of the circle when the map is pitched.
*/
circlePitchScale: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport']),
PropTypes.array,
]),
/**
* Orientation of circle when map is pitched.
*/
circlePitchAlignment: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport']),
PropTypes.array,
]),
/**
* The width of the circle's stroke. Strokes are placed outside of the `circleRadius`.
*/
circleStrokeWidth: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s circleStrokeWidth property.
*/
circleStrokeWidthTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The stroke color of the circle.
*/
circleStrokeColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s circleStrokeColor property.
*/
circleStrokeColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The opacity of the circle's stroke.
*/
circleStrokeOpacity: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s circleStrokeOpacity property.
*/
circleStrokeOpacityTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
});
export const HeatmapLayerStyleProp = PropTypes.shape({
/**
* Whether this layer is displayed.
*/
visibility: PropTypes.oneOf(['visible', 'none']),
/**
* Radius of influence of one heatmap point in pixels. Increasing the value makes the heatmap smoother, but less detailed.
*/
heatmapRadius: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s heatmapRadius property.
*/
heatmapRadiusTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* A measure of how much an individual point contributes to the heatmap. A value of 10 would be equivalent to having 10 points of weight 1 in the same spot. Especially useful when combined with clustering.
*/
heatmapWeight: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* Similar to `heatmapWeight` but controls the intensity of the heatmap globally. Primarily used for adjusting the heatmap based on zoom level.
*/
heatmapIntensity: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s heatmapIntensity property.
*/
heatmapIntensityTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Defines the color of each pixel based on its density value in a heatmap. Should be an expression that uses `["heatmapDensity"]` as input.
*/
heatmapColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The global opacity at which the heatmap layer will be drawn.
*/
heatmapOpacity: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s heatmapOpacity property.
*/
heatmapOpacityTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
});
export const FillExtrusionLayerStyleProp = PropTypes.shape({
/**
* Whether this layer is displayed.
*/
visibility: PropTypes.oneOf(['visible', 'none']),
/**
* The opacity of the entire fill extrusion layer. This is rendered on a perLayer, not perFeature, basis, and dataDriven styling is not available.
*/
fillExtrusionOpacity: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s fillExtrusionOpacity property.
*/
fillExtrusionOpacityTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The base color of the extruded fill. The extrusion's surfaces will be shaded differently based on this color in combination with the root `light` settings. If this color is specified as `rgba` with an alpha component, the alpha component will be ignored; use `fillExtrusionOpacity` to set layer opacity.
*
* @disabledBy fillExtrusionPattern
*/
fillExtrusionColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s fillExtrusionColor property.
*/
fillExtrusionColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The geometry's offset. Values are [x, y] where negatives indicate left and up (on the flat plane), respectively.
*/
fillExtrusionTranslate: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.number),
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s fillExtrusionTranslate property.
*/
fillExtrusionTranslateTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Controls the frame of reference for `fillExtrusionTranslate`.
*
* @requires fillExtrusionTranslate
*/
fillExtrusionTranslateAnchor: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport']),
PropTypes.array,
]),
/**
* Name of image in sprite to use for drawing images on extruded fills. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoomDependent expressions will be evaluated only at integer zoom levels.
*/
fillExtrusionPattern: PropTypes.oneOfType([
PropTypes.number,
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s fillExtrusionPattern property.
*/
fillExtrusionPatternTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The height with which to extrude this layer.
*/
fillExtrusionHeight: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s fillExtrusionHeight property.
*/
fillExtrusionHeightTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The height with which to extrude the base of this layer. Must be less than or equal to `fillExtrusionHeight`.
*
* @requires fillExtrusionHeight
*/
fillExtrusionBase: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s fillExtrusionBase property.
*/
fillExtrusionBaseTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
});
export const RasterLayerStyleProp = PropTypes.shape({
/**
* Whether this layer is displayed.
*/
visibility: PropTypes.oneOf(['visible', 'none']),
/**
* The opacity at which the image will be drawn.
*/
rasterOpacity: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s rasterOpacity property.
*/
rasterOpacityTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Rotates hues around the color wheel.
*/
rasterHueRotate: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s rasterHueRotate property.
*/
rasterHueRotateTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Increase or reduce the brightness of the image. The value is the minimum brightness.
*/
rasterBrightnessMin: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s rasterBrightnessMin property.
*/
rasterBrightnessMinTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Increase or reduce the brightness of the image. The value is the maximum brightness.
*/
rasterBrightnessMax: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s rasterBrightnessMax property.
*/
rasterBrightnessMaxTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Increase or reduce the saturation of the image.
*/
rasterSaturation: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s rasterSaturation property.
*/
rasterSaturationTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Increase or reduce the contrast of the image.
*/
rasterContrast: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s rasterContrast property.
*/
rasterContrastTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The resampling/interpolation method to use for overscaling, also known as texture magnification filter
*/
rasterResampling: PropTypes.oneOfType([
PropTypes.oneOf(['linear', 'nearest']),
PropTypes.array,
]),
/**
* Fade duration when a new tile is added.
*/
rasterFadeDuration: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
});
export const HillshadeLayerStyleProp = PropTypes.shape({
/**
* Whether this layer is displayed.
*/
visibility: PropTypes.oneOf(['visible', 'none']),
/**
* The direction of the light source used to generate the hillshading with 0 as the top of the viewport if `hillshadeIlluminationAnchor` is set to `viewport` and due north if `hillshadeIlluminationAnchor` is set to `map`.
*/
hillshadeIlluminationDirection: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* Direction of light source when map is rotated.
*/
hillshadeIlluminationAnchor: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport']),
PropTypes.array,
]),
/**
* Intensity of the hillshade
*/
hillshadeExaggeration: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s hillshadeExaggeration property.
*/
hillshadeExaggerationTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The shading color of areas that face away from the light source.
*/
hillshadeShadowColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s hillshadeShadowColor property.
*/
hillshadeShadowColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The shading color of areas that faces towards the light source.
*/
hillshadeHighlightColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s hillshadeHighlightColor property.
*/
hillshadeHighlightColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The shading color used to accentuate rugged terrain like sharp cliffs and gorges.
*/
hillshadeAccentColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s hillshadeAccentColor property.
*/
hillshadeAccentColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
});
export const BackgroundLayerStyleProp = PropTypes.shape({
/**
* Whether this layer is displayed.
*/
visibility: PropTypes.oneOf(['visible', 'none']),
/**
* The color with which the background will be drawn.
*
* @disabledBy backgroundPattern
*/
backgroundColor: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s backgroundColor property.
*/
backgroundColorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Name of image in sprite to use for drawing an image background. For seamless patterns, image width and height must be a factor of two (2, 4, 8, ..., 512). Note that zoomDependent expressions will be evaluated only at integer zoom levels.
*/
backgroundPattern: PropTypes.oneOfType([
PropTypes.number,
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s backgroundPattern property.
*/
backgroundPatternTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* The opacity at which the background will be drawn.
*/
backgroundOpacity: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s backgroundOpacity property.
*/
backgroundOpacityTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
});
export const LightLayerStyleProp = PropTypes.shape({
/**
* Whether extruded geometries are lit relative to the map or viewport.
*/
anchor: PropTypes.oneOfType([
PropTypes.oneOf(['map', 'viewport']),
PropTypes.array,
]),
/**
* Position of the light source relative to lit (extruded) geometries, in [r radial coordinate, a azimuthal angle, p polar angle] where r indicates the distance from the center of the base of an object to its light, a indicates the position of the light relative to 0° (0° when `light.anchor` is set to `viewport` corresponds to the top of the viewport, or 0° when `light.anchor` is set to `map` corresponds to due north, and degrees proceed clockwise), and p indicates the height of the light (from 0°, directly above, to 180°, directly below).
*/
position: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.number),
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s position property.
*/
positionTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Color tint for lighting extruded geometries.
*/
color: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s color property.
*/
colorTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
/**
* Intensity of lighting (on a scale from 0 to 1). Higher numbers will present as more extreme contrast.
*/
intensity: PropTypes.oneOfType([
PropTypes.number,
PropTypes.array,
]),
/**
* The transition affecting any changes to this layer’s intensity property.
*/
intensityTransition: PropTypes.shape({
duration: PropTypes.number,
delay: PropTypes.number,
}),
});
const styleMap = {
fillAntialias: StyleTypes.Constant,
fillOpacity: StyleTypes.Constant,
fillOpacityTransition: StyleTypes.Transition,
fillColor: StyleTypes.Color,
fillColorTransition: StyleTypes.Transition,
fillOutlineColor: StyleTypes.Color,
fillOutlineColorTransition: StyleTypes.Transition,
fillTranslate: StyleTypes.Translation,
fillTranslateTransition: StyleTypes.Transition,
fillTranslateAnchor: StyleTypes.Enum,
fillPattern: StyleTypes.Image,
fillPatternTransition: StyleTypes.Transition,
lineCap: StyleTypes.Enum,
lineJoin: StyleTypes.Enum,
lineMiterLimit: StyleTypes.Constant,
lineRoundLimit: StyleTypes.Constant,
lineOpacity: StyleTypes.Constant,
lineOpacityTransition: StyleTypes.Transition,
lineColor: StyleTypes.Color,
lineColorTransition: StyleTypes.Transition,
lineTranslate: StyleTypes.Translation,
lineTranslateTransition: StyleTypes.Transition,
lineTranslateAnchor: StyleTypes.Enum,
lineWidth: StyleTypes.Constant,
lineWidthTransition: StyleTypes.Transition,
lineGapWidth: StyleTypes.Constant,
lineGapWidthTransition: StyleTypes.Transition,
lineOffset: StyleTypes.Constant,
lineOffsetTransition: StyleTypes.Transition,
lineBlur: StyleTypes.Constant,
lineBlurTransition: StyleTypes.Transition,
lineDasharray: StyleTypes.Constant,
lineDasharrayTransition: StyleTypes.Transition,
linePattern: StyleTypes.Image,
linePatternTransition: StyleTypes.Transition,
lineGradient: StyleTypes.Color,
symbolPlacement: StyleTypes.Enum,
symbolSpacing: StyleTypes.Constant,
symbolAvoidEdges: StyleTypes.Constant,
symbolZOrder: StyleTypes.Enum,
iconAllowOverlap: StyleTypes.Constant,
iconIgnorePlacement: StyleTypes.Constant,
iconOptional: StyleTypes.Constant,
iconRotationAlignment: StyleTypes.Enum,
iconSize: StyleTypes.Constant,
iconTextFit: StyleTypes.Enum,
iconTextFitPadding: StyleTypes.Constant,
iconImage: StyleTypes.Image,
iconRotate: StyleTypes.Constant,
iconPadding: StyleTypes.Constant,
iconKeepUpright: StyleTypes.Constant,
iconOffset: StyleTypes.Constant,
iconAnchor: StyleTypes.Enum,
iconPitchAlignment: StyleTypes.Enum,
textPitchAlignment: StyleTypes.Enum,
textRotationAlignment: StyleTypes.Enum,
textField: StyleTypes.Constant,
textFont: StyleTypes.Constant,
textSize: StyleTypes.Constant,
textMaxWidth: StyleTypes.Constant,
textLineHeight: StyleTypes.Constant,
textLetterSpacing: StyleTypes.Constant,
textJustify: StyleTypes.Enum,
textAnchor: StyleTypes.Enum,
textMaxAngle: StyleTypes.Constant,
textRotate: StyleTypes.Constant,
textPadding: StyleTypes.Constant,
textKeepUpright: StyleTypes.Constant,
textTransform: StyleTypes.Enum,
textOffset: StyleTypes.Constant,
textAllowOverlap: StyleTypes.Constant,
textIgnorePlacement: StyleTypes.Constant,
textOptional: StyleTypes.Constant,
iconOpacity: StyleTypes.Constant,
iconOpacityTransition: StyleTypes.Transition,
iconColor: StyleTypes.Color,
iconColorTransition: StyleTypes.Transition,
iconHaloColor: StyleTypes.Color,
iconHaloColorTransition: StyleTypes.Transition,
iconHaloWidth: StyleTypes.Constant,
iconHaloWidthTransition: StyleTypes.Transition,
iconHaloBlur: StyleTypes.Constant,
iconHaloBlurTransition: StyleTypes.Transition,
iconTranslate: StyleTypes.Translation,
iconTranslateTransition: StyleTypes.Transition,
iconTranslateAnchor: StyleTypes.Enum,
textOpacity: StyleTypes.Constant,
textOpacityTransition: StyleTypes.Transition,
textColor: StyleTypes.Color,
textColorTransition: StyleTypes.Transition,
textHaloColor: StyleTypes.Color,
textHaloColorTransition: StyleTypes.Transition,
textHaloWidth: StyleTypes.Constant,
textHaloWidthTransition: StyleTypes.Transition,
textHaloBlur: StyleTypes.Constant,
textHaloBlurTransition: StyleTypes.Transition,
textTranslate: StyleTypes.Translation,
textTranslateTransition: StyleTypes.Transition,
textTranslateAnchor: StyleTypes.Enum,
circleRadius: StyleTypes.Constant,
circleRadiusTransition: StyleTypes.Transition,
circleColor: StyleTypes.Color,
circleColorTransition: StyleTypes.Transition,
circleBlur: StyleTypes.Constant,
circleBlurTransition: StyleTypes.Transition,
circleOpacity: StyleTypes.Constant,
circleOpacityTransition: StyleTypes.Transition,
circleTranslate: StyleTypes.Translation,
circleTranslateTransition: StyleTypes.Transition,
circleTranslateAnchor: StyleTypes.Enum,
circlePitchScale: StyleTypes.Enum,
circlePitchAlignment: StyleTypes.Enum,
circleStrokeWidth: StyleTypes.Constant,
circleStrokeWidthTransition: StyleTypes.Transition,
circleStrokeColor: StyleTypes.Color,
circleStrokeColorTransition: StyleTypes.Transition,
circleStrokeOpacity: StyleTypes.Constant,
circleStrokeOpacityTransition: StyleTypes.Transition,
heatmapRadius: StyleTypes.Constant,
heatmapRadiusTransition: StyleTypes.Transition,
heatmapWeight: StyleTypes.Constant,
heatmapIntensity: StyleTypes.Constant,
heatmapIntensityTransition: StyleTypes.Transition,
heatmapColor: StyleTypes.Color,
heatmapOpacity: StyleTypes.Constant,
heatmapOpacityTransition: StyleTypes.Transition,
fillExtrusionOpacity: StyleTypes.Constant,
fillExtrusionOpacityTransition: StyleTypes.Transition,
fillExtrusionColor: StyleTypes.Color,
fillExtrusionColorTransition: StyleTypes.Transition,
fillExtrusionTranslate: StyleTypes.Translation,
fillExtrusionTranslateTransition: StyleTypes.Transition,
fillExtrusionTranslateAnchor: StyleTypes.Enum,
fillExtrusionPattern: StyleTypes.Image,
fillExtrusionPatternTransition: StyleTypes.Transition,
fillExtrusionHeight: StyleTypes.Constant,
fillExtrusionHeightTransition: StyleTypes.Transition,
fillExtrusionBase: StyleTypes.Constant,
fillExtrusionBaseTransition: StyleTypes.Transition,
rasterOpacity: StyleTypes.Constant,
rasterOpacityTransition: StyleTypes.Transition,
rasterHueRotate: StyleTypes.Constant,
rasterHueRotateTransition: StyleTypes.Transition,
rasterBrightnessMin: StyleTypes.Constant,
rasterBrightnessMinTransition: StyleTypes.Transition,
rasterBrightnessMax: StyleTypes.Constant,
rasterBrightnessMaxTransition: StyleTypes.Transition,
rasterSaturation: StyleTypes.Constant,
rasterSaturationTransition: StyleTypes.Transition,
rasterContrast: StyleTypes.Constant,
rasterContrastTransition: StyleTypes.Transition,
rasterResampling: StyleTypes.Enum,
rasterFadeDuration: StyleTypes.Constant,
hillshadeIlluminationDirection: StyleTypes.Constant,
hillshadeIlluminationAnchor: StyleTypes.Enum,
hillshadeExaggeration: StyleTypes.Constant,
hillshadeExaggerationTransition: StyleTypes.Transition,
hillshadeShadowColor: StyleTypes.Color,
hillshadeShadowColorTransition: StyleTypes.Transition,
hillshadeHighlightColor: StyleTypes.Color,
hillshadeHighlightColorTransition: StyleTypes.Transition,
hillshadeAccentColor: StyleTypes.Color,
hillshadeAccentColorTransition: StyleTypes.Transition,
backgroundColor: StyleTypes.Color,
backgroundColorTransition: StyleTypes.Transition,
backgroundPattern: StyleTypes.Image,
backgroundPatternTransition: StyleTypes.Transition,
backgroundOpacity: StyleTypes.Constant,
backgroundOpacityTransition: StyleTypes.Transition,
anchor: StyleTypes.Enum,
position: StyleTypes.Constant,
positionTransition: StyleTypes.Transition,
color: StyleTypes.Color,
colorTransition: StyleTypes.Transition,
intensity: StyleTypes.Constant,
intensityTransition: StyleTypes.Transition,
visibility: StyleTypes.Constant,
};
export const styleExtras = {
// padding
iconTextFitPadding: {
iosType: 'edgeinsets',
},
// offsets
iconOffset: {
iosType: 'vector',
},
textOffset: {
iosType: 'vector',
},
lineOffset: {
iosType: 'vector',
},
// translates
fillTranslate: {
iosType: 'vector',
},
lineTranslate: {
iosType: 'vector',
},
iconTranslate: {
iosType: 'vector',
},
textTranslate: {
iosType: 'vector',
},
circleTranslate: {
iosType: 'vector',
},
fillExtrusionTranslate: {
iosType: 'vector',
},
};
export default styleMap;