如何自定义Google Maps上的myLocationEnabled按钮?

时间:2019-03-21 18:53:57

标签: google-maps flutter flutter-layout

我需要创建一个按钮,该按钮将向我显示用户的当前位置。这就是为什么我使用Google Maps的原因,Google Maps具有此类选项。但是,我需要自定义MyLocation按钮,但不知道该怎么做。你能帮我这个忙吗?

虽然我对Flutter相当陌生:D

1 个答案:

答案 0 :(得分:0)

我找不到简单的方法,但是由于一切都是小部件,因此您可以将Google地图放入堆栈中,并向堆栈中添加iconbutton或所需的任何自定义按钮。

    <div class="container">
    <h2 id="Darbai" class="d-flex justify-content-center">xxxxxxxx</h2>
    <div class="card-columns">
      <div class="card">
        <img class="card-img-top" src="img/hotel4.jpg" alt="Card image cap" title="Kalbėk">
        <div class="card-body">
          <h4 class="d-flex justify-content-center"><b>xxxxxxxxxx</b></h4>
          <h5 class="d-flex justify-content-center darbaib"><b>xxxxxxxxxxx</b></h5>
          <p class="card-text">xxxxxxxxxxxxxxxx</p>
          <p class="darbaip card-text">xxxxxxxxxxxxxxxxxxxxxxxxx</p>
        </div>
      </div>
    </div>
    </div>

所以我在这里基本上是

我有GoogleMap( onMapCreated: _onMapCreated, initialCameraPosition: CameraPosition(target: LatLng(0.0, 0.0)), markers: markers, ), IconButton( icon: Icon(Icons.battery_charging_full), onPressed: () async { final center = await getUserLocation(); getNearbyPlaces(center); Marker myPosition = Marker( markerId: MarkerId('myLocation'), position: center == null ? LatLng(0, 0) : LatLng(center.latitude, center.longitude), icon: BitmapDescriptor.fromAsset( 'assets/logo.png')); setState(() { markers.add(myPosition); }); }, ), ], ) ,可帮助我将Stack放在IconButton上。当用户按下该按钮时,我添加了一个新的GoogleMap以显示当前位置,我的Marker上有一个Set的{​​{1}},称为Markers,我正在通过获取用户的当前位置并向该标记添加自定义图标,然后将其添加到我的标记(集合)以在GoogleMap上显示它,来创建新的State

我的getUserLocation函数:

markers

我有Marker包,并将其用作LocationManager Future<LatLng> getUserLocation() async { LocationManager.LocationData currentLocation; final location = LocationManager.Location(); try { currentLocation = await location.getLocation(); final lat = currentLocation.latitude; final lng = currentLocation.longitude; final center = LatLng(lat, lng); return center; } on Exception { currentLocation = null; return null; } }