utilisateurs de géolocalisation via html5 et javascript

Je suis en train d'obtenir les utilisateurs de géolocalisation via le html5 la géolocalisation de l'api, et j'utilise le bout de code suivant:

if (navigator.geolocation) {
    var timeoutVal = 10 * 1000 * 1000;
    navigator.geolocation.getCurrentPosition(
      displayPosition, 
      displayError,
      { enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 }
    );
  }
  else {
     //DO SOME STUFF HERE
  }


  function displayPosition(position) {

    //configuration
    var myZoom = 12;
    var myMarkerIsDraggable = true;
    var myCoordsLenght = 6;
    var defaultLat = position.coords.latitude;
    var defaultLng = position.coords.longitude;
    document.getElementById('latitude').value = defaultLat;
    document.getElementById('longitude').value = defaultLng;
    /*
      1. creates the map
      2. zooms
      3. centers the map
      4. sets the map’s type
    */
    var map = new google.maps.Map(document.getElementById('canvas'), {
      zoom: myZoom,
      center: new google.maps.LatLng(defaultLat, defaultLng),
      mapTypeId: google.maps.MapTypeId.ROADMAP
    });


    });
    //centers the map on markers coords
    map.setCenter(myMarker.position);
    //adds the marker on the map
    myMarker.setMap(map);
  }

  function displayError(error) {
    var errors = { 
      1: 'Permission denied',
      2: 'Position unavailable',
      3: 'Request timeout'
    };
    alert("Error: " + errors[error.code]);
  }
});

Le problème avec cette approche est que, quelques utilisateurs ont constaté qu'il est difficile à utiliser. Quelques fois, ils ont cliqué Refuser au lieu de Permettre et fixer sur l'écran. Donc, à partir de la convivialité point de vue, je pense qu'une bonne approche serait:

  1. Leur demander la permission.
  2. Attendre 3 secondes, si ils cliquez sur refuser ou de ne pas répondre, d'utiliser la propriété intellectuelle pour montrer la géolocalisation sur la carte.

Comment puis-je accomplir la deuxième étape de mon ci-dessus des extraits.
S'il vous plaît laissez-moi savoir, merci!
Cependant, ce serait une meilleure façon de gérer

Est votre gestionnaire d'erreur (displayError()) n'est pas appelée lorsque l'utilisateur clique sur Refuser, ou lorsque la demande de fois? Si elle est appelé (comme il se doit), c'est là que vous aimeriez faire votre deuxième étape (utiliser l'IP de l'utilisateur à faire de géolocalisation).

OriginalL'auteur whatf | 2013-02-01