Closed mvysny closed 3 months ago
Maybe this answer could help: https://stackoverflow.com/questions/2932416/removing-directions-markers-from-the-google-maps-api-v3?rq=3 . Let me try it out.
Taking a look at this example https://developers.google.com/maps/documentation/javascript/examples/hiding-features you could do something like this to hide the POIs:
googlemap.getElement().executeJs("const styles = { hide: [{featureType: 'poi',stylers: [{ visibility: 'off' }],},],}; this.map.setOptions({ styles: styles['hide']});");
We'll investigate if we can add this feature to the API somehow.
@paodb excellent, thank you so much, that works! Need to wait for the google-map-ready
DOM event though:
public void hidePOI() {
// https://github.com/FlowingCode/GoogleMapsAddon/issues/123
getElement().addEventListener("google-map-ready", e -> {
getElement().executeJs("const styles = { hide: [{featureType: 'poi',stylers: [{ visibility: 'off' }],},],}; this.map.setOptions({ styles: styles['hide']});");
});
}
@mvysny I did a little more research and the styles
property is part of the web-component part of the component so the rule to hide the POIs can be added without the need of waiting for the google-map-ready
event. There's no Java API yet for setting the styles
property but the element API can be used. As this property expects a Json Array with the styling rules, you can do something like this:
JsonArray jsonArray = Json.createArray();
jsonArray.set(0, Json.parse("{'featureType': 'poi','stylers': [{ 'visibility': 'off' }],},"));
googlemap.getElement().setPropertyJson("styles", jsonArray);
I think this workaround is better than the previous one. I will work on adding a more friendly API.
Please add an API to hide the POI (points of interests). For example, on the screenshot attached, the POIs are "McDonalds" and "PlusCity".