ユーザーの現在地を表示するボタンを作成する必要があります。だから私はグーグルマップを使っています。グーグルマップにはこのようなオプションがあります。しかし、MyLocationボタンをカスタマイズする必要がありますが、その方法がわかりません。これを手伝ってくれませんか。
私はFlutterではかなり新しいですが:D
簡単な方法は見つかりませんでしたが、すべてがウィジェットであるため、Googleマップをスタックに配置し、アイコンボタンや必要なカスタムボタンをスタックに追加できます。
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
。ユーザーがそのボタンの上にpresssedとき、私は新しいを追加しMarker
、現在位置を表示するために、あるSet
のMarkers
私にState
、と呼ばれるmarkers
、私は新しいを作成していMarker
たユーザの現在位置を取得し、そのマーカーにカスタムアイコンを追加することによって、および次に、それをマーカー(セット)に追加して、GoogleMapに表示します。
私のgetUserLocation関数:
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;
}
}
location: ^2.1.0
パッケージがあり、LocationManagerとして使用していますimport 'package:location/location.dart' as LocationManager;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加