Методы «removeMarker» и «addMarker» не определены для класса «GoogleMapController» - PullRequest
1 голос
/ 11 июня 2019

Я добавляю removeMarker и addMarker, но он показывает это: метод addMarker не определен для класса «GoogleMapController».Попробуйте исправить имя с именем существующего метода или определить метод с именем 'addMarker'.dart (undefined_method)

Метод' MarkerOptions 'не определен для класса' _GoogleMapsDemoState '.Попробуйте исправить имя с именем существующего метода или определить метод с именем 'MarkerOptions'.dart (undefined_method) Быстрое исправление ... Проблема с поиском

 import 'package:location/location.dart';

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

class GoogleMapsDemo extends StatefulWidget {
  @override
  _GoogleMapsDemoState createState() => _GoogleMapsDemoState();
}

class _GoogleMapsDemoState extends State<GoogleMapsDemo> {
  GoogleMapController mapController;
  Location location = Location();

  Marker marker;

  @override
  void initState() {
    super.initState();
    location.onLocationChanged().listen((location) async {
      if (marker != null) {
        mapController.removeMarker(marker);
      }
      marker = await mapController?.addMarker(MarkerOptions(
        position: LatLng(location["latitude"], location["longitude"]),
      ));
      mapController?.moveCamera(
        CameraUpdate.newCameraPosition(
          CameraPosition(
            target: LatLng(
              location["latitude"],
              location["longitude"],
            ),
            zoom: 20.0,
          ),
        ),
      );
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        children: <Widget>[
          Container(
            height: MediaQuery.of(context).size.height,
            width: MediaQuery.of(context).size.width,
            child: GoogleMap(

              onMapCreated: (GoogleMapController controller) {
                mapController = controller;
              },
              initialCameraPosition: CameraPosition(
                target: const LatLng(45.521563, -122.677433),
                zoom: 11.0,
              ),
              myLocationButtonEnabled: true,
              myLocationEnabled: true,
            ),
          ),
        ],
      ),
    );
  }
}

Метод addMarker не определендля класса «GoogleMapController».Попробуйте исправить имя в соответствии с именем существующего метода или определить метод с именем 'addMarker'.dart (undefined_method). Метод' MarkerOptions 'не определен для класса' _GoogleMapsDemoState '.Попробуйте исправить имя с именем существующего метода или определить метод с именем 'MarkerOptions'.dart (undefined_method) Quick Fix ... Peek Problem

1 Ответ

1 голос
/ 11 июня 2019

Если я не совсем ошибаюсь, эта статья должна вам помочь. https://stackoverflow.com/a/55000503/11620670

Похоже, что команда флаттера что-то изменила, и API карт Google теперь работает на основе виджетов, а не на контроллерах.

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

Привет

...