簡體   English   中英

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

[英]Java JMapViewer: How can I change the color of a MapPolygon?

我正在創建一個在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的顏色? 謝謝!

因為MapPolygonImpl延伸MapObjectImplMapPolygonImpl繼承setColor()setBackColor()MapObjectImpl MapPolygonImpl在其paint()實現中使用這些顏色。 顏色存儲在父類的Style屬性中,在構造期間通過調用getDefaultStyle()進行初始化。

您可以改變所選Coloralpha分量以實現各種效果; 以下示例使用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());

找到了。 你必須創建一個圖層和一個樣式:

    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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM