web-dev-qa-db-fra.com

Flutter - Faites glisser le marqueur et obtenez une nouvelle position

Dans Flutter, j'ai une carte qui prend la position du périphérique avec de l'aide de emplacement . Ensuite, j'utilise cette position pour afficher le marqueur dans Google Map avec l'aide de Google Maps Flutter Plugin.

Le code est similaire à

 child: GoogleMap(
        mapType: MapType.hybrid,
        initialCameraPosition: CameraPosition(
          target: LatLng(lat, lng),
          zoom: 5,
        ),
        markers: Set<Marker>.of(
          <Marker>[
            Marker(
              draggable: true,
              markerId: MarkerId("1"),
              position: LatLng(lat, lng),
              icon: BitmapDescriptor.defaultMarker,
              infoWindow: const InfoWindow(
                title: 'Usted está aquí',
              ),
            )
          ],
        ),
        onMapCreated: (GoogleMapController controller) {
          mapController = controller;
        },
      ))

Si le plugin d'emplacement échoue ou prenez de mauvaises données, je dois avoir la possibilité de repositionner ce marqueur. J'utilise Draggetable: TRUE Pour faire glisser le marqueur, mais j'ai besoin de prendre la nouvelle latitude et la nouvelle longitude pour le sauvegarder dans la base de données.

La question est donc la suivante: à l'aide de la dragagable Comment puis-je obtenir la nouvelle latitude et la nouvelle longitude?

6

Marqueur ont ONDAGEND propriété. Utilisation Ondragend Propriété donnez de nouvelles latitude et longitude.

Marker(
          onTap: () {
            print('Tapped');
          },
          draggable: true,
          markerId: MarkerId('Marker'),
          position: LatLng(value.latitude, value.longitude),
          onDragEnd: ((value) {
            print(value.latitude);
            print(value.longitude);
          }))
5
MSARKrish