Flutter Google Maps - Почему я не вижу свой маркер в Google Maps? - PullRequest
0 голосов
/ 04 апреля 2020

Я использую плагин Google Maps в Flutter, и все работает нормально (карта, смена местоположения и т. Д. c.), Но я не вижу свой собственный маркер. Даже когда я не меняю значок маркера, я не вижу его. Я также использовал метод с UInt8, но там его тоже не было видно. Что мне нужно изменить, чтобы я мог видеть маркер?

Код:

import 'dart:async';
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:flutter/services.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:location/location.dart';

class Karte extends StatefulWidget {
  @override
  _KarteState createState() => _KarteState();
}

class _KarteState extends State<Karte> {

  StreamSubscription _locationSubscription;
  Location _locationtracker = Location();
  Marker marker;
  Circle circle;
  GoogleMapController _controller;

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



  void updateMarkerAndCircle(LocationData newLocalData){
    LatLng latlng = LatLng(newLocalData.latitude, newLocalData.longitude);
    this.setState((){
      marker = Marker(
        markerId: MarkerId("home"),
        position: latlng,
        rotation: newLocalData.heading,
        draggable: false,
        zIndex: 2,
        flat: true,
        anchor: Offset(0.5, 0.5));
        icon: BitmapDescriptor.fromAsset("assets/car_icon.png");
      circle = Circle(
        circleId: CircleId("car"),
        radius: newLocalData.accuracy,
        zIndex: 1,
        strokeColor: Colors.blue,
        center: latlng,
        fillColor: Colors.blue.withAlpha(70));
    });
  }

  void getCurrentLocation() async{
    try{

      var location = await _locationtracker.getLocation();

      updateMarkerAndCircle(location);

      if (_locationSubscription != null) {
        _locationSubscription.cancel();
      }

      _locationSubscription = _locationtracker.onLocationChanged().listen((newLocalData){
        if(_controller != null){
          _controller.animateCamera(CameraUpdate.newCameraPosition(new CameraPosition(
            bearing: 192.8334901395799,
            target: LatLng(newLocalData.latitude, newLocalData.longitude),
            tilt: 0,
            zoom: 18.00)));
        }
      });

    } on PlatformException catch (e){
      if (e.code == 'PERMISSION_DENIED') {
        debugPrint("Berechtigung benötigt");     
      }
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: GoogleMap(
        mapType: MapType.hybrid,
        initialCameraPosition: initialLocation,
        onMapCreated: (GoogleMapController controller){
          _controller = controller;
        },

      ),
      floatingActionButton: FloatingActionButton(
        child: Icon(Icons.location_searching),
        onPressed: getCurrentLocation,
      ),
    );
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...