Flutter 'LatLng' 未定义

Maw*_*awg 10 leaflet visual-studio-code flutter

我正在 Flutter 中使用 Leaflet 完成我的第一个婴儿步骤,因此欢迎耐心和教程 URL 等。

我能找到的每一段示例代码都给了我这个错误:

未为类型“_MyHomePageState”定义方法“LatLng”。尝试将名称更正为现有方法的名称,或定义名为“LatLng”的方法。

例如,参见How to setCenter() Leaflet map in flutter的答案,其中有一些非常简单的代码。

这部分代码

  new FlutterMap(
      mapController: _mapController,
      options: MapOptions(
        minZoom: _minzoom,
        maxZoom: _maxzoom,
        center: LatLng(mylatitude,mylongitude),    <=== error here
      ),   
Run Code Online (Sandbox Code Playgroud)

给我错误。

我从互联网上复制的几个代码示例也遇到了同样的错误。可能是因为我使用的是最新版本的包,而那些是旧帖子?

我在用

dependencies:
  flutter_map: ^0.9.0
Run Code Online (Sandbox Code Playgroud)

根据安装文档,但也许我发现的所有演示都使用了更早的东西?

我对来自https://github.com/johnpryan/flutter_map的代码有同样的问题。

它一定是非常基础的东西,但是,正如我所说,我才刚刚开始。尽管熟悉 AngularJs 中的 Leaflet,我还是被难住了。

我的问题是什么,我在哪里可以找到一个好的、深入的、功能齐全的教程?

[更新] 我已经完全卸载了 Visual Studio Code(使用Revo Uninstaller Pro,它彻底搜索了注册表和文件系统以查找剩余内容。重新安装 VSC 并仅添加 Flutter 插件后,我仍然遇到问题。

我还安装了 Android Studio 和 Flutter 插件,结果相同:-(

Ket*_*eke 19

像下面这样导入 Latlong:

import "package:latlong/latlong.dart" as latLng;
Run Code Online (Sandbox Code Playgroud)

现在您可以使用 latLng 别名调用 Latlong


new FlutterMap(
      mapController: _mapController,
      options: MapOptions(
        minZoom: _minzoom,
        maxZoom: _maxzoom,
        center: latLng.LatLng(mylatitude,mylongitude),   
      ),   


Run Code Online (Sandbox Code Playgroud)

我有一个类似的项目,它实现了类似于 Leaflet 地图的 MapBox 地图,请查看,这里是链接:

https://github.com/TheKetan2/covid19_flutter_app

  • 哇!!非常感谢!我不明白为什么这段代码对其他人有用。顺便说一句,我只是使用了 `import "package:latlong/latlong.dart";`,因为 `as` 子句给出了错误。我建议它需要我使用“new latLng.LatLng(90,0, 90.0)”。我将研究您的 Covid 19 应用程序。Leaflet/OSM 是免费的,为什么还要使用 MapBox? (3认同)

小智 11

对于 flutter_map 0.13.1 及更高版本,这条线应该可以工作

import 'package:latlong2/latlong.dart' as latLng;
Run Code Online (Sandbox Code Playgroud)

然后您可以使用别名调用 LatLng,

FlutterMap(
options: MapOptions(
  center: latLng.LatLng(51.5, -0.09),
  zoom: 13.0,
),
layers: [
  TileLayerOptions(
    urlTemplate: "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
    subdomains: ['a', 'b', 'c']
  ),
  MarkerLayerOptions(
    markers: [
      Marker(
        width: 80.0,
        height: 80.0,
        point: latLng.LatLng(51.5, -0.09),
        builder: (ctx) =>
        Container(
          child: FlutterLogo(),
        ),
      ),
    ],
  ),
],
Run Code Online (Sandbox Code Playgroud)

);

  • 也可以跳过`as latLng`,那么它只会是:`center: LatLng(51.5,-0.09)` (3认同)