More updates to overviewer.js
This commit is contained in:
@@ -75,6 +75,7 @@ directory.
|
|||||||
dump['worlds'] = worlds
|
dump['worlds'] = worlds
|
||||||
dump['map'] = dict()
|
dump['map'] = dict()
|
||||||
dump['map']['debug'] = True
|
dump['map']['debug'] = True
|
||||||
|
dump['map']['north_direction'] = 'lower-left' # only temporary
|
||||||
dump['map']['center'] = [-314, 67, 94]
|
dump['map']['center'] = [-314, 67, 94]
|
||||||
dump['map']['controls'] = {
|
dump['map']['controls'] = {
|
||||||
'pan': True,
|
'pan': True,
|
||||||
|
|||||||
@@ -3,6 +3,11 @@ var overviewer = {
|
|||||||
* This holds the map, probably the most important var in this file
|
* This holds the map, probably the most important var in this file
|
||||||
*/
|
*/
|
||||||
'map': null,
|
'map': null,
|
||||||
|
/**
|
||||||
|
* The index of the currently displayed tileset. 0 (zero) is the default
|
||||||
|
*/
|
||||||
|
'currentTilesetId': 0,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* These are collections of data used in various places
|
* These are collections of data used in various places
|
||||||
*/
|
*/
|
||||||
@@ -169,10 +174,10 @@ var overviewer = {
|
|||||||
overviewerConfig.map.center[0],
|
overviewerConfig.map.center[0],
|
||||||
overviewerConfig.map.center[1],
|
overviewerConfig.map.center[1],
|
||||||
overviewerConfig.map.center[2],
|
overviewerConfig.map.center[2],
|
||||||
overviewerConfig.tilesets[0].zoomLevels);
|
overviewerConfig.tilesets[overviewer.currentTilesetId].zoomLevels);
|
||||||
var lat = defaultCenter.lat();
|
var lat = defaultCenter.lat();
|
||||||
var lng = defaultCenter.lng();
|
var lng = defaultCenter.lng();
|
||||||
var zoom = overviewerConfig.tilesets[0].defaultZoom;
|
var zoom = overviewerConfig.tilesets[overviewer.currentTilesetId].defaultZoom;
|
||||||
var mapcenter;
|
var mapcenter;
|
||||||
var queryParams = overviewer.util.parseQueryString();
|
var queryParams = overviewer.util.parseQueryString();
|
||||||
if (queryParams.debug) {
|
if (queryParams.debug) {
|
||||||
@@ -186,23 +191,25 @@ var overviewer = {
|
|||||||
}
|
}
|
||||||
if (queryParams.zoom) {
|
if (queryParams.zoom) {
|
||||||
if (queryParams.zoom == 'max') {
|
if (queryParams.zoom == 'max') {
|
||||||
zoom = overviewerConfig.map.maxZoom;
|
zoom = overviewerConfig.tilesets[overviewer.currentTilesetId].maxZoom;
|
||||||
} else if (queryParams.zoom == 'min') {
|
} else if (queryParams.zoom == 'min') {
|
||||||
zoom = overviewerConfig.map.minZoom;
|
zoom = overviewerConfig.tilesets[overviewer.currentTilesetId].minZoom;
|
||||||
} else {
|
} else {
|
||||||
zoom = parseInt(queryParams.zoom);
|
zoom = parseInt(queryParams.zoom);
|
||||||
if (zoom < 0 && zoom + overviewerConfig.map.maxZoom >= 0) {
|
if (zoom < 0 && zoom + overviewerConfig.tilesets[overviewer.currentTilesetId].maxZoom >= 0) {
|
||||||
//if zoom is negative, try to treat as "zoom out from max zoom"
|
//if zoom is negative, try to treat as "zoom out from max zoom"
|
||||||
zoom += overviewerConfig.map.maxZoom;
|
zoom += overviewerConfig.tilesets[overviewer.currentTilesetId].maxZoom;
|
||||||
} else {
|
} else {
|
||||||
//fall back to default zoom
|
//fall back to default zoom
|
||||||
zoom = overviewerConfig.map.defaultZoom;
|
zoom = overviewerConfig.tilesets[overviewer.currentTilesetId].defaultZoom;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (queryParams.x && queryParams.y && queryParams.z) {
|
if (queryParams.x && queryParams.y && queryParams.z) {
|
||||||
mapcenter = overviewer.util.fromWorldToLatLng(queryParams.x,
|
mapcenter = overviewer.util.fromWorldToLatLng(queryParams.x,
|
||||||
queryParams.y, queryParams.z);
|
queryParams.y,
|
||||||
|
queryParams.z,
|
||||||
|
overviewerConfig.tilesets[overviewer.currentTilesetId].zoomLevels);
|
||||||
// Add a market indicating the user-supplied position
|
// Add a market indicating the user-supplied position
|
||||||
overviewer.collections.markerDatas.push([{
|
overviewer.collections.markerDatas.push([{
|
||||||
'msg': 'Coordinates ' + queryParams.x + ', ' +
|
'msg': 'Coordinates ' + queryParams.x + ', ' +
|
||||||
@@ -228,7 +235,7 @@ var overviewer = {
|
|||||||
streetViewControl: false,
|
streetViewControl: false,
|
||||||
overviewMapControl: true,
|
overviewMapControl: true,
|
||||||
zoomControl: overviewerConfig.map.controls.zoom,
|
zoomControl: overviewerConfig.map.controls.zoom,
|
||||||
backgroundColor: overviewer.util.getMapTypeBackgroundColor(0)
|
backgroundColor: overviewer.util.getMapTypeBackgroundColor(overviewer.currentTilesetId)
|
||||||
};
|
};
|
||||||
overviewer.map = new google.maps.Map(document.getElementById(
|
overviewer.map = new google.maps.Map(document.getElementById(
|
||||||
overviewerConfig.CONST.mapDivId), mapOptions);
|
overviewerConfig.CONST.mapDivId), mapOptions);
|
||||||
@@ -275,6 +282,7 @@ var overviewer = {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Make the link again whenever the map changes
|
// Make the link again whenever the map changes
|
||||||
|
/* TODO reimplement
|
||||||
google.maps.event.addListener(overviewer.map, 'maptypeid_changed', function() {
|
google.maps.event.addListener(overviewer.map, 'maptypeid_changed', function() {
|
||||||
$('#'+overviewerConfig.CONST.mapDivId).css(
|
$('#'+overviewerConfig.CONST.mapDivId).css(
|
||||||
'background-color', overviewer.util.getMapTypeBackgroundColor(
|
'background-color', overviewer.util.getMapTypeBackgroundColor(
|
||||||
@@ -282,6 +290,7 @@ var overviewer = {
|
|||||||
//smuggled this one in here for maptypeid hash generation --CounterPillow
|
//smuggled this one in here for maptypeid hash generation --CounterPillow
|
||||||
overviewer.util.updateHash();
|
overviewer.util.updateHash();
|
||||||
});
|
});
|
||||||
|
*/
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* Read through overviewer.collections.markerDatas and create Marker
|
* Read through overviewer.collections.markerDatas and create Marker
|
||||||
@@ -679,12 +688,12 @@ var overviewer = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Update coords on mousemove
|
// Update coords on mousemove
|
||||||
/* TODO reenable
|
|
||||||
google.maps.event.addListener(overviewer.map, 'mousemove', function (event) {
|
google.maps.event.addListener(overviewer.map, 'mousemove', function (event) {
|
||||||
var worldcoords = overviewer.util.fromLatLngToWorld(event.latLng.lat(), event.latLng.lng());
|
var worldcoords = overviewer.util.fromLatLngToWorld(event.latLng.lat(),
|
||||||
|
event.latLng.lng(),
|
||||||
|
overviewerConfig.tilesets[overviewer.currentTilesetId].zoomLevels);
|
||||||
coordsDiv.innerHTML = "Coords: X " + Math.round(worldcoords.x) + ", Z " + Math.round(worldcoords.z);
|
coordsDiv.innerHTML = "Coords: X " + Math.round(worldcoords.x) + ", Z " + Math.round(worldcoords.z);
|
||||||
});
|
});
|
||||||
*/
|
|
||||||
|
|
||||||
// only need to create the control if there are items in the list.
|
// only need to create the control if there are items in the list.
|
||||||
// as defined in config.js
|
// as defined in config.js
|
||||||
@@ -780,7 +789,7 @@ var overviewer = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// call out to create search box, as it's pretty complicated
|
// call out to create search box, as it's pretty complicated
|
||||||
overviewer.util.createSearchBox();
|
// TODO overviewer.util.createSearchBox();
|
||||||
},
|
},
|
||||||
/**
|
/**
|
||||||
* Reusable method for creating drop-down menus
|
* Reusable method for creating drop-down menus
|
||||||
@@ -976,7 +985,9 @@ var overviewer = {
|
|||||||
overviewer.util.updateHash();
|
overviewer.util.updateHash();
|
||||||
|
|
||||||
// Add a marker indicating the user-supplied position
|
// Add a marker indicating the user-supplied position
|
||||||
var coordinates = overviewer.util.fromLatLngToWorld(overviewer.map.getCenter().lat(), overviewer.map.getCenter().lng());
|
var coordinates = overviewer.util.fromLatLngToWorld(overviewer.map.getCenter().lat(),
|
||||||
|
overviewer.map.getCenter().lng(),
|
||||||
|
overviewerConfig.tilesets[overviewer.currentTilesetId].zoomLevels);
|
||||||
overviewer.collections.markerDatas.push([{
|
overviewer.collections.markerDatas.push([{
|
||||||
'msg': 'Coordinates ' + Math.floor(coordinates.x) + ', ' + Math.floor(coordinates.y) + ', ' + Math.floor(coordinates.z),
|
'msg': 'Coordinates ' + Math.floor(coordinates.x) + ', ' + Math.floor(coordinates.y) + ', ' + Math.floor(coordinates.z),
|
||||||
'x': coordinates.x,
|
'x': coordinates.x,
|
||||||
@@ -994,23 +1005,28 @@ var overviewer = {
|
|||||||
window.location.replace("#/" + Math.floor(x) + "/" + Math.floor(y) + "/" + Math.floor(z) + "/" + zoom + "/" + maptype);
|
window.location.replace("#/" + Math.floor(x) + "/" + Math.floor(y) + "/" + Math.floor(z) + "/" + zoom + "/" + maptype);
|
||||||
},
|
},
|
||||||
'updateHash': function() {
|
'updateHash': function() {
|
||||||
var coordinates = overviewer.util.fromLatLngToWorld(overviewer.map.getCenter().lat(), overviewer.map.getCenter().lng());
|
var coordinates = overviewer.util.fromLatLngToWorld(overviewer.map.getCenter().lat(),
|
||||||
|
overviewer.map.getCenter().lng(),
|
||||||
|
overviewerConfig.tilesets[overviewer.currentTilesetId].zoomLevels);
|
||||||
var zoom = overviewer.map.getZoom();
|
var zoom = overviewer.map.getZoom();
|
||||||
var maptype = overviewer.map.getMapTypeId();
|
var maptype = overviewer.map.getMapTypeId();
|
||||||
if (zoom == overviewerConfig.map.maxZoom) {
|
if (zoom == overviewerConfig.tilesets[overviewer.currentTilesetId].maxZoom) {
|
||||||
zoom = 'max';
|
zoom = 'max';
|
||||||
} else if (zoom == overviewerConfig.map.minZoom) {
|
} else if (zoom == overviewerConfig.tilesets[overviewer.currentTilesetId].minZoom) {
|
||||||
zoom = 'min';
|
zoom = 'min';
|
||||||
} else {
|
} else {
|
||||||
// default to (map-update friendly) negative zooms
|
// default to (map-update friendly) negative zooms
|
||||||
zoom -= overviewerConfig.map.maxZoom;
|
zoom -= overviewerConfig.tilesets[overviewer.currentTilesetId].maxZoom;
|
||||||
}
|
}
|
||||||
overviewer.util.setHash(coordinates.x, coordinates.y, coordinates.z, zoom, maptype);
|
overviewer.util.setHash(coordinates.x, coordinates.y, coordinates.z, zoom, maptype);
|
||||||
},
|
},
|
||||||
'goToHash': function() {
|
'goToHash': function() {
|
||||||
// Note: the actual data begins at coords[1], coords[0] is empty.
|
// Note: the actual data begins at coords[1], coords[0] is empty.
|
||||||
var coords = window.location.hash.split("/");
|
var coords = window.location.hash.split("/");
|
||||||
var latlngcoords = overviewer.util.fromWorldToLatLng(parseInt(coords[1]), parseInt(coords[2]), parseInt(coords[3]));
|
var latlngcoords = overviewer.util.fromWorldToLatLng(parseInt(coords[1]),
|
||||||
|
parseInt(coords[2]),
|
||||||
|
parseInt(coords[3]),
|
||||||
|
overviewerConfig.tilesets[overviewer.currentTilesetId].zoomLevels);
|
||||||
var zoom;
|
var zoom;
|
||||||
var maptype = '';
|
var maptype = '';
|
||||||
// The if-statements try to prevent unexpected behaviour when using incomplete hashes, e.g. older links
|
// The if-statements try to prevent unexpected behaviour when using incomplete hashes, e.g. older links
|
||||||
@@ -1022,17 +1038,17 @@ var overviewer = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (zoom == 'max') {
|
if (zoom == 'max') {
|
||||||
zoom = overviewerConfig.map.maxZoom;
|
zoom = overviewerConfig.tilesets[overviewer.currentTilesetId].maxZoom;
|
||||||
} else if (zoom == 'min') {
|
} else if (zoom == 'min') {
|
||||||
zoom = overviewerConfig.map.minZoom;
|
zoom = overviewerConfig.tilesets[overviewer.currentTilesetId].minZoom;
|
||||||
} else {
|
} else {
|
||||||
zoom = parseInt(zoom);
|
zoom = parseInt(zoom);
|
||||||
if (zoom < 0 && zoom + overviewerConfig.map.maxZoom >= 0) {
|
if (zoom < 0 && zoom + overviewerConfig.tilesets[overviewer.currentTilesetId].maxZoom >= 0) {
|
||||||
// if zoom is negative, treat it as a "zoom out from max"
|
// if zoom is negative, treat it as a "zoom out from max"
|
||||||
zoom += overviewerConfig.map.maxZoom;
|
zoom += overviewerConfig.tilesets[overviewer.currentTilesetId].maxZoom;
|
||||||
} else {
|
} else {
|
||||||
// fall back to default zoom
|
// fall back to default zoom
|
||||||
zoom = overviewerConfig.map.defaultZoom;
|
zoom = overviewerConfig.tilesets[overviewer.currentTilesetId].defaultZoom;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// If the maptype isn't set, set the default one.
|
// If the maptype isn't set, set the default one.
|
||||||
|
|||||||
Reference in New Issue
Block a user