_getWmsTileBoundingBox(tileCoordinates, gmap) {
let tileSize = 256;
// first convert tile coordinates to pixel coordinates for NW and SE corners of tile
let nwPixelX = tileCoordinates.x * tileSize;
let nwPixelY = tileCoordinates.y * tileSize;
let sePixelX = (tileCoordinates.x + 1) * tileSize - 1;
let sePixelY = (tileCoordinates.y + 1) * tileSize - 1;
// next convert pixel coordinates to world (web mercator) coodinates
let nwWorldX = nwPixelX / (Math.pow(2, zoom));
let nwWorldY = nwPixelY / (Math.pow(2, zoom));
let seWorldX = sePixelX / (Math.pow(2, zoom));
let seWorldY = sePixelY / (Math.pow(2, zoom));
let nwWorldPoint = new google.maps.Point(nwWorldX, nwWorldY);
let seWorldPoint = new google.maps.Point(seWorldX, seWorldY);
// finally use Google Maps' native method to convert world coordinates to Lat/Lng coordinates, and return a bounding box
let nwLatLng = gmap.getProjection().fromPointToLatLng(nwWorldPoint);
let seLatLng = gmap.getProjection().fromPointToLatLng(seWorldPoint);
let bbox = nwLatLng.lng() + ',' + seLatLng.lat() + ',' + seLatLng.lng() + ',' + nwLatLng.lat();
return bbox;
}