在 Flutter 中设置谷歌地图多边形的不透明度颜色

Posted

技术标签:

【中文标题】在 Flutter 中设置谷歌地图多边形的不透明度颜色【英文标题】:Set opacity color in google map polygon in Flutter 【发布时间】:2021-07-03 21:29:37 【问题描述】:

有人知道如何在我的多边形坐标中设置不透明度颜色,我只希望我的多边形中的黑色背景将颜色设置为具有不透明度颜色的紫色 和多边形的边界也是一样的。有可能吗?如果有人能弄清楚,那就太好了,非常感谢您!

我的多边形

  Set<Polygon> myPolygon() 
    List<LatLng> polygonCoords = new List();
    polygonCoords.add(LatLng(8.9442, 125.5321));
    polygonCoords.add(LatLng(8.9486, 125.5364));
    polygonCoords.add(LatLng(8.9303, 125.5384));
    polygonCoords.add(LatLng(8.9442, 125.5321));
    Set<Polygon> polygonSet = new Set();
    polygonSet.add(Polygon(
        polygonId: PolygonId('test'),
        points: polygonCoords,
        strokeColor: Colors.red));  //color of the border
    return polygonSet;
  

我的谷歌地图

  @override
  Widget build(BuildContext context)
    return Scaffold(
        backgroundColor: Colors.deepOrange,
        appBar: AppBar(
          title: Text('Google Map API'),
        ),
        body:Padding(
            padding: EdgeInsets.only(bottom: 16.0),
            child: GoogleMap(
              onMapCreated:  _onMapCreated,
              polygons: myPolygon(), markers: _markers,
              mapType: MapType.normal,
              initialCameraPosition:CameraPosition(target: LatLng(8.9405, 125.5364),
                zoom: 15,
            ))
        ),
    );
  

【问题讨论】:

【参考方案1】:

试试这个:

 polygonSet.add(Polygon(
        polygonId: PolygonId('test'),
        points: polygonCoords,
        fillColor: Colors.red.withOpacity(0.2),
        strokeColor: Colors.red));  //color of the border

【讨论】:

感谢它的工作,但可以转换颜色十六进制?像这样 ? const Color(0xFFFF5800) 是的,fillColor: Color(0xFFFF5800).withOpacity(0.2),【参考方案2】:

添加到@JimChiu 的答案,您可以像这样使用十六进制颜色,

class HexColor extends Color 
  HexColor(final String hexColor) : super(_getColorFromHex(hexColor));

  static int _getColorFromHex(String hexColor) 
    hexColor = hexColor.toUpperCase().replaceAll('#', '');
    if (hexColor.length == 6) 
      hexColor = 'FF' + hexColor;
    
    return int.parse(hexColor, radix: 16);
  

你可以这样使用。

polygonSet.add(Polygon(
        polygonId: PolygonId('test'),
        points: polygonCoords,
        strokeColor: HexColor('#88F04857')));

【讨论】:

以上是关于在 Flutter 中设置谷歌地图多边形的不透明度颜色的主要内容,如果未能解决你的问题,请参考以下文章

谷歌地图颤动检查多边形内的点

使用 MapKit 框架在谷歌地图上绘制多边形

如何同时使用 QUERY 和 IMPORTRANGE 函数来提取和转置谷歌表格中的数据?

在地图图块上绘制空间多边形时如何调整透明度?

如何在 Flutter 中的 Google 地图上绘制多边形并获取其中的所有 POI?

从谷歌地图drawingManager V3中删除多边形