Skip to content

Commit

Permalink
Fix zoom when map container is scaled (#5794)
Browse files Browse the repository at this point in the history
* fix zoom when container is scaled

* add map-scaled debug page
  • Loading branch information
cherniavskii authored and mourner committed Sep 29, 2017
1 parent 2a324b0 commit 899bdd4
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 2 deletions.
38 changes: 38 additions & 0 deletions debug/map/map-scaled.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<!DOCTYPE html>
<html>
<head>
<title>Leaflet debug page</title>

<link rel="stylesheet" href="../../dist/leaflet.css" />

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<link rel="stylesheet" href="../css/screen.css" />

<style>
#map {
width: 400px;
height: 300px;
transform: scale(1.5, 1.5);
transform-origin: 0 0;
}
</style>

<script src="../leaflet-include.js"></script>
</head>
<body>

<div id="map"></div>

<script>

var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
osmAttrib = '&copy; <a href="http://openstreetmap.org/copyright">OpenStreetMap</a> contributors',
osm = L.tileLayer(osmUrl, {maxZoom: 18, attribution: osmAttrib});

var map = L.map('map')
.setView([50.5, 30.51], 15)
.addLayer(osm);
</script>
</body>
</html>
6 changes: 4 additions & 2 deletions src/dom/DomEvent.js
Original file line number Diff line number Diff line change
Expand Up @@ -227,9 +227,11 @@ export function getMousePosition(e, container) {

var rect = container.getBoundingClientRect();

var scaleX = rect.width / container.offsetWidth || 1;
var scaleY = rect.height / container.offsetHeight || 1;
return new Point(
e.clientX - rect.left - container.clientLeft,
e.clientY - rect.top - container.clientTop);
e.clientX / scaleX - rect.left - container.clientLeft,
e.clientY / scaleY - rect.top - container.clientTop);
}

// Chrome on Win scrolls double the pixels as in other platforms (see #4538),
Expand Down

0 comments on commit 899bdd4

Please sign in to comment.