flutter_map_polywidget

flutter_map_polywidget 是一个 flutter_map 插件,用于在地图上显示任何小部件。

polywidget.webm

加入 flutter_map Discord 服务器,在 #plugins 频道中讨论 flutter_map_polywidget,获取帮助并帮助他人。

特点

  • 选择所需区域的位置和大小,并显示任何您想要的小部件
  • 通过以下方式定义位置:
    • 中心、宽度、高度和角度
    • 两个精确点和一个近似点
  • 定义小部件是否应随用户视图旋转,将其限制为一种方向或完全禁用旋转

入门

flutter_map_polywidget 添加到您的 pubspec.yaml 文件中

dependencies:
  flutter_map_polywidget: any # or latest verion

用法

首先将 PolyWidgetLayer 添加到您的地图中

FlutterMap(
  children: [
    ...
    PolyWidgetLayer(
      polyWidgets: [
        ...
      ],
    ),
  ],
),

在您的 PolyWidgetLayer 中添加 PolyWidget 小部件。PolyWidgets 可以通过两种方式创建。

首先,通过定义中心位置、宽度、高度和角度来创建小部件

PolyWidget(
  center: LatLng(50.933465, 6.875109),
  widthInMeters: 100,
  heightInMeters: 200,
  angle: 90,
  child: ...,
),

其次,通过在地图上定义所需小部件的三个角来创建。第一个和第二个角是固定的,将用于定义小部件的宽度和角度。只有当第三个角与第二个角成90°角时,它才是固定的。否则,将使用从第二个到第三个角的距离来计算实际的第三个角。所有三个角都用于计算中心位置。

PolyWidget.threePoints(
  pointA: LatLng(50.936614, 6.876283),
  pointB: LatLng(50.936498, 6.877663),
  approxPointC: LatLng(50.935312, 6.877419),
  child: ...,
),

默认情况下,您的小部件会自动旋转,使其与地图的当前旋转对齐。要禁用此功能,请将 noRotation 设置为 true

PolyWidget(
  ...,
  noRotation: true,
  child: ...,
),

如果您希望您的小部件仅旋转到 纵向横向 方向,您可以通过定义 forceOrientation 来实现。

PolyWidget(
  ...,
  forceOrientation: Orientation.landscape, //or Orientation.portrait
  child: ...,
),

您可以在 /example 目录中找到展示视频中的示例。

GitHub

查看 Github