diff options
author | bfabiszewski <github@ushuaia.pl> | 2013-06-21 20:24:40 +0200 |
---|---|---|
committer | bfabiszewski <github@ushuaia.pl> | 2013-06-21 20:24:40 +0200 |
commit | fcd96c74cadabafa7494844973c4e4f5aa822e9e (patch) | |
tree | 8aa9fa523979ad3d6b90317621d53e31026b3332 | |
parent | 458f1449cb262b73884170b9a0ea6a2b5485cacd (diff) | |
download | RunnerUpLive-fcd96c74cadabafa7494844973c4e4f5aa822e9e.zip |
preserve bounds while switching map apis
-rwxr-xr-x | api_gmaps.js | 17 | ||||
-rwxr-xr-x | api_openlayers.js | 15 | ||||
-rwxr-xr-x | main.js | 5 |
3 files changed, 36 insertions, 1 deletions
diff --git a/api_gmaps.js b/api_gmaps.js index d4132ce..ce71491 100755 --- a/api_gmaps.js +++ b/api_gmaps.js @@ -171,3 +171,20 @@ function addChartEvent(chart) { } }); } +//((52.20105108685229, 20.789387865580238), (52.292069558807135, 21.172192736185707)) +function getBounds() { + var b = map.getBounds().toString(); + var bounds = b.split(',',4); + var lat_sw = bounds[0].replace(/\(/g,''); + var lon_sw = bounds[1].replace(/[ )]/g,''); + var lat_ne = bounds[2].replace(/[ (]/g,''); + var lon_ne = bounds[3].replace(/[ )]/g,''); + return [lon_sw,lat_sw,lon_ne,lat_ne]; +} + +function zoomToBounds(b) { + var sw = new google.maps.LatLng(b[1],b[0]); + var ne = new google.maps.LatLng(b[3],b[2]); + var bounds = new google.maps.LatLngBounds(sw,ne); + map.fitBounds(bounds); +} diff --git a/api_openlayers.js b/api_openlayers.js index 434c8e6..7c7c622 100755 --- a/api_openlayers.js +++ b/api_openlayers.js @@ -167,3 +167,18 @@ function addChartEvent(chart) { } }); } +//20.597985430276808,52.15547181298076,21.363595171488573,52.33750879522563 +function getBounds() { + var b = map.getExtent().transform(mercator,wgs84).toString(); + var bounds = b.split(',',4); + var lon_sw = bounds[0]; + var lat_sw = bounds[1]; + var lon_ne = bounds[2]; + var lat_ne = bounds[3]; + return [lon_sw,lat_sw,lon_ne,lat_ne]; +} + +function zoomToBounds(b) { + var bounds = new OpenLayers.Bounds(b).transform(wgs84,mercator); + map.zoomToExtent(bounds); +} @@ -282,7 +282,9 @@ function setTime() { } // dynamic change of map api +var savedBounds; function loadMapAPI(api) { + savedBounds = getBounds(); document.getElementById("map-canvas").innerHTML = ''; var url = new Array(); if (api=='gmaps') { @@ -322,7 +324,8 @@ function waitAndInit(api) { return; } loadTime = 0; - loadTrack(userid,trackid,1); + zoomToBounds(savedBounds); + loadTrack(userid,trackid,0); } function addScript(url) { |