Как получить широту и долготу по местоположению по картам с очками во флаттере? - PullRequest
0 голосов
/ 10 мая 2019

Я использую флаттер 1.3 ** версии, он не определен markers синтаксис в GoogleMap()

GoogleMap(
  onMapCreated: _onMapCreated,
  markers: markers,
)

Поэтому я использую приведенный ниже код, чтобы попытаться получить широту и долготу от карты

 void _onMapCreated(GoogleMapController controller){
    this._controller = controller;
    controller.onMarkerTapped.add(_onMarkerTapped);
          }

  void _onMarkerTapped(Marker marker) {
         ...
           }

Widget build(BuildContext context) {
   GoogleMap(
        onMapCreated: _onMapCreated,
        options: GoogleMapOptions(
          ...
        ));
      }

Мой вопрос: как получить lat и long, используя MarkerOptions и выше, методы в строковые значения?

1 Ответ

0 голосов
/ 10 мая 2019

Этот код может быть полезным для вас.

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

    void main() => runApp(MyApp());

    class MyApp extends StatelessWidget {
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Flutter Google Maps Demo',
          home: MapSample(),
        );
      }
    }

    class MapSample extends StatefulWidget {
      @override
      State<MapSample> createState() => MapSampleState();
    }

    class MapSampleState extends State<MapSample> {
      Completer<GoogleMapController> _controller = Completer();

      static final CameraPosition _kGooglePlex = CameraPosition(
        target: LatLng(37.42796133580664, -122.085749655962),
        zoom: 14.4746,
      );

      static final CameraPosition _kLake = CameraPosition(
          bearing: 192.8334901395799,
          target: LatLng(37.43296265331129, -122.08832357078792),
          tilt: 59.440717697143555,
          zoom: 19.151926040649414);

      @override
      Widget build(BuildContext context) {
        return new Scaffold(
          body: GoogleMap(
            mapType: MapType.hybrid,
            initialCameraPosition: _kGooglePlex,
            onMapCreated: (GoogleMapController controller) {
              _controller.complete(controller);
            },
          ),
          floatingActionButton: FloatingActionButton.extended(
            onPressed: _goToTheLake,
            label: Text('To the lake!'),
            icon: Icon(Icons.directions_boat),
          ),
        );
      }

      Future<void> _goToTheLake() async {
        final GoogleMapController controller = await _controller.future;
        controller.animateCamera(CameraUpdate.newCameraPosition(_kLake));
      }
    }
...