63 lines
2.3 KiB
JavaScript

// LOCATION HANDLING /////////////////////////////////////////////////
// i.e. setting initial position and storing new position after moving
// retrieves current position from map and stores it cookies
window.storeMapPosition = function() {
var m = window.map.getCenter();
if(m['lat'] >= -90 && m['lat'] <= 90)
writeCookie('ingress.intelmap.lat', m['lat']);
if(m['lng'] >= -180 && m['lng'] <= 180)
writeCookie('ingress.intelmap.lng', m['lng']);
writeCookie('ingress.intelmap.zoom', window.map.getZoom());
}
// either retrieves the last shown position from a cookie, from the
// URL or if neither is present, via Geolocation. If that fails, it
// returns a map that shows the whole world.
window.getPosition = function() {
if(getURLParam('latE6') && getURLParam('lngE6')) {
console.log("mappos: reading email URL params");
var lat = parseInt(getURLParam('latE6'))/1E6 || 0.0;
var lng = parseInt(getURLParam('lngE6'))/1E6 || 0.0;
var z = parseInt(getURLParam('z')) || 17;
return {center: new L.LatLng(lat, lng), zoom: z};
}
if(getURLParam('ll')) {
console.log("mappos: reading stock Intel URL params");
var lat = parseFloat(getURLParam('ll').split(",")[0]) || 0.0;
var lng = parseFloat(getURLParam('ll').split(",")[1]) || 0.0;
var z = parseInt(getURLParam('z')) || 17;
return {center: new L.LatLng(lat, lng), zoom: z};
}
if(getURLParam('pll')) {
console.log("mappos: reading stock Intel URL portal params");
var lat = parseFloat(getURLParam('pll').split(",")[0]) || 0.0;
var lng = parseFloat(getURLParam('pll').split(",")[1]) || 0.0;
var z = parseInt(getURLParam('z')) || 17;
return {center: new L.LatLng(lat, lng), zoom: z};
}
if(readCookie('ingress.intelmap.lat') && readCookie('ingress.intelmap.lng')) {
console.log("mappos: reading cookies");
var lat = parseFloat(readCookie('ingress.intelmap.lat')) || 0.0;
var lng = parseFloat(readCookie('ingress.intelmap.lng')) || 0.0;
var z = parseInt(readCookie('ingress.intelmap.zoom')) || 17;
if(lat < -90 || lat > 90) lat = 0.0;
if(lng < -180 || lng > 180) lng = 0.0;
return {center: new L.LatLng(lat, lng), zoom: z};
}
setTimeout("window.map.locate({setView : true});", 50);
return {center: new L.LatLng(0.0, 0.0), zoom: 1};
}