Guest User

custom map v3

a guest
Nov 9th, 2012
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     var mapTypes = [];
  2.  
  3.     mapTypes['sky'] = {
  4.       getTileUrl: function(coord, zoom) {
  5.         return getHorizontallyRepeatingTileUrl(coord, zoom, function(coord, zoom) {
  6.           return "http://mw1.google.com/mw-planetary/sky/skytiles_v1/" +
  7.                  coord.x + "_" + coord.y + '_' + zoom + '.jpg';
  8.  
  9.         });
  10.       },
  11.       tileSize: new google.maps.Size(256, 256),
  12.       isPng: false,
  13.       maxZoom: 10,
  14.       radius: 57.2957763671875,
  15.       name: 'Sky',
  16.       credit: 'Image Credit: SDSS, DSS Consortium, NASA/ESA/STScI'
  17.     };
  18.  
  19.     function getHorizontallyRepeatingTileUrl(coord, zoom, urlfunc) {
  20.       var y = coord.y;
  21.       var x = coord.x;
  22.  
  23.       var tileRange = 1 << zoom;
  24.  
  25.       if (y < 0 || y >= tileRange) {
  26.         return null;
  27.       }
  28.  
  29.       if (x < 0 || x >= tileRange) {
  30.         x = (x % tileRange + tileRange) % tileRange;
  31.       }
  32.  
  33.       return urlfunc({x:x,y:y}, zoom)
  34.     }
  35.  
  36.     function getMarsTileUrl(baseUrl, coord, zoom) {
  37.       var bound = Math.pow(2, zoom);
  38.       var x = coord.x;
  39.       var y = coord.y;
  40.       var quads = ['t'];
  41.  
  42.       for (var z = 0; z < zoom; z++) {
  43.         bound = bound / 2;
  44.         if (y < bound) {
  45.           if (x < bound) {
  46.             quads.push('q');
  47.           } else {
  48.             quads.push('r');
  49.             x -= bound;
  50.           }
  51.         } else {
  52.           if (x < bound) {
  53.             quads.push('t');
  54.             y -= bound;
  55.           } else {
  56.             quads.push('s');
  57.             x -= bound;
  58.             y -= bound;
  59.           }
  60.         }
  61.       }
  62.  
  63.       return baseUrl + quads.join('') + ".jpg";
  64.     }
  65.  
  66.     var map;
  67.     var mapTypeIds = [];
  68.  
  69.     function initialize() {
  70.  
  71.       for (var key in mapTypes) {
  72.         mapTypeIds.push(key);
  73.       }
  74.  
  75.       var mapOptions = {
  76.         zoom: 0,
  77.         center: new google.maps.LatLng(0, 0),
  78.         mapTypeControlOptions: {
  79.           mapTypeIds: mapTypeIds,
  80.           style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
  81.         }
  82.       };
  83.       map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
  84.  
  85.       for (key in mapTypes) {
  86.         map.mapTypes.set(key, new google.maps.ImageMapType(mapTypes[key]));
  87.       }
  88.  
  89.       map.setMapTypeId('sky');
  90.     }
Advertisement
Add Comment
Please, Sign In to add comment