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)
|
||||
function resizeMarkers() {
|
||||
let tryAgain = false;
|
||||
tokens.forEach(t=>{
|
||||
const icon = t.m.options.icon;
|
||||
const scaleFactor = mapImg._image.clientWidth / mapImg._image.naturalWidth;
|
||||
if (t.m._icon == null) {
|
||||
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.iconAnchor = [scaleFactor * t.t.oX, scaleFactor * t.t.oY];
|
||||
icon.options.popupAnchor = [0, -scaleFactor * t.t.oY];
|
||||
icon.options.iconSize = [scaleFactor * t.t.w, scaleFactor * t.t.h];
|
||||
icon.options.iconAnchor = [scaleFactor * t.t.oX, 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) {
|
||||
|
@ -45,7 +53,6 @@ function processTokens(tokenChanges) {
|
|||
if (t.x != null && t.y != null && !self.t.active && t.active) {
|
||||
self.t.active = true;
|
||||
self.m.addTo(map);
|
||||
resizeMarkers();
|
||||
// token was made inactive
|
||||
} else if (t.x != null && t.y != null && self.t.active && !t.active) {
|
||||
self.t.active = false;
|
||||
|
@ -74,7 +81,6 @@ function processTokens(tokenChanges) {
|
|||
});
|
||||
if (t.active) {
|
||||
self.m.addTo(map);
|
||||
resizeMarkers();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -197,8 +197,10 @@ function dial() {
|
|||
tokens[0].m.removeFrom(map);
|
||||
tokens.shift();
|
||||
}
|
||||
mapImg.removeFrom(map);
|
||||
mapImg = null;
|
||||
if (mapImg) {
|
||||
mapImg.removeFrom(map);
|
||||
mapImg = null;
|
||||
}
|
||||
}
|
||||
});
|
||||
conn.addEventListener("open", e => {
|
||||
|
|
Loading…
Reference in a new issue