1

我正在创建一个用于在 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;
}

我想知道如何更改颜色并删除 MapPolygon 的边框。没有函数 setColor 之类的......

我直接尝试使用构造函数,但这不起作用:

MapPolygon poly = new MapPolygonImpl(coords, Color.RED, new BasicStroke(0));

有人知道如何更改 MapPolygon 的颜色吗?谢谢!

4

2 回答 2

2

因为MapPolygonImplextends MapObjectImplMapPolygonImpl继承setColor()setBackColor()from MapObjectImplMapPolygonImpl在其实现中使用这些颜色paint()。颜色存储在父类的属性中,在构造过程中Style通过调用进行初始化。getDefaultStyle()

您可以改变所选的alphaColor分量以实现各种效果;下面的示例使用 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());
于 2015-06-14T14:12:53.783 回答
1

发现了。您必须创建一个图层和一个样式:

    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;
于 2015-06-10T13:49:38.397 回答