(function(factory){
  if (typeof define !== "undefined" && define.cmd) {
    define(function(require, exports, module){
      var $ = require('zepto');
      factory($);
    });
  } else {
    var $ = Zepto;
    factory($);
  }
}(function($){
  
  var mapObj = null,
      citylocation = null,
      aqiTips = null;
  
  loadScript();
  
  window.initMap = function(){
    mapObj = new AMap.Map("container", {
      view: new AMap.View2D({
        zoom: 4
      })
    });
    mapObj.plugin(["AMap.MapType"],function(){
      var mapType= new AMap.MapType({
        defaultType:1,
        showRoad:true
      });
      mapObj.addControl(mapType);
    });
    mapObj.plugin(["AMap.ToolBar"],function(){
      var toolBar = new AMap.ToolBar();
      mapObj.addControl(toolBar);		
    });
    
    showAQIData();
  };
  
  function showAQIData() {
    $.getJSON("data/citylocation.amap.json", function(data){
      citylocation = data;
      
      $.getJSON("data/tips.baidu.json", function(data){
        aqiTips = data;
        $.getJSON("data/citylist.baidu.json", getAQI);
      });
    });
  }

  function getAQI(citylist){
    $.each(citylist, function(index, item) {
      (function(city){
        $.ajax({
          url: "aqi.php",
          data: {cname: city.name, c: city.code},
          dataType: "json",
          success: function(data) {
            showCityAQI(city.name, data.current_city);
          },
          error: function(xhr, errorType, error){
            console.warn("GetAQI Error:", errorType, error, city.name);
          }
        });
      })(item);
      
    });
  }
  
  function showCityAQI(cityShortName, aqiData) {
    if (!citylocation[cityShortName]) return ;
    var cityLoc = citylocation[cityShortName]["point"];

    var markerContent = document.createElement("div");
    markerContent.className = "markerContentStyle";
    markerContent.style.backgroundColor = aqiTips[aqiData.level]["bgColor"];
    markerContent.innerHTML = cityShortName + aqiData.aqi;
    var marker = new AMap.Marker({
      content: markerContent,
      position: new AMap.LngLat(cityLoc.x/100000, cityLoc.y/100000)
    });
    marker.setMap(mapObj);
  }
  
  function loadScript(){
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = "http://webapi.amap.com/maps?v=1.3&key=b1fc6abe324303d61dbccbe745be09de&callback=initMap";
    document.body.appendChild(script);
  }

}));


@@ -457,16 +457,165 @@
       %7D)
+,%0A      layers: %5Bnew AMap.TileLayer(%7B%0A%09%09%09%09tileUrl:%22http://mt%7B1,2,3,0%7D.google.cn/vt/lyrs=m@142&hl=zh-CN&gl=cn&x=%5Bx%5D&y=%5By%5D&z=%5Bz%5D&s=Galil%22 //%E5%8F%96%E5%9B%BE%E5%9C%B0%E5%9D%80%0A%09%09%09%7D)%5D
 %0A    %7D);
@@ -607,32 +607,39 @@
 %0A%09%09%09%7D)%5D%0A    %7D);%0A
+    /*%0A
     mapObj.plugi
@@ -800,24 +800,31 @@
 e);%0A    %7D);%0A
+    */%0A
     mapObj.p

Update app.js: Use Google Map layer