Seems its impossible via Google Maps SDK, but anyway you can use workaround:
- Remove all "POI's currently visible as "icons" on the map" like in this answer of josef:
a) create JSON file src\main\res\raw\map_style.json like this:
[
{
featureType: "poi",
elementType: "labels",
stylers: [
{
visibility: "off"
}
]
}
]
b) add map style to your GoogleMap:
`googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(getContext(), R.raw.map_style));`
Get coordinates of area visible on screen:
LatLngBounds visibleAreaBounds = googleMap.getProjection().getVisibleRegion().latLngBounds;
Get information about POI's "manually" (by kinds of them) near screen center coordinates via Places SDK for Android and parse information about each place.
4.For each POI's coordinates check if it exactly inside bounds:
for (LatLng poiCoords : PoisCoords) {
if (visibleAreaBounds.contains(poiCoords)) {
// POI is visible on screen
}
}