Центрируйте положение камеры вокруг маркеров Google Maps с помощью флаттера - PullRequest
0 голосов
/ 25 мая 2019

Я использую google_maps_flutter: ^0.5.13 для разработки базового экрана «Флаттер» с несколькими маркерами на карте Google.

Мне любопытно, как другие устанавливают initialCameraPostion для класса GoogleMap(). Я либо

  1. Первоначально установить статическое значение
  2. В функции getMapMarkers() я вызову setMarkers(List<dynamic> markers) (который берет список маркеров или объектов), возьму один из GeoPoint из списка маркеров и использую его для установки initialCameraPosition.

     class MapScreenState extends State<MapScreen> {
    
      GoogleMapController _mapController;
    
      // Method #1
      static CameraPosition _initialCameraPosition =
          CameraPosition(target: const LatLng(26.357540, -81.785290), zoom: 12);
    
      void _onMapCreated(GoogleMapController controller) {
        _mapController = controller;
        _getMapMarkers();
      }
    
      @override
      Widget build(BuildContext context) {
        return Stack(children: <Widget>[_googleMap(context)]);
      }
    
      Widget _googleMap(BuildContext context) {
        return Column(children: <Widget>[
          Expanded(
            child: Container(
              height: MediaQuery.of(context).size.height,
              width: MediaQuery.of(context).size.width,
              child: GoogleMap(
                initialCameraPosition: _initialCameraPosition,
                onMapCreated: _onMapCreated,
                mapType: MapType.normal,
                markers: Set<Marker>.of(markers.values),
              ),
            ),
          )
        ]);
      }
    }
    
    // Method #2
    void _setCenter(List<dynamic> markers) {
      GeoPoint geo = markers[0].geocode;
      setState(() {
        _initialCameraPosition =
            CameraPosition(target: LatLng(geo.latitude, geo.longitude), zoom: 12);
      });
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...