Java JMapViewer:如何更改MapPolygon的颜色?

Java JMapViewer:如何更改MapPolygon的颜色?,java,colors,stroke,jmapviewer,Java,Colors,Stroke,Jmapviewer,我正在创建一个应用程序,用于在JMapViewer上绘制污染信息。我想用MapPolygons做这个,但是我没有找到关于它的好文档。我成功地创建了新的MapPolygons,如下所示: private MapPolygon getPolygon(double lat, double lon, Color col){ List<Coordinate> coords = new ArrayList<>(); //add all points to the l

我正在创建一个应用程序,用于在JMapViewer上绘制污染信息。我想用MapPolygons做这个,但是我没有找到关于它的好文档。我成功地创建了新的MapPolygons,如下所示:

private MapPolygon getPolygon(double lat, double lon, Color col){
    List<Coordinate> coords = new ArrayList<>();

    //add all points to the list...

    MapPolygon poly = new MapPolygonImpl(coords); 
    return poly;
}
有人知道如何更改贴图多边形的颜色吗?
谢谢

找到了。必须创建图层和样式:

    Layer global = new Layer("Global");
    Style style = new Style();
    style.setBackColor(col);
    style.setColor(col);
    style.setStroke(new BasicStroke(0));
    MapPolygon poly = new MapPolygonImpl(global,"",coords,style);
    return poly;

由于
MapPolygonImpl
扩展了
MapObjectImpl
MapPolygonImpl
MapObjectImpl
继承了
setColor()
setBackColor()
MapPolygonImpl
在其
paint()
的实现中使用这些颜色。颜色存储在父类的
Style
属性中,在构造期间通过调用
getDefaultStyle()
初始化

您可以改变所选
颜色的alpha分量,以实现各种效果;下面的示例使用12.5%的浅灰色

MapPolygonImpl poly = new MapPolygonImpl(coords);
Color color = new Color(0x20202020, true);
poly.setColor(color);
poly.setBackColor(color);
poly.setStroke(new BasicStroke(0));
map.addMapPolygon(poly);

如果现有颜色令人满意,则可通过将颜色设置为背景色来实现类似效果

MapPolygonImpl poly = new MapPolygonImpl(route);
poly.setColor(poly.getBackColor());

无论是否使用图层,都可以更改颜色或样式。
MapPolygonImpl poly = new MapPolygonImpl(route);
poly.setColor(poly.getBackColor());