Split up overviewer.js into several files
This commit is contained in:
93
overviewer_core/data/js_src/overviewer.js
Normal file
93
overviewer_core/data/js_src/overviewer.js
Normal file
@@ -0,0 +1,93 @@
|
||||
/* Overviewer.js
|
||||
*
|
||||
* Must be the first file included from index.html
|
||||
*/
|
||||
|
||||
|
||||
var overviewer = {};
|
||||
|
||||
|
||||
/**
|
||||
* This holds the map, probably the most important var in this file
|
||||
*/
|
||||
overviewer.map = null;
|
||||
overviewer.mapView = null;
|
||||
|
||||
|
||||
overviewer.collections = {
|
||||
/**
|
||||
* MapTypes that aren't overlays will end up in here.
|
||||
*/
|
||||
'mapTypes': {},
|
||||
/**
|
||||
* The mapType names are in here.
|
||||
*/
|
||||
'mapTypeIds': [],
|
||||
/**
|
||||
* This is the current infoWindow object, we keep track of it so that
|
||||
* there is only one open at a time.
|
||||
*/
|
||||
'infoWindow': null,
|
||||
|
||||
'worldViews': []
|
||||
};
|
||||
|
||||
overviewer.classes = {
|
||||
/**
|
||||
* Our custom projection maps Latitude to Y, and Longitude to X as
|
||||
* normal, but it maps the range [0.0, 1.0] to [0, tileSize] in both
|
||||
* directions so it is easier to position markers, etc. based on their
|
||||
* position (find their position in the lowest-zoom image, and divide
|
||||
* by tileSize)
|
||||
*/
|
||||
'MapProjection' : function() {
|
||||
this.inverseTileSize = 1.0 / overviewerConfig.CONST.tileSize;
|
||||
},
|
||||
/**
|
||||
* This is a mapType used only for debugging, to draw a grid on the screen
|
||||
* showing the tile co-ordinates and tile path. Currently the tile path
|
||||
* part does not work.
|
||||
*
|
||||
* @param google.maps.Size tileSize
|
||||
*/
|
||||
'CoordMapType': function(tileSize) {
|
||||
this.tileSize = tileSize;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
overviewer.gmap = {
|
||||
|
||||
/**
|
||||
* Generate a function to get the path to a tile at a particular location
|
||||
* and zoom level.
|
||||
*
|
||||
* @param string path
|
||||
* @param string pathBase
|
||||
* @param string pathExt
|
||||
*/
|
||||
'getTileUrlGenerator': function(path, pathBase, pathExt) {
|
||||
return function(tile, zoom) {
|
||||
var url = path;
|
||||
var urlBase = ( pathBase ? pathBase : '' );
|
||||
if(tile.x < 0 || tile.x >= Math.pow(2, zoom) ||
|
||||
tile.y < 0 || tile.y >= Math.pow(2, zoom)) {
|
||||
url += '/blank';
|
||||
} else if(zoom == 0) {
|
||||
url += '/base';
|
||||
} else {
|
||||
for(var z = zoom - 1; z >= 0; --z) {
|
||||
var x = Math.floor(tile.x / Math.pow(2, z)) % 2;
|
||||
var y = Math.floor(tile.y / Math.pow(2, z)) % 2;
|
||||
url += '/' + (x + 2 * y);
|
||||
}
|
||||
}
|
||||
url = url + '.' + pathExt;
|
||||
if(typeof overviewerConfig.map.cacheTag !== 'undefined') {
|
||||
url += '?c=' + overviewerConfig.map.cacheTag;
|
||||
}
|
||||
return(urlBase + url);
|
||||
}
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user