import { AMapSdk } from "react-native-amap3d"; import { PermissionsAndroid } from "react-native"; import { useCallback, useEffect } from "react"; import { init, Geolocation, Coordinates } from "react-native-amap-geolocation"; const androidKey = "20071bdcf9a2031ccee484febd627d2e"; export const useAmap = () => { useEffect(() => { AMapSdk.setApiKey(androidKey); }, []); }; export const useAmapGeoLocation = () => { const initSDK = useCallback(async () => { await PermissionsAndroid.requestMultiple([ PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION, PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION, ]); await init({ ios: "", android: androidKey, }); }, []); useEffect(() => { initSDK(); }, [initSDK]); return useCallback( () => new Promise((resolve) => { Geolocation.getCurrentPosition(({ coords }) => { resolve(coords); }); }), [] ); };