popup anchor and resize fix
This commit is contained in:
parent
fdc675dd22
commit
e34ab4711c
2 changed files with 18 additions and 10 deletions
|
@ -24,16 +24,24 @@ function initializeMap(mapImgUrl) {
|
||||||
|
|
||||||
// this works but assumes the map is square (reasonable limitation I think)
|
// this works but assumes the map is square (reasonable limitation I think)
|
||||||
function resizeMarkers() {
|
function resizeMarkers() {
|
||||||
|
let tryAgain = false;
|
||||||
tokens.forEach(t=>{
|
tokens.forEach(t=>{
|
||||||
const icon = t.m.options.icon;
|
if (t.m._icon == null) {
|
||||||
const scaleFactor = mapImg._image.clientWidth / mapImg._image.naturalWidth;
|
tryAgain = true;
|
||||||
|
} else {
|
||||||
|
const icon = t.m.options.icon;
|
||||||
|
const scaleFactor = mapImg._image.clientWidth / mapImg._image.naturalWidth;
|
||||||
|
|
||||||
icon.options.iconSize = [scaleFactor * t.t.w, scaleFactor * t.t.h];
|
icon.options.iconSize = [scaleFactor * t.t.w, scaleFactor * t.t.h];
|
||||||
icon.options.iconAnchor = [scaleFactor * t.t.oX, scaleFactor * t.t.oY];
|
icon.options.iconAnchor = [scaleFactor * t.t.oX, scaleFactor * t.t.oY];
|
||||||
icon.options.popupAnchor = [0, -scaleFactor * t.t.oY];
|
icon.options.popupAnchor = [0, -scaleFactor * t.t.oY];
|
||||||
|
|
||||||
t.m.setIcon(icon);
|
t.m.setIcon(icon);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
if (tryAgain) {
|
||||||
|
setTimeout(resizeMarkers, 500)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function processTokens(tokenChanges) {
|
function processTokens(tokenChanges) {
|
||||||
|
@ -45,7 +53,6 @@ function processTokens(tokenChanges) {
|
||||||
if (t.x != null && t.y != null && !self.t.active && t.active) {
|
if (t.x != null && t.y != null && !self.t.active && t.active) {
|
||||||
self.t.active = true;
|
self.t.active = true;
|
||||||
self.m.addTo(map);
|
self.m.addTo(map);
|
||||||
resizeMarkers();
|
|
||||||
// token was made inactive
|
// token was made inactive
|
||||||
} else if (t.x != null && t.y != null && self.t.active && !t.active) {
|
} else if (t.x != null && t.y != null && self.t.active && !t.active) {
|
||||||
self.t.active = false;
|
self.t.active = false;
|
||||||
|
@ -74,7 +81,6 @@ function processTokens(tokenChanges) {
|
||||||
});
|
});
|
||||||
if (t.active) {
|
if (t.active) {
|
||||||
self.m.addTo(map);
|
self.m.addTo(map);
|
||||||
resizeMarkers();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -197,8 +197,10 @@ function dial() {
|
||||||
tokens[0].m.removeFrom(map);
|
tokens[0].m.removeFrom(map);
|
||||||
tokens.shift();
|
tokens.shift();
|
||||||
}
|
}
|
||||||
mapImg.removeFrom(map);
|
if (mapImg) {
|
||||||
mapImg = null;
|
mapImg.removeFrom(map);
|
||||||
|
mapImg = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
conn.addEventListener("open", e => {
|
conn.addEventListener("open", e => {
|
||||||
|
|
Loading…
Reference in a new issue