From 4cc79138177a14b478df66b5a7c74d06a40f8397 Mon Sep 17 00:00:00 2001 From: Jan-Piet Mens Date: Wed, 30 Sep 2015 16:55:18 +0200 Subject: [PATCH] bounds-fit if &fit=1 closes #48 --- docroot/last/functions.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/docroot/last/functions.js b/docroot/last/functions.js index cd4aecf..38bc42c 100644 --- a/docroot/last/functions.js +++ b/docroot/last/functions.js @@ -1,13 +1,17 @@ var map; +var do_fit = false; var markers = {}; var livemarkers = true; function initialize() { var lat = 50.098280; var lon = 10.187189; + var params = getSearchParameters(); var center = new google.maps.LatLng(lat,lon); + do_fit = (params.fit) ? true : false; + mapOptions = { center: center, zoom: 3, // 9, @@ -30,6 +34,23 @@ function clog(upd, id, s) { console.log(upd + ": " + ident + " " + s); } +/* http://stackoverflow.com/questions/5448545/ */ +function getSearchParameters() { + var prmstr = window.location.search.substr(1); + return prmstr != null && prmstr != "" ? transformToAssocArray(prmstr) : {}; +} + +function transformToAssocArray( prmstr ) { + var params = {}; + var prmarr = prmstr.split("&"); + for ( var i = 0; i < prmarr.length; i++) { + var tmparr = prmarr[i].split("="); + params[tmparr[0]] = tmparr[1]; + } + return params; +} + + /* * Close all the infowindows in the `markers' object, and then open the * infowindow in the specified marker. @@ -123,7 +144,9 @@ function map_marker(loc) markers[id] = m; } - fitbounds(); + if (do_fit) { + fitbounds(); + } } google.maps.event.addDomListener(window, 'load', initialize);