颤振谷歌地图当前位置到屏幕中心点



我正在创建一个扑动应用程序,并在其中使用谷歌地图,我需要获得屏幕中心的位置信息,因此,我使用中心属性在屏幕中间放置了一个图标,我使用下面getMarkerPosition()函数获得屏幕中间的位置信息。一切都很顺利。我的问题是当应用程序启动时,我需要在当前位置或当前位置等于屏幕中心的中心图标开始。

Future<void> getMarkerPosition() async {
double screenWidth = MediaQuery.of(context).size.width *
MediaQuery.of(context).devicePixelRatio;
double screenHeight = MediaQuery.of(context).size.height *
MediaQuery.of(context).devicePixelRatio;

double middleX = screenWidth / 2;
double middleY = screenHeight / 2;
ScreenCoordinate screenCoordinate = ScreenCoordinate(x: middleX.round(), y: middleY.round());
LatLng middlePoint = await googleMapController!.getLatLng(screenCoordinate);

}
return Scaffold(
key: sKey,
drawer: SizedBox(
width: MediaQuery.of(context).size.width * 0.6,
child: Theme(
data: Theme.of(context).copyWith(
canvasColor: Colors.black,
),
child: MyDrawer(
name: userName,
phone: userPhone,
),
),
),
body: SafeArea(
child: Stack(
children: [
GoogleMap(
key: containerKey,
padding: EdgeInsets.only(bottom: bottomPaddding),
mapType: MapType.normal,
myLocationEnabled: true,
zoomControlsEnabled: true,
zoomGesturesEnabled: true,
initialCameraPosition: _iraq,
polylines: polyLineSet,
markers: markerSet,
circles: circleSet,
onMapCreated: (GoogleMapController controller) {
_controller.complete(controller);
googleMapController = controller;
locateUserPosition();
setState(() {
bottomPaddding = 120;
});
//for black theme google map
},
onCameraIdle: () {
if (stateRequest == "start") {
} else if (stateRequest == "source") {
getMarkerPosition();
}
},

Center(
child: IconButton(
iconSize: 30,
icon: const Icon(
Icons.place,
color: Colors.red,
),
onPressed: () {},
)),
Positioned(
top: 10,
left: 10,
child: RawMaterialButton(
onPressed: () {
if (openNavigationDrawer) {
sKey.currentState?.openDrawer();
} else {
// restart-refresh app proggramatically.
SystemNavigator.pop();
}
},
elevation: 1.0,
fillColor: Colors.white38,
shape: CircleBorder(),
child: Icon(
openNavigationDrawer ? Icons.menu : Icons.close,
size: 20,
),
)),
// UI for searching location
startRequestContainer(),
],
),
));
}

应用程序截图

我需要当前位置等于屏幕的中心点

我建议两种方法

  1. 使用相机动画功能让你的位置在中心

mapController.animateCamera (CameraUpdate.newLatLngZoom (LatLng (currentLocation。纬度,currentLocation.longitude), 14));

  1. 使用Location包获取用户位置&设置自定义标记

相关内容

  • 没有找到相关文章

最新更新