Entendiendo ejemplo de geolocalización

Estoy viendo un ejemplo de geolocalización que le da a un usuario instrucciones para Alexanderplatz, Berlín desde su geolocalización, pero tengo problemas para entender las dos alternativas separadas:

function () { // Gelocation fallback: Defaults to Stockholm, Sweden createMap({ coords : false, address : "Sveavägen, Stockholm" }); } ); } else { // No geolocation fallback: Defaults to Lisbon, Portugal createMap({ coords : false, address : "Lisbon, Portugal" }); 

Aquí está el código completo:

   (function () { var directionsService = new google.maps.DirectionsService(), directionsDisplay = new google.maps.DirectionsRenderer(), createMap = function (start) { var travel = { origin : (start.coords)? new google.maps.LatLng(start.lat, start.lng) : start.address, destination : "Alexanderplatz, Berlin", travelMode : google.maps.DirectionsTravelMode.DRIVING // Exchanging DRIVING to WALKING above can prove quite amusing :-) }, mapOptions = { zoom: 10, // Default view: downtown Stockholm center : new google.maps.LatLng(59.3325215, 18.0643818), mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("map"), mapOptions); directionsDisplay.setMap(map); directionsDisplay.setPanel(document.getElementById("map-directions")); directionsService.route(travel, function(result, status) { if (status === google.maps.DirectionsStatus.OK) { directionsDisplay.setDirections(result); } }); }; // Check for geolocation support if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function (position) { // Success! createMap({ coords : true, lat : position.coords.latitude, lng : position.coords.longitude }); }, function () { // Gelocation fallback: Defaults to Stockholm, Sweden createMap({ coords : false, address : "Sveavägen, Stockholm" }); } ); } else { // No geolocation fallback: Defaults to Lisbon, Portugal createMap({ coords : false, address : "Lisbon, Portugal" }); } })();  

El código verificará la compatibilidad de geolocalización del navegador al principio:

 // Check for geolocation support if (navigator.geolocation) { 

Si el navegador no admite esa nueva API, la twig else establecerá la dirección de los mapas en Lisboa, Portugal :

 // else branch of geolocation check else { // No geolocation fallback: Defaults to Lisbon, Portugal createMap({ coords : false, address : "Lisbon, Portugal" }); } 

Pero si el navegador ofrece la API de geolocalización, el código intentará obtener la posición actual.
Hay posibilidades en las que falla la recuperación, por ejemplo, si el usuario no permite usar su ubicación. Luego, la dirección de los mapas se establecerá en Sveavägen, Estocolmo .

 navigator.geolocation.getCurrentPosition( function (position) { // This is the success function: location stored in position! }, function () { // This is the 'fail' function: location could not be retreived! } );