Java的JMapViewer:我怎样才能改变一个MapPolygon的颜色?(Java JMapV

2019-10-23 08:15发布

我创建了借鉴了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的颜色? 谢谢!

Answer 1:

因为MapPolygonImpl延伸MapObjectImplMapPolygonImpl继承setColor()setBackColor()MapObjectImplMapPolygonImpl在履行使用这些颜色paint() 颜色是存储在父类的Style属性,通过调用初始化getDefaultStyle()施工期间。

可以改变所选择的阿尔法分量Color来实现多种效果; 下面的例子中采用的是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());


Answer 2:

发现了这件事。 你必须创建图层和样式:

    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;


文章来源: Java JMapViewer: How can I change the color of a MapPolygon?