mirror of
https://github.com/webbukkit/dynmap.git
synced 2024-11-28 13:15:30 +01:00
Various map update fixes (keeping zoom, center on map change, repaint)
This commit is contained in:
parent
5aa961388d
commit
08192df906
@ -102,7 +102,7 @@ DynMap.prototype = {
|
|||||||
me.options.defaultzoom = urlzoom;
|
me.options.defaultzoom = urlzoom;
|
||||||
|
|
||||||
var map = this.map = new L.Map(mapContainer.get(0), {
|
var map = this.map = new L.Map(mapContainer.get(0), {
|
||||||
zoom: 1, //TODO: me.options.defaultzoom || 1,
|
zoom: me.options.defaultzoom || 1,
|
||||||
center: new L.LatLng(0, 0),
|
center: new L.LatLng(0, 0),
|
||||||
zoomAnimation: true,
|
zoomAnimation: true,
|
||||||
crs: L.Util.extend({}, L.CRS, {
|
crs: L.Util.extend({}, L.CRS, {
|
||||||
@ -180,16 +180,16 @@ DynMap.prototype = {
|
|||||||
.data('world', world)
|
.data('world', world)
|
||||||
.appendTo(worldlist);
|
.appendTo(worldlist);
|
||||||
|
|
||||||
$.each(world.maps, function(index, map) {
|
$.each(world.maps, function(mapindex, map) {
|
||||||
//me.map.mapTypes.set(map.world.name + '.' + map.name, map);
|
//me.map.mapTypes.set(map.world.name + '.' + map.name, map);
|
||||||
|
|
||||||
map.element = $('<li/>')
|
map.element = $('<li/>')
|
||||||
.addClass('map')
|
.addClass('map')
|
||||||
.append($('<a/>')
|
.append($('<a/>')
|
||||||
.attr({ title: map.title, href: '#' })
|
.attr({ title: map.options.title, href: '#' })
|
||||||
.addClass('maptype')
|
.addClass('maptype')
|
||||||
.css({ backgroundImage: 'url(' + (map.icon || 'images/block_' + map.name + '.png') + ')' })
|
.css({ backgroundImage: 'url(' + (map.options.icon || ('images/block_' + mapindex + '.png')) + ')' })
|
||||||
.text(map.title)
|
.text(map.options.title)
|
||||||
)
|
)
|
||||||
.click(function() {
|
.click(function() {
|
||||||
me.selectMap(map);
|
me.selectMap(map);
|
||||||
@ -307,21 +307,33 @@ DynMap.prototype = {
|
|||||||
}
|
}
|
||||||
$('.compass').addClass('compass_' + map.compassview);
|
$('.compass').addClass('compass_' + map.compassview);
|
||||||
$('.compass').addClass('compass_' + map.name);
|
$('.compass').addClass('compass_' + map.name);
|
||||||
var worldChanged = me.world !== map.world;
|
var worldChanged = me.world !== map.options.world;
|
||||||
var projectionChanged = (me.maptype && me.maptype.getProjection()) !== (map && map.projection);
|
var projectionChanged = (me.maptype && me.maptype.getProjection()) !== (map && map.projection);
|
||||||
|
|
||||||
|
var prevzoom = me.map.getZoom();
|
||||||
|
|
||||||
if (me.maptype) {
|
if (me.maptype) {
|
||||||
me.map.removeLayer(me.maptype);
|
me.map.removeLayer(me.maptype);
|
||||||
}
|
}
|
||||||
|
|
||||||
me.world = mapWorld;
|
me.world = mapWorld;
|
||||||
me.maptype = map;
|
me.maptype = map;
|
||||||
|
|
||||||
|
|
||||||
if (projectionChanged || worldChanged) {
|
if (projectionChanged || worldChanged) {
|
||||||
|
var centerPoint;
|
||||||
|
if(worldChanged) {
|
||||||
var centerLocation = $.extend({ x: 0, y: 64, z: 0 }, mapWorld.center);
|
var centerLocation = $.extend({ x: 0, y: 64, z: 0 }, mapWorld.center);
|
||||||
var centerPoint = me.getProjection().fromLocationToLatLng(centerLocation);
|
centerPoint = me.getProjection().fromLocationToLatLng(centerLocation);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
centerPoint = me.map.getCenter();
|
||||||
|
}
|
||||||
me.map.setView(centerPoint, 0, true);
|
me.map.setView(centerPoint, 0, true);
|
||||||
}
|
}
|
||||||
|
me.map.addLayer(me.maptype);
|
||||||
|
|
||||||
me.map.addLayer(me.maptype, false);
|
me.map.setZoom(prevzoom);
|
||||||
|
|
||||||
if (worldChanged) {
|
if (worldChanged) {
|
||||||
$(me).trigger('worldchanged');
|
$(me).trigger('worldchanged');
|
||||||
|
Loading…
Reference in New Issue
Block a user