googlemaps / googlemaps/google-maps-services-java

[Google Static Maps] Handle styled Maps with the "style" parameter

Ouverte
#826 5 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
triage me type: feature request
Langage dominant
Java
Étoiles
1.8k
Forks
973
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

I use the Google Static Maps API and I would like to customize the presentation of the Map by applying my own styles.

I found this documentation: https://developers.google.com/maps/documentation/maps-static/styling

**Is your feature request related to a problem? Please describe.**

But I can't find a method in `StaticMapsRequest.java` to add styles.

As an alternative, I used `StaticMapsRequest.custom(...)` method.

```
req.custom("style", "feature:poi|visibility:off");
```

But I can't add multiple styles, because the `custom` method allows to add just one 'style' parameter.

I can't do the following:
```
StaticMapsRequest req = StaticMapsApi.newRequest(sc.context, new Size(WIDTH, HEIGHT));
req.center("Google Sydney");
req.zoom(16);

req.custom("style", "feature:poi|visibility:off");
req.custom("style", "feature:landscape|visibility:off");

ByteArrayInputStream bais = new ByteArrayInputStream(req.await().imageData);
BufferedImage img = ImageIO.read(bais);
```

**Describe the solution you'd like**
I would like to have a method to handle the 'style' parameter.
```
req.style(
new Style()
.feature(new StyleFeature().poi())
.element(new StyleElement().labels().icon())
.rules(new StyleRules().color(java.awt.Color.WHITE))
);
req.style(
new Style()
.feature(new StyleFeature().landscape().man_made())
.rules(new StyleRules().visbility().off())
);
```

**Describe alternatives you've considered**
The `custom` method allows to add a single string:
```
public A custom(String parameter, String value) {
return this.param(parameter, value);
}
```
An alternative would be to add a new `custom` method that allows a list of Strings:
```
public A custom(String parameter, List values) {
values.forEach(v -> this.paramAddToList(parameter, v));
return this.getInstance();
}
```

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.