fix zoom offset

This commit is contained in:
2018-10-21 17:25:39 +02:00
parent adb173cd2f
commit 55bb972c5b
3 changed files with 17 additions and 24 deletions

View File

@@ -5,7 +5,7 @@
<link type="image/x-icon" href="images/favicon.ico" rel="shortcut icon" /> <link type="image/x-icon" href="images/favicon.ico" rel="shortcut icon" />
<link type="image/png" href="images/favicon.png" rel="icon" sizes="32x32" /> <link type="image/png" href="images/favicon.png" rel="icon" sizes="32x32" />
<link type="text/css" href="[#]css_timestamp[#]" rel="stylesheet" media="all" /> <link type="text/css" href="[#]css_timestamp[#]" rel="stylesheet" media="all" />
<script type="text/javascript" src="script/leaflet.js"></script> <script type="text/javascript" src="script/leaflet.min.js"></script>
<script type="text/javascript" src="script/jquery.min.js"></script> <script type="text/javascript" src="script/jquery.min.js"></script>
<script type="text/javascript" src="script/jquery.mods.js"></script> <script type="text/javascript" src="script/jquery.mods.js"></script>
<script type="text/javascript" src="script/spot.js"></script> <script type="text/javascript" src="script/spot.js"></script>

View File

@@ -96,16 +96,6 @@ oSpot.pageInit = function(asHash)
zoomControl: false zoomControl: false
}); });
//Swap tile layers on zoom level
oMap.on('zoomend', function() {
if(typeof self.tmp('center_on') == 'object') {
self.tmp('map').panTo(getOffsetCenter(self.tmp('map'), self.tmp('center_on')), {animate: false});
self.tmp('center_on', false);
}
});
//Controls //Controls
L.control.layers({'Satellite': oMapBoxSat, 'LINZ': oLinz}, null, {position: 'topleft'}).addTo(oMap); L.control.layers({'Satellite': oMapBoxSat, 'LINZ': oLinz}, null, {position: 'topleft'}).addTo(oMap);
@@ -160,8 +150,7 @@ oSpot.pageInit = function(asHash)
},*/ },*/
click: function(oPoint){ click: function(oPoint){
//self.tmp('center_on', oPoint.latlng); self.tmp('map').setOffsetView(self.tmp('map_offset'), oPoint.latlng, 15);
self.tmp('map').setView(oPoint.latlng, 15);
} }
}); });
@@ -192,7 +181,7 @@ oSpot.pageInit = function(asHash)
}); });
//Recenter map to be at the center of 70% (map_offset) of the page, 30% being used by posts //Recenter map to be at the center of 70% (map_offset) of the page, 30% being used by posts
if(self.vars('mode')!='blog') oMap.panTo(getOffsetCenter(oMap)); if(self.vars('mode')!='blog') oMap.setOffsetView(self.tmp('map_offset'));
//Legend //Legend
var oLegend = L.control({position: 'bottomright'}); var oLegend = L.control({position: 'bottomright'});
@@ -260,13 +249,18 @@ function getBoundsZoomLevel(bounds, mapDim) {
return Math.min(latZoom, lngZoom, ZOOM_MAX); return Math.min(latZoom, lngZoom, ZOOM_MAX);
} }
function getOffsetCenter(oMap, oMapCenter) { L.Map.include({
var oCenter = (typeof oMapCenter == 'object')?$.extend({}, oMapCenter):oMap.getCenter(); setOffsetView: function (iOffsetRatioX, oCenter, iZoomLevel) {
var oBounds = oMap.getBounds(); var oCenter = (typeof oCenter == 'object')?$.extend({}, oCenter):this.getCenter();
var iOffsetX = (oBounds.getEast() - oBounds.getWest()) * self.tmp('map_offset')/2; iZoomLevel = iZoomLevel || this.getZoom();
var oBounds = this.getBounds();
var iOffsetX = (oBounds.getEast() - oBounds.getWest()) * iOffsetRatioX / ( 2 * Math.pow(2, iZoomLevel - this.getZoom()));
oCenter.lng = oCenter.lng - iOffsetX; oCenter.lng = oCenter.lng - iOffsetX;
return oCenter;
this.setView(oCenter, iZoomLevel);
} }
});
function onFeedScroll(){ function onFeedScroll(){
var $Box = $(this); var $Box = $(this);
@@ -330,8 +324,7 @@ function getPost(asPost) {
.click(function(){ .click(function(){
var $This = $(this); var $This = $(this);
var oCenter = L.latLng(parseFloat($This.data('lat')), parseFloat($This.data('lng'))); var oCenter = L.latLng(parseFloat($This.data('lat')), parseFloat($This.data('lng')));
//self.tmp('center_on', oCenter); self.tmp('map').setOffsetView(self.tmp('map_offset'), oCenter, 13);
self.tmp('map').setView(oCenter, 13);
}) })
); );
sClass = 'compass'; sClass = 'compass';