diff --git a/frontend-js/src/main/js/map/AbstractCustomMap.js b/frontend-js/src/main/js/map/AbstractCustomMap.js
index 78f7c7216d2890fe933b3faf1bf355bc54bdd8dd..abf9eedc134329defe54ed3a23a25a832617370c 100644
--- a/frontend-js/src/main/js/map/AbstractCustomMap.js
+++ b/frontend-js/src/main/js/map/AbstractCustomMap.js
@@ -157,27 +157,35 @@ AbstractCustomMap.prototype.createMapOptions = function () {
  */
 AbstractCustomMap.prototype.createTypeOptions = function (param) {
   var self = this;
-  var result = {
+  return {
     // this is a function that will retrieve valid url to png images for
     // tiles on different zoom levels
     getTileUrl: function (coord, zoom) {
       // we have 1 tile on self.getConfiguration().MIN_ZOOM and
       // therefore must limit tails according to this
       /* jshint bitwise: false */
-      var tileRange = 1 << (zoom - self.getMinZoom());
-      if (coord.y < 0 || coord.y >= tileRange || coord.x < 0 || coord.x >= tileRange) {
+      var maxTileRange = 1 << (zoom - self.getMinZoom());
+      var maxTileXRange = maxTileRange;
+      var maxTileYRange = maxTileRange;
+
+      var width = self.getModel().getWidth();
+      var height = self.getModel().getHeight();
+      if (width > height) {
+        maxTileYRange = height / width * maxTileRange;
+      } else if (width < height) {
+        maxTileXRange = width / height * maxTileRange;
+      }
+      if (coord.y < 0 || coord.y >= maxTileYRange || coord.x < 0 || coord.x >= maxTileXRange) {
         return null;
       }
-      var addr = "../map_images/" + param.getDirectory() + "/" + zoom + "/" + coord.x + "/" + coord.y + ".PNG";
-      return addr;
+      return "../map_images/" + param.getDirectory() + "/" + zoom + "/" + coord.x + "/" + coord.y + ".PNG";
     },
-    tileSize: new google.maps.Size(this.getTileSize(), this.getTileSize()),
-    maxZoom: this.getMaxZoom(),
-    minZoom: this.getMinZoom(),
+    tileSize: new google.maps.Size(self.getTileSize(), self.getTileSize()),
+    maxZoom: self.getMaxZoom(),
+    minZoom: self.getMinZoom(),
     radius: 360,
     name: param.name
   };
-  return result;
 };
 
 /**