如何从屏幕上的特定位置在谷歌MapFlutterLatLng

xdnvmnnf  于 2023-01-02  发布在  Flutter
关注(0)|答案(2)|浏览(166)

我需要获取我的自定义标记下的坐标,这是我的自定义标记的图像
我正在使用堆栈将我的自定义标记放置在从顶部和左侧的特定位置上,现在我需要自定义标记下的坐标来获得位置。

final GoogleMapController gmController =
  await controller.future;
LatLngBounds visibleRegion =
  await gmController.getVisibleRegion();
LatLng centerLatLng = LatLng(
(visibleRegion.northeast.latitude +
        visibleRegion.southwest.latitude) /
    2,
(visibleRegion.northeast.longitude +
        visibleRegion.southwest.longitude) /
    2,
);

print(centerLatLng);

以上代码用于获取Map的中心坐标,请提供帮助。

laawzig2

laawzig21#

要获取屏幕上特定位置的纬度和经度(LatLng),可以使用GoogleMapController.getLatLng方法。

LatLng _getLatLng(Offset offset) async {
    return await _mapController.getLatLng(offset);
 }
vlju58qv

vlju58qv2#

GoogleMap(
          initialCameraPosition: CameraPosition(target: _initialCameraPosition),
          mapType: MapType.normal,
          onMapCreated: (GoogleMapController _cntlr) {
            _onMapCreated(_cntlr);
          },
          myLocationEnabled: true,
          onTap: (LatLng latLng) {
            if (_controller != null) {
              _controller!.animateCamera(
                CameraUpdate.newCameraPosition(CameraPosition(target: LatLng(latLng.latitude, latLng.longitude), zoom: 15)),
              );
            }
            _handleTap(latLng);
          },
          markers: _markers,
          gestureRecognizers: Set()
            ..add(
              Factory<PanGestureRecognizer>(
                () => PanGestureRecognizer(),
              ),
            )
            ..add(Factory<ScaleGestureRecognizer>(
                () => ScaleGestureRecognizer()))
            ..add(
              Factory<TapGestureRecognizer>(
                () => TapGestureRecognizer(),
              ),
            )
            ..add(
              Factory<VerticalDragGestureRecognizer>(
                () => VerticalDragGestureRecognizer(),
              ),
            ),
        ),

   HandleTap method will give you lat long.

_handleTap(LatLng point) {
   latLng = "${num.parse(point.latitude.toStringAsFixed(6))},${num.parse(point.longitude.toStringAsFixed(6))}";
   print("LAT ::: LNG ${latLng}");
 }

相关问题