TileData<T> data = TileIOUtils.tileDataForIndex(index, dataId, serializer, pyramidIO, coarseness, tileProperties);
@Override public TileData<T> combine(TileData<T> data, TileIndex index, int coarseness, JSONObject tileProperties) throws IOException, JSONException { TileData normalizingData = TileIOUtils.tileDataForIndex(index, _dataId, _serializer, _pyramidIO, coarseness, tileProperties); // Need to make sure TileData is of type List<?> for use with BinaryOperationTileView if (!(data.getDefaultValue() instanceof List<?>)) { data = new ListTileView(data); } if (!(normalizingData.getDefaultValue() instanceof List<?>)) { normalizingData = new ListTileView(normalizingData); } // Both datasets need to have the same number of buckets for BinaryOperationTileView int normalizeSize = getBucketCount((TileData<List<?>>)normalizingData); int dataSize = getBucketCount((TileData<List<?>>)data); if (dataSize < normalizeSize) { data = new ScaledTileView(data, normalizeSize); } else if (normalizeSize < dataSize) { normalizingData = new ScaledTileView(normalizingData, dataSize); } return new BinaryOperationTileView( data, normalizingData, BinaryOperator.OPERATOR_TYPE.DIVIDE, 0.0); } }