react-native-maps
Version:
React Native Mapview component for iOS + Android
95 lines (83 loc) • 2.49 kB
text/typescript
import type {HostComponent, ViewProps, ColorValue} from 'react-native';
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
import {
Double,
BubblingEventHandler,
} from 'react-native/Libraries/Types/CodegenTypes';
export type LatLng = Readonly<{
latitude: Double; // Non-nullable Double for latitude
longitude: Double; // Non-nullable Double for longitude
}>;
export type PolygonPressEventHandler = BubblingEventHandler<
Readonly<{
action?: string;
id: string;
coordinate: {
latitude: Double; // Inlined LatLng
longitude: Double;
};
position?: {
x: Double; // Inlined Point
y: Double;
}; // Optional position for Android
}>
>;
export interface PolygonFabricNativeProps extends ViewProps {
/**
* An array of coordinates to describe the polygon
*
* @platform iOS: Supported
* @platform Android: Supported
*/
coordinates: ReadonlyArray<LatLng>;
/**
* The fill color to use for the path.
*
* @default `#000`, `rgba(r,g,b,0.5)`
* @platform iOS: Supported
* @platform Android: Supported
*/
fillColor?: ColorValue;
/**
* The stroke color to use for the path.
*
* @default `#000`, `rgba(r,g,b,0.5)`
* @platform iOS: Supported
* @platform Android: Supported
*/
strokeColor?: ColorValue;
/**
* Boolean to indicate whether to draw each segment of the line as a geodesic as opposed to straight lines on the Mercator projection.
* A geodesic is the shortest path between two points on the Earth's surface.
* The geodesic curve is constructed assuming the Earth is a sphere.
*
* @platform iOS: Google Maps only
* @platform Android: Supported
*/
geodesic?: boolean;
/**
* A 2d array of coordinates to describe holes of the polygon where each hole has at least 3 points.
*
* @platform iOS: Supported
* @platform Android: Supported
*/
holes?: ReadonlyArray<ReadonlyArray<LatLng>>;
/**
* Boolean to allow a polygon to be tappable and use the onPress function.
*
* @platform iOS: Google Maps only
* @platform Android: Supported
*/
tappable?: boolean;
/**
* Callback that is called when user taps on the map.
*
* @platform iOS: Supported
* @platform Android: Supported
*/
onPress?: PolygonPressEventHandler;
}
export default codegenNativeComponent<PolygonFabricNativeProps>(
'RNMapsGooglePolygon',
{},
) as HostComponent<PolygonFabricNativeProps>;