Saltar al contenido

Flutter: obtenga la dirección de geocodificación a partir de las coordenadas

Solución:

Actualizar:
Usar codificación geográfica

import 'package:geocoding/geocoding.dart';

List<Placemark> placemarks = await placemarkFromCoordinates(52.2165157, 6.9437819);

Solución antigua:

Ya estás allí, las cosas adicionales que necesitas son:

String _address = ""; // create this variable

void _getPlace() async {
  List<Placemark> newPlace = await _geolocator.placemarkFromCoordinates(_position.latitude, _position.longitude);

  // this is all you need
  Placemark placeMark  = newPlace[0]; 
  String name = placeMark.name;
  String subLocality = placeMark.subLocality;
  String locality = placeMark.locality;
  String administrativeArea = placeMark.administrativeArea;
  String postalCode = placeMark.postalCode;
  String country = placeMark.country;
  String address = "${name}, ${subLocality}, ${locality}, ${administrativeArea} ${postalCode}, ${country}";
  
  print(address);

  setState(() {
    _address = address; // update _address
  });
}

La marca de posición se eliminó del geolocalizador a partir de la versión 6.0.0 y se movió a la codificación geográfica.

A partir de la versión 6.0.0, las funciones de codificación geográfica (placemarkFromAddress y placemarkFromCoordinates) ya no forman parte del complemento de geolocalizador. Hemos trasladado estas funciones a su propio complemento: geocodificación. Este nuevo complemento es una versión mejorada de los métodos antiguos.

Para traducir la latitud y la longitud a una dirección con el uso de codificación geográfica

List<Placemark> placemarks = await placemarkFromCoordinates(52.2165157, 6.9437819);

primero, ha incluido lib -geolocator: ^ 3.0.1 en pubspec.yaml

///Get current location
  Geolocator _geolocator = Geolocator();
  String latitude = "";
  String longitude = "";
  String address = "";

Prueba esta solución:

///Call this function
 _fetchLocation() async {
    Position position = await _geolocator.getCurrentPosition(
        desiredAccuracy: LocationAccuracy.best);///Here you have choose level of distance
    latitude = position.latitude.toString() ?? '';
    longitude = position.longitude.toString() ?? '';
    var placemarks = await _geolocator.placemarkFromCoordinates(position.latitude, position.longitude);
    address="${placemarks.first.name.isNotEmpty ? placemarks.first.name + ", ' : ''}${placemarks.first.thoroughfare.isNotEmpty ? placemarks.first.thoroughfare + ', ' : ''}${placemarks.first.subLocality.isNotEmpty ? placemarks.first.subLocality+ ', ' : ''}${placemarks.first.locality.isNotEmpty ? placemarks.first.locality+ ', ' : ''}${placemarks.first.subAdministrativeArea.isNotEmpty ? placemarks.first.subAdministrativeArea + ', ' : ''}${placemarks.first.postalCode.isNotEmpty ? placemarks.first.postalCode + ', ' : ''}${placemarks.first.administrativeArea.isNotEmpty ? placemarks.first.administrativeArea : ''}';
    print("latitude"+latitude);
    print("longitude"+longitude);
    print("adreess"+address);
  }
¡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 *