【问题标题】:get data snapshot to location latitude longitude获取位置纬度经度的数据快照
【发布时间】:2020-07-13 02:29:08
【问题描述】:

我成功地使用以下代码从 firestore 获取数据:

return new Scaffold(
  body: Column(
    children: <Widget>[
      StreamBuilder(
            stream: Firestore.instance.collection("location").snapshots(),
            builder: (context, snapshot) {
              if (!snapshot.hasData)
                return Text("Loading Data.. Please Wait");
                return  
                  Container(
                    child: GoogleMap(
                      mapType: MapType.normal,
                      initialCameraPosition: CameraPosition(
                        target: LatLng("${snapshot.data.documents[0]['latitude']}", "${snapshot.data.documents[0]['longitude']}"),
                        zoom: 12.0
                      ),
                      onMapCreated: (GoogleMapController controller) {
                        _controller.complete(controller);
                      },
                    ),
                );
            },
          ),
    ],
  ),
);

但我不太了解如何在 LatLng 中赋值(error in here),这是错误。 任何人都有这个问题的想法,感谢您的帮助。

【问题讨论】:

    标签: google-maps flutter dart google-cloud-firestore


    【解决方案1】:

    google_maps documentation,我可以看到您必须将 2 个双精度值传递给 LatLng 构造函数。 试试下面的代码:

    return new Scaffold(
      body: Column(
        children: <Widget>[
          StreamBuilder(
                stream: Firestore.instance.collection("location").snapshots(),
                builder: (context, snapshot) {
                  if (!snapshot.hasData)
                    return Text("Loading Data.. Please Wait");
                    return  
                      Container(
                        child: GoogleMap(
                          mapType: MapType.normal,
                          initialCameraPosition: CameraPosition(
                            target: LatLng(double.parse("${snapshot.data.documents[0]['latitude']}"), double.parse("${snapshot.data.documents[0]['longitude']}")),
                            zoom: 12.0
                          ),
                          onMapCreated: (GoogleMapController controller) {
                            _controller.complete(controller);
                          },
                        ),
                    );
                },
              ),
        ],
      ),
    );
    

    不同之处在于我使用 double.parse() 将您的数据转换为双精度,然后将其传递给 LatLng 构造函数。

    【讨论】:

      猜你喜欢
      • 2012-11-08
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多