private TextureTileProvider getMatchingProvider( double unitsPerPixel ) { TextureTileProvider provider = providers[0]; for ( int i = 0; i < providers.length; i++ ) { // double provRes = providers[i].getNativeResolution(); if ( !providers[i].hasTextureForResolution( unitsPerPixel ) ) { break; } provider = providers[i]; } LOG.debug( "Using povider with native resolution: " + provider.getNativeResolution() ); return provider; }
/** * * @param unitsPerPixel * @return the native resolution of the configured TextureProvider, based on the meters per pixel. */ public double getMatchingResolution( double unitsPerPixel ) { TextureTileProvider match = getMatchingProvider( unitsPerPixel ); if ( match != null ) { // System.out.println( "The match: " + match + " requested upp: " + unitsPerPixel ); if ( Double.isNaN( match.getNativeResolution() ) && match.hasTextureForResolution( unitsPerPixel ) ) { // we have a texture but it is not limited to a minimal units per pixel. return unitsPerPixel; } return match.getNativeResolution(); } // match was null or the provider does not supply a texture for the given resolution. return Double.NaN; }