lat = WMTTileFactory.moveInRange(lat,
wwSource.getBounds().getMinY(), wwSource.getBounds().getMaxY());
lon = WMTTileFactory.moveInRange(lon,
wwSource.getBounds().getMinX(), wwSource.getBounds().getMaxX());
WWZoomLevel wwZoomLevel = (WWZoomLevel) zoomLevel;
int row = WMTTileName.arithmeticMod(
(int) Math.ceil(Math.abs((lat - WWSource.WORLD_BOUNDS.getMinY()) / wwZoomLevel.getHeightInWorldUnits())) - 1,
zoomLevel.getMaxTilePerColNumber());
int col = WMTTileName.arithmeticMod(
(int) Math.abs((lon - WWSource.WORLD_BOUNDS.getMinX()) / wwZoomLevel.getWidthInWorldUnits()),
zoomLevel.getMaxTilePerRowNumber());
WMTPlugin.debug("[WWTile.getTileFromCoordinate] " + zoomLevel.getZoomLevel() + //$NON-NLS-1$
"/" + col + "/" + row + " lon: " + lon + " lat: " + lat, Trace.WW); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$