我需要创建一个按钮,该按钮将向我显示用户的当前位置。这就是为什么我使用Google Maps的原因,Google Maps具有此类选项。但是,我需要自定义MyLocation按钮,但不知道该怎么做。你能帮我这个忙吗?
虽然我对Flutter相当陌生:D
答案 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;
}
}