Флаттер: Как добавить маркер в Google Maps с помощью нового API-маркера? - PullRequest
4 голосов
/ 05 марта 2019
    mapController.addMarker(
  MarkerOptions(
    position: LatLng(37.4219999, -122.0862462),
  ),
);

Я видел этот фрагмент кода в посте в блоге , и я пытаюсь добавить маркеры в Карты Google.

Метод addMarkerне определен для класса 'GoogleMapController'.

Я думаю, что библиотека изменилась, и я хочу знать, как это происходит по-новому, я посмотрел в контроллере .dart и api reference , но не могу понять.

Я был бы рад увидеть некоторые учебники и сообщения в блоге об этом, не стесняйтесь поделиться.

1 Ответ

7 голосов
/ 05 марта 2019

Да, API карт Google изменился, и API Маркеров основан на виджетах, а не на контроллере.

По CHANGELOG.md

"Срочные изменения. Изменен API-интерфейс маркера, чтобы он был основан на виджетах, он был основан на контроллере. Также изменил пример приложения для учета того же."

Я копирую некоторые фрагменты кода из примера приложения github , которые, как мне кажется, важны для вас

Map<MarkerId, Marker> markers = <MarkerId, Marker>{}; // CLASS MEMBER, MAP OF MARKS

void _add() {
    var markerIdVal = MyWayToGenerateId();
    final MarkerId markerId = MarkerId(markerIdVal);

    // creating a new MARKER
    final Marker marker = Marker(
      markerId: markerId,
      position: LatLng(
        center.latitude + sin(_markerIdCounter * pi / 6.0) / 20.0,
        center.longitude + cos(_markerIdCounter * pi / 6.0) / 20.0,
      ),
      infoWindow: InfoWindow(title: markerIdVal, snippet: '*'),
      onTap: () {
        _onMarkerTapped(markerId);
      },
    );

    setState(() {
      // adding a new marker to map
      markers[markerId] = marker;
    });
}

GoogleMap(
              onMapCreated: _onMapCreated,
              initialCameraPosition: const CameraPosition(
                target: LatLng(-33.852, 151.211),
                zoom: 11.0,
              ),
              // TODO(iskakaushik): Remove this when collection literals makes it to stable.
              // https://github.com/flutter/flutter/issues/28312
              // ignore: prefer_collection_literals
              markers: Set<Marker>.of(markers.values), // YOUR MARKS IN MAP
)

Советую посмотреть пример приложения здесь . Обновлен новый API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...