UNPKG

@goongmaps/goong-map-react-native

Version:

A Goong GL react native module for creating custom maps

113 lines (95 loc) 3.88 kB
import {Animated, NativeModules, PermissionsAndroid} from 'react-native'; import {isAndroid} from './utils'; import * as geoUtils from './utils/geoUtils'; import MapView from './components/MapView'; import Light from './components/Light'; import PointAnnotation from './components/PointAnnotation'; import Annotation from './components/annotations/Annotation'; // eslint-disable-line import/no-cycle import Callout from './components/Callout'; import UserLocation from './components/UserLocation'; // eslint-disable-line import/no-cycle import Camera from './components/Camera'; import VectorSource from './components/VectorSource'; import ShapeSource from './components/ShapeSource'; import RasterSource from './components/RasterSource'; import ImageSource from './components/ImageSource'; import Images from './components/Images'; import FillLayer from './components/FillLayer'; import FillExtrusionLayer from './components/FillExtrusionLayer'; import HeatmapLayer from './components/HeatmapLayer'; import LineLayer from './components/LineLayer'; import CircleLayer from './components/CircleLayer'; import SymbolLayer from './components/SymbolLayer'; import RasterLayer from './components/RasterLayer'; import BackgroundLayer from './components/BackgroundLayer'; import locationManager from './modules/location/locationManager'; import offlineManager from './modules/offline/offlineManager'; import snapshotManager from './modules/snapshot/snapshotManager'; import AnimatedMapPoint from './utils/AnimatedPoint'; const GoongSDK = {...NativeModules.MGLModule}; // static methods GoongSDK.requestAndroidLocationPermissions = async function() { if (isAndroid()) { const res = await PermissionsAndroid.requestMultiple([ PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION, PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION, ]); if (!res) { return false; } const permissions = Object.keys(res); for (const permission of permissions) { if (res[permission] === PermissionsAndroid.RESULTS.GRANTED) { return true; } } return false; } throw new Error('You should only call this method on Android!'); }; GoongSDK.UserTrackingModes = Camera.UserTrackingModes; // components GoongSDK.MapView = MapView; GoongSDK.Light = Light; GoongSDK.PointAnnotation = PointAnnotation; GoongSDK.Callout = Callout; GoongSDK.UserLocation = UserLocation; GoongSDK.Camera = Camera; // annotations GoongSDK.Annotation = Annotation; // sources GoongSDK.VectorSource = VectorSource; GoongSDK.ShapeSource = ShapeSource; GoongSDK.RasterSource = RasterSource; GoongSDK.ImageSource = ImageSource; GoongSDK.Images = Images; // layers GoongSDK.FillLayer = FillLayer; GoongSDK.FillExtrusionLayer = FillExtrusionLayer; GoongSDK.HeatmapLayer = HeatmapLayer; GoongSDK.LineLayer = LineLayer; GoongSDK.CircleLayer = CircleLayer; GoongSDK.SymbolLayer = SymbolLayer; GoongSDK.RasterLayer = RasterLayer; GoongSDK.BackgroundLayer = BackgroundLayer; // modules GoongSDK.locationManager = locationManager; GoongSDK.offlineManager = offlineManager; GoongSDK.snapshotManager = snapshotManager; // utils GoongSDK.geoUtils = geoUtils; GoongSDK.AnimatedPoint = AnimatedMapPoint; // animated GoongSDK.Animated = { // sources ShapeSource: Animated.createAnimatedComponent(ShapeSource), ImageSource: Animated.createAnimatedComponent(ImageSource), // layers FillLayer: Animated.createAnimatedComponent(FillLayer), FillExtrusionLayer: Animated.createAnimatedComponent(FillExtrusionLayer), LineLayer: Animated.createAnimatedComponent(LineLayer), CircleLayer: Animated.createAnimatedComponent(CircleLayer), SymbolLayer: Animated.createAnimatedComponent(SymbolLayer), RasterLayer: Animated.createAnimatedComponent(RasterLayer), BackgroundLayer: Animated.createAnimatedComponent(BackgroundLayer), }; export default GoongSDK;