Cómo convertir LatLng a la dirección de Flutter (tanto para iOS y Android de la versión)

0

Pregunta

Estoy creando una aplicación con Flutter que utiliza la geocodificación plugin para convertir LatLng posición de dirección.

Aquí mi código:

import 'package:geocoding/geocoding.dart';

class HomePage extends StatefulWidget {
  const HomePage({Key? key}) : super(key: key);

  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  @override
  late String location = "location name";

  Future<String> getAddress() async {
    List<Placemark> placemarks = await placemarkFromCoordinates(
        45.478981,9.207120,
        localeIdentifier: 'it_It');
    return placemarks[0].name.toString();
  }

  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(title: Text("Convert LatLng to Address")),
        body: Center(
          child: Stack(children: [
            Column(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              children: [
                Text(location),
                ElevatedButton(
                  onPressed: () {
                    getAddress().then((value) => {
                          setState(() {
                            location = value;
                          }),
                          print(value)
                        });
                  },
                  child: const Text('Convert LatLng'),
                ),
              ],
            ),
          ]),
        ));
  }
}

El resultado de la conversión es la diferencia entre el iOS y la versión de Android, por ejemplo:

LatLng = 45.478981,9.207120

la versión de iOS resultado: "a Través de Alessandro Tadino 21"

Versión de Android resultado: "46"

No entiendo por qué es diferente, debo usar otro plugin? Tal vez el plugin utiliza dos tecnologías diferentes para iOS y Android. Hace uso de Android en una especie de Google Maps plugin?

dart flutter geocoder geocoding
2021-11-19 15:26:47
1

Mejor respuesta

1

Lo que usted necesita es geocodificación inversa

Geocodificación inversa es el proceso de convertir coordenadas geográficas en un formato legible dirección.

Ya que se necesita exactamente el mismo salidas tanto en android y dispositivos iOS, te sugiero que utilice Google API de Geocodificación

A continuación, puede utilizar la clave de la API con google_geocoding paquete y llegar a cualquier lugar con el uso de coordenadas

var googleGeocoding = GoogleGeocoding("API-KEY");
var result = await googleGeocoding.geocoding.getReverse(LatLon(40.714224,-73.961452));
2021-11-19 18:45:20

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................