Use QGis SQlite cache and handle multiple geometry types layers