@goongmaps/goong-map-react-native
Version:
A Goong GL react native module for creating custom maps
113 lines (95 loc) • 3.88 kB
JavaScript
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;