代码之家  ›  专栏  ›  技术社区  ›  LostTexan

谷歌地图在flutter应用程序中显示错误的当前位置

  •  1
  • LostTexan  · 技术社区  · 1 年前

    我已经将谷歌地图添加到我的flutter应用程序中,并试图将其初始化为我当前的位置。当我打开地图页面时,当前位置在加利福尼亚州的Mountainview,但我住在佛罗里达州。

    为什么会发生这种情况?

    以下是我正在使用的代码,它适用于当前位置以外的位置:

    import 'dart:async';
    import 'package:google_maps_flutter/google_maps_flutter.dart';
    import 'package:geolocator/geolocator.dart';
    import 'package:flutter/material.dart';
    
    class MapPropertySearchResults extends StatefulWidget {
      const MapPropertySearchResults({super.key});
    
      @override
      State<MapPropertySearchResults> createState() =>
          _MapPropertySearchResultsState();
    }
    
    class _MapPropertySearchResultsState extends State<MapPropertySearchResults> {
        late GoogleMapController mapController;
    
      late LatLng _currentPosition;
      bool _isLoading = true;
    
      @override
      void initState() {
        super.initState();
        getLocation();
      }
    
      getLocation() async {
        LocationPermission permission;
        permission = await Geolocator.requestPermission();
    
        Position position = await Geolocator.getCurrentPosition(
            desiredAccuracy: LocationAccuracy.high);
        double lat = position.latitude;
        double long = position.longitude;
    
        LatLng location = LatLng(lat, long);
    
        setState(() {
          _currentPosition = location;
          _isLoading = false;
        });
      }
    
      void _onMapCreated(GoogleMapController controller) {
        mapController = controller;
      }
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(
            title: const Text('Map'),
          ),
          body: _isLoading ? 
          const Center(child:CircularProgressIndicator()) : 
          GoogleMap(
            onMapCreated: _onMapCreated,
            initialCameraPosition: CameraPosition(
              target: _currentPosition,
              zoom: 16.0,
            ),
          ),
        );
      }
    }
    

    可能是我电脑上的设置吗? 谢谢

    1 回复  |  直到 1 年前
        1
  •  1
  •   Mouhib SAHBANI    1 年前

    你使用安卓模拟器吗?如果你这样做,这是标准做法,因为它复制了谷歌的总部位置

    或者,在iOS上,iOS模拟器的默认位置为“美国旧金山斯托克顿街1号,94108”