Files

84 lines
2.6 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import React from 'react';
import PropTypes from 'prop-types';
import { NativeModules, requireNativeComponent } from 'react-native';
import { cloneReactChildrenWithProps } from '../utils';
const MapboxGL = NativeModules.MGLModule;
export const NATIVE_MODULE_NAME = 'RCTMGLRasterSource';
const RCTMGLRasterSource = requireNativeComponent(NATIVE_MODULE_NAME, RasterSource);
/**
* RasterSource is a map content source that supplies raster image tiles to be shown on the map.
* The location of and metadata about the tiles are defined either by an option dictionary
* or by an external file that conforms to the TileJSON specification.
*/
class RasterSource extends React.Component {
static propTypes = {
/**
* A string that uniquely identifies the source.
*/
id: PropTypes.string,
/**
* A URL to a TileJSON configuration file describing the sources contents and other metadata.
*/
url: PropTypes.string,
/**
* An unsigned integer that specifies the minimum zoom level at which to display tiles from the source.
* The value should be between 0 and 22, inclusive, and less than
* maxZoomLevel, if specified. The default value for this option is 0.
*/
minZoomLevel: PropTypes.number,
/**
* An unsigned integer that specifies the maximum zoom level at which to display tiles from the source.
* The value should be between 0 and 22, inclusive, and less than
* minZoomLevel, if specified. The default value for this option is 22.
*/
maxZoomLevel: PropTypes.number,
/**
* Size of the map tiles.
* Mapbox urls default to 256, all others default to 512.
*/
tileSize: PropTypes.number,
/**
* Influences the y direction of the tile coordinates. (tms inverts y axis)
*/
tms: PropTypes.bool,
/**
* An HTML or literal text string defining the buttons to be displayed in an action sheet when the
* source is part of a map views style and the map views attribution button is pressed.
*/
attribution: PropTypes.string,
};
static defaultProps = {
id: MapboxGL.StyleSource.DefaultSourceID,
};
render () {
const props = {
id: this.props.id,
url: this.props.url,
minZoomLevel: this.props.minZoomLevel,
maxZoomLevel: this.props.maxZoomLevel,
tileSize: this.props.tileSize,
tms: this.props.tms,
attribution: this.props.attribution,
};
return (
<RCTMGLRasterSource {...props}>
{cloneReactChildrenWithProps(this.props.children, { sourceID: this.props.id })}
</RCTMGLRasterSource>
);
}
}
export default RasterSource;