Флаттер получить координаты из карт Google - PullRequest
0 голосов
/ 20 ноября 2018

Я использую пакет google_maps_flutter для использования карт Google в своем приложении.Моя проблема в том, как настроить слушателя, показать, когда я нажимаю на карте, чтобы получить координацию этого места.Я не нахожу ничего в документации.Единственное, что я нахожу, это с controllerMap, который я использую для установки прослушивателя маркера, это то, что у него есть метод, .addListener(listener)

Есть идеи?

Ответы [ 4 ]

0 голосов
/ 12 июня 2019

С текущей документацией я только внес следующие изменения в приведенный выше пример @lionelsanou и @Pradeep:

  String latitude= marker.values.first.position.toString();
  String longitude= marker.values.last.position.toString();

, и это сработало для меня.

0 голосов
/ 24 декабря 2018

Я решил проблему, используя методы обратного вызова onMarkerTapped ниже:

Примечание: mapController ниже является экземпляром контроллера GoogleMap

 mapController.**onMarkerTapped**.add((marker){

      String title= marker.options.infoWindowText.title;
      String latitude= marker.options.position.latitude.toString();
      String longitude= marker.options.position.longitude.toString();

  });
0 голосов
/ 01 февраля 2019

Эта функция в настоящее время недоступна в версии 2.0 плагина Google Flutter, однако есть два запроса на добавление, которые добавили эту функцию.

Запрос на извлечение 1121 содержит пример кода использования функций касания.

0 голосов
/ 21 ноября 2018

Плагин Google Map имеет много ошибок :), я предпочитаю использовать этот плагин: flutter_map

полный пример:

import 'package:location/location.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:latlong/latlong.dart';

class ContactPage extends StatefulWidget {
  @override
  ContactPageState createState() => new ContactPageState();
}

class ContactPageState extends State<ContactPage>
    with TickerProviderStateMixin {


  static LatLng myLocation = new LatLng(51.5, -0.09);
  @override
  void initState() {
    super.initState();
    setState(() {
      new LatLng(51.5, -0.09);
    });
  }

  @override
  Widget build(BuildContext context) {
    Size screenSize = MediaQuery.of(context).size;
    double heigh = screenSize.height;
    TextStyle whiteStyle = new TextStyle(fontSize: 20.0, color: Colors.white);
    return new Directionality(
      textDirection: TextDirection.rtl,
      child: new Container(
          padding: new EdgeInsets.only(bottom: 10.0, left: 1.0, right: 1.0),
          color: Colors.white,
          child: new FlutterMap(
            options: new MapOptions(
                center: myLocation,
                zoom: 15.0,
                maxZoom: 15.0,
                minZoom: 3.0,
                onTap: _handleTap),
            layers: [
              new TileLayerOptions(
                  urlTemplate:
                      "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
                  subdomains: ['a', 'b', 'c']),
              new MarkerLayerOptions(markers: markers)
            ],
          )
          )),
    );
  }
  _handleTap(LatLng point) {
    setState(() {
      myLocation = point;
    });
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...