Flutter从谷歌地图获取坐标

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter从谷歌地图获取坐标相关的知识,希望对你有一定的参考价值。

我使用包google_maps_flutter在我的应用程序中使用谷歌地图。我的问题是如何设置一个监听器,当我按下地图以显示这个地方的协调时显示。我在文档中找不到任何内容。我发现唯一的东西是controllerMap,我用来设置标记监听器,它有一个方法,.addListener(listener)

任何的想法?

答案

我使用下面的onMarkerTapped回调方法解决了这个问题:

注意:下面的mapController是GoogleMap Controller的一个实例

 mapController.**onMarkerTapped**.add((marker){

      String title= marker.options.infoWindowText.title;
      String latitude= marker.options.position.latitude.toString();
      String longitude= marker.options.position.longitude.toString();

  });
另一答案

谷歌地图插件有很多错误:),我更喜欢使用这个插件:flutter_map

完整的例子:

import 'package:location/location.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:latlong/latlong.dart';

class ContactPage extends StatefulWidget {
  @override
  ContactPageState createState() => new ContactPageState();
}

class ContactPageState extends State<ContactPage>
    with TickerProviderStateMixin {


  static LatLng myLocation = new LatLng(51.5, -0.09);
  @override
  void initState() {
    super.initState();
    setState(() {
      new LatLng(51.5, -0.09);
    });
  }

  @override
  Widget build(BuildContext context) {
    Size screenSize = MediaQuery.of(context).size;
    double heigh = screenSize.height;
    TextStyle whiteStyle = new TextStyle(fontSize: 20.0, color: Colors.white);
    return new Directionality(
      textDirection: TextDirection.rtl,
      child: new Container(
          padding: new EdgeInsets.only(bottom: 10.0, left: 1.0, right: 1.0),
          color: Colors.white,
          child: new FlutterMap(
            options: new MapOptions(
                center: myLocation,
                zoom: 15.0,
                maxZoom: 15.0,
                minZoom: 3.0,
                onTap: _handleTap),
            layers: [
              new TileLayerOptions(
                  urlTemplate:
                      "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
                  subdomains: ['a', 'b', 'c']),
              new MarkerLayerOptions(markers: markers)
            ],
          )
          )),
    );
  }
  _handleTap(LatLng point) {
    setState(() {
      myLocation = point;
    });
  }
}
另一答案

此功能目前在google flutter插件的2.0版本中不可用,但是有两个拉取请求已添加此功能。

拉请求1121具有关于如何使用抽头功能的示例代码。

以上是关于Flutter从谷歌地图获取坐标的主要内容,如果未能解决你的问题,请参考以下文章

如何从谷歌地图v2 android中的标记获取屏幕坐标

使用标记从谷歌地图获取纬度/经度坐标

如何从谷歌地图的经纬度坐标中获取城市名称?

从谷歌静态地图中的像素坐标获取经度/纬度

从谷歌地图API位置搜索框的示例中获取坐标? [重复]

试图从谷歌地图获取纬度是通过 Android 中的意图返回 null