POIs are delivered to the application through the Region-events. Please see example below. For a complete example, check WayfindingExample.java.
private IARegion.Listener mRegionListener = new IARegion.Listener() {
@Override
public void onEnterRegion(final IARegion region) {
if (region.getType() == IARegion.TYPE_FLOOR_PLAN) {
Log.d(TAG, "enter floor plan " + region.getId());
mFloorPlan = region;
fetchFloorPlanBitmap(region.getFloorPlan());
setupPoIs(mVenue.getPOIs(), region.getFloorPlan().getFloorLevel());
} else if (region.getType() == IARegion.TYPE_VENUE) {
mVenue = region.getVenue();
}
}
@Override
public void onExitRegion(IARegion region) {
}
};
private void setupPoIs(List<IAPOI> pois, int currentFloorLevel) {
Log.d(TAG, pois.size() + " PoI(s)");
// remove any existing markers
for (Marker m : mPoIMarkers) {
m.remove();
}
mPoIMarkers.clear();
for (IAPOI poi : pois) {
if (poi.getFloor() == currentFloorLevel) {
mPoIMarkers.add(mMap.addMarker(new MarkerOptions()
.title(poi.getName())
.position(new LatLng(
poi.getLocation().latitude, poi.getLocation().longitude))
.icon(BitmapDescriptorFactory.defaultMarker(
BitmapDescriptorFactory.HUE_BLUE))));
}
}
}