diff --git a/vtm/src/org/oscim/renderer/MapRenderer.java b/vtm/src/org/oscim/renderer/MapRenderer.java
index 85cbce53..1a63b69e 100644
--- a/vtm/src/org/oscim/renderer/MapRenderer.java
+++ b/vtm/src/org/oscim/renderer/MapRenderer.java
@@ -1,5 +1,6 @@
 /*
  * Copyright 2012, 2013 Hannes Janetzek
+ * Copyright 2016 Longri
  *
  * This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
  *
@@ -61,6 +62,8 @@ public class MapRenderer {
 
     private static NativeBufferPool mBufferPool;
 
+    private float viewPortScale = 1;
+
     public MapRenderer(Map map) {
         mMap = map;
         mViewport = new GLViewport();
@@ -76,6 +79,13 @@ public class MapRenderer {
         mClearColor = GLUtils.colorToFloat(color);
     }
 
+    /**
+     * Set the scale value for map viewport.
+     */
+    public void setViewPortScale(float scale) {
+        this.viewPortScale = scale;
+    }
+
     public void onDrawFrame() {
         frametime = System.currentTimeMillis();
         rerender = false;
@@ -121,6 +131,12 @@ public class MapRenderer {
             mViewport.proj.multiplyLhs(mViewport.mvp);
         }
 
+        if (this.viewPortScale != 1) {
+            mViewport.mvp.setScale(this.viewPortScale, this.viewPortScale, 1);
+            mViewport.viewproj.multiplyLhs(mViewport.mvp);
+            mViewport.proj.multiplyLhs(mViewport.mvp);
+        }
+
         /* update layers */
         LayerRenderer[] layers = mMap.layers().getLayerRenderer();