样式

使用 Style 对象可以自定义地图 要素 的颜色、大小、字体和其他可视化属性。

样式也可以在 图层 级别应用,从而为图层中的所有要素定义一致的外观。

PointFeature 样式

如需更改 PointFeature 的样式,可以定义一个 PointStyle 对象,设置所需的外观属性(如 imagefillstroke 等),然后将该样式应用于 PointFeature

private PointFeature createStyledPoint() {
    return new PointFeature(GeometryUtils.createPoint(22, 25))
            .withStyles(
                    new PointStyle()
                            .withImage(new CircleStyle()
                                    .withRadius(7)
                                    .withFill(new Fill("#E7003E"))
                                    .withStroke(new Stroke()
                                            .withWidth(2.0)
                                            .withColor("#710067")))
                            .build());
}
style point

PointFeature 设置文本而非图像,可以直接在地图上的指定坐标处显示文本标注,从而为显示的数据提供清晰的上下文。

PointFeature 使用文本时,可以通过调整 fontfilltextAlign 等属性来自定义文本的外观。

下面的示例演示了如何为 PointFeature 设置文本标签而不是图像:

private PointFeature createTextPoint() {
    return new PointFeature(GeometryUtils.createPoint(15, 15))
            .withStyles(
                    new PointStyle()
                            .withText(new TextStyle()
                                    .withText("Africa")
                                    .withFont("20px sans-serif")
                                    .withFill(new Fill("#5E4BD8"))
                                    .withStroke(new Stroke()
                                            .withWidth(2.)
                                            .withColor("#A368D5")))
                            .build());
}
style point text

MarkerFeature 样式

如需修改标记的图标,可以参考下面的示例:

private MarkerFeature createStyledMarker() {
    MarkerFeature feature = new MarkerFeature(GeometryUtils.createPoint(20, 20));
    feature.removeAllStyles();
    return feature.withStyles(new Style()
                    .withImage(new IconStyle()
                            .withSrc("icons/icon.png")
                            .withScale(0.05)));
}

此外,根据地理对象属性自定义标记图标的示例在 使用自定义标记 章节。

style marker

LineStringFeature 样式

如需更改 LineStringFeature 的样式,可以定义一个 LineStringStyle 对象,设置所需的外观属性(如 fillstroke 等),然后将该样式应用于 LineStringFeature

private LineStringFeature createStyledLineString() {
    LineString lineString = geometries.createLineString(new Coordinate[]{
            new Coordinate(13, 20),
            new Coordinate(13, 32),
            new Coordinate(25, 17)});
    return new LineStringFeature(lineString)
            .withStyles(
                    new LineStringStyle()
                            .withStroke(new Stroke()
                                    .withWidth(3.)
                                    .withColor("#F60018"))
                            .build());
}
style line string

PolygonFeature 样式

如需更改 PolygonFeature 的样式,可以定义一个 PolygonStyle 对象,设置所需的外观属性(如 fillstroke 等),然后将该样式应用于 PolygonFeature

private PolygonFeature createStyledPolygon() {
    LinearRing shell = geometries.createLinearRing(new Coordinate[]{
            new Coordinate(1.2457020544488762, 42.476628901048684),
            new Coordinate(-0.054875980233204155, 52.77260344863316),
            new Coordinate(29.858418817454655, 46.105591288830624),
            new Coordinate(1.2457020544488762, 42.476628901048684),
    });
    return new PolygonFeature(geometries.createPolygon(shell))
            .withStyles(
                    new PolygonStyle()
                            .withFill(new Fill("rgba(1, 147, 154, 0.2)"))
                            .withStroke(new Stroke()
                                    .withWidth(3.)
                                    .withColor("#123EAB"))
                            .build());
}
style polygon