Saltar al contenido

flutter google maps obtener ejemplo de código de ubicación actual

Hacemos una verificación exhaustiva cada post de nuestro espacio con el objetivo de mostrarte siempre la información con la mayor veracidad y certera.

Ejemplo: mostrar la ubicación actual en los mapas de Google en flutter

import 'package:flutter/cupertino.dart';
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';

class Map extends StatefulWidget 
  @override
  _MapState createState() => _MapState();


class _MapState extends State<Map> 
  Completer<GoogleMapController> controller1;

  //static LatLng _center = LatLng(-15.4630239974464, 28.363397732282127);
  static LatLng _initialPosition;
  final Set<Marker> _markers = ;
  static  LatLng _lastMapPosition = _initialPosition;

  @override
  void initState() 
    super.initState();
    _getUserLocation();
  
  void _getUserLocation() async 
    Position position = await Geolocator().getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
    List<Placemark> placemark = await Geolocator().placemarkFromCoordinates(position.latitude, position.longitude);
    setState(() 
      _initialPosition = LatLng(position.latitude, position.longitude);
      print('$placemark[0].name');
    );
  


  _onMapCreated(GoogleMapController controller) 
    setState(() 
      controller1.complete(controller);
    );
  

  MapType _currentMapType = MapType.normal;

  void _onMapTypeButtonPressed() 
    setState(() 
      _currentMapType = _currentMapType == MapType.normal
          ? MapType.satellite
          : MapType.normal;
    );
  

  _onCameraMove(CameraPosition position) 
    _lastMapPosition = position.target;
  

  _onAddMarkerButtonPressed() 
    setState(() 
      _markers.add(
          Marker(
              markerId: MarkerId(_lastMapPosition.toString()),
              position: _lastMapPosition,
              infoWindow: InfoWindow(
                  title: "Pizza Parlour",
                  snippet: "This is a snippet",
                  onTap: ()
                  
              ),
              onTap: ()
              ,

              icon: BitmapDescriptor.defaultMarker));
    );
  
  Widget mapButton(Function function, Icon icon, Color color) 
    return RawMaterialButton(
      onPressed: function,
      child: icon,
      shape: new CircleBorder(),
      elevation: 2.0,
      fillColor: color,
      padding: const EdgeInsets.all(7.0),
    );
  
  @override
  Widget build(BuildContext context) 
    return Scaffold(
      body: _initialPosition == null ? Container(child: Center(child:Text('loading map..', style: TextStyle(fontFamily: 'Avenir-Medium', color: Colors.grey[400]),),),) : Container(
        child: Stack(children: <Widget>[
          GoogleMap(
            markers: _markers,

            mapType: _currentMapType,
            initialCameraPosition: CameraPosition(
              target: _initialPosition,
              zoom: 14.4746,
            ),
            onMapCreated: _onMapCreated,
            zoomGesturesEnabled: true,
            onCameraMove: _onCameraMove,
            myLocationEnabled: true,
            compassEnabled: true,
            myLocationButtonEnabled: false,

          ),
          Align(
            alignment: Alignment.topRight,
            child: Container(
                margin: EdgeInsets.fromLTRB(0.0, 50.0, 0.0, 0.0),
                child: Column(
                  children: <Widget>[
                    mapButton(_onAddMarkerButtonPressed,
                        Icon(
                            Icons.add_location
                        ), Colors.blue),
                    mapButton(
                        _onMapTypeButtonPressed,
                        Icon(
                          IconData(0xf473,
                              fontFamily: CupertinoIcons.iconFont,
                              fontPackage: CupertinoIcons.iconFontPackage),
                        ),
                        Colors.green),
                  ],
                )),
          )
        ]),
      ),
    );
  

Eres capaz de respaldar nuestro trabajo dejando un comentario y dejando una valoración te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *