Blog d'un Éternel Geek

Quand La technologie se met trop au service de la géolocalisation

http://vivageek.com/data/images/com/geomaps.jpg

 

Loin des cookies qui sont et reste une infection majeure de nos appareils technologiques au profit des gosses entreprises de marketing, la géolocalisation n'en demeure pas moins également le fléau du 21e siècle.

 

Qui aurait cru en entamant le web 3.0 qu'HTML5 et PHP6 renforcerait son pouvoir sur nous ?

 

On n'est pas dans les clichés d'homme arborant des chapeaux d'aluminium sur la tête, qui tout en parcourant la rue crie au complot de l'état. Pourtant, ils ont raison ou du moins loin d'avoir tort.

 

Vous savez ce qui m'attriste dans tout cela, c'est que la technique utilisé pour persuader la masse est d'accentuer l'aspect risible de cette situation pour en détourner sa vraie valeur : On est géolocalisé tout le temps, partout grâce aux mobiles, pc, plate-forme web, google,…

 

Dites moi d'où je viens et je te dirais qui tu es.

 

La géolocalisation est devenue un art de vivre, on l'a accepté comme un compagnon indispensable. Pourtant, on crié sur ces fous qui prétendaient que l'on pouvait nous localiser au mètre près, il y a de cela quelques années à peine. Ils ont réussi à nous mentir durant des années, et maintenant qu'ils ont besoin de nous dire la vérité, ils nous font gober qu'il s'agit d'un bien pour la communauté internet mais plus encore pour l'humanité.

 

Le bien du plus fort, l'emporte sur le bien du plus faible.

 

Alors, qu'est-ce qui a changé ?

 

L'utilité. Tout ce qui nous est utile, on lui indiffère ses défauts et ses imperfections qui pourraient entraver notre besoin. Précédemment, on le savait, mais on nous avait conditionnés et crier au loup faisait de nous des êtres bizarres, donc pas vraiment cool et "sociability correct". Maintenant, ce n'est pas grave puisqu'on accepte la vérité avec panache et surtout déférence.

 

Windows 10 nous écoute, nous localise, peu importe c'est pour notre bien. Mon mobile permet une fois la géolocalisation acceptée de savoir où je suis n'importe quand, peu importe cela permet avec mes amis cookies d'avoir des coupons réductions pour les fast-foods Asia près de chez moi.

 

Mais qui sont ces nouveaux fous qui nous exhortent que non seulement on nous géolocalise facilement mais en plus on n'interagit discrètement sur notre comportement.

 

Je suis lucide, je mange asiatique, car cela me conviens.

 

Et non pas parce que depuis 1 mois j'ai accepté la géolocalisation et qu'avec les cookies qui ont fait part de mes envies, horaires et divers autres petits secrets sur ma vie, ont permis à des sociétés de marketing de profiter de la situation en vendant mon âme aux entreprises Asia.

 

Depuis, elle m'envoie des rappels aux heures des repas, des coupons de réduction pour moi et mes amies (eux aussi géolocaliser). Depuis peu, je reçois aussi des courriels d'un centre de yoga, j'en avais besoin, on m'en avait parlé sur le site zenhobbies, et il s'avère que par chez moi il y aurait un centre.

 

Je promets que je n'ai pas changé mes habitudes à cause d'un tiers, non, ce serait contraire à l'éthique internet d'avouer cela. Pourtant, j'ai bien changé, ma mère qui n'utilise pas vraiment de réseau géolocalisé m'a confié qu'elle me voyait moins aux heures des repas. Elle qui adorait me préparer ses fameuses tagliatelles au fromage, et mes collègues avec qui j'allais au football ont heureusement compris mon indisponibilité à cause de mes cours de yoga.

 

La géolocalisation est la capacité à se positionner géographiquement sur un plan ou une carte.

 

Conscient que cela vous intéresse, nous allons voir ensemble sa configuration simple, son principe de base et son application pratique au moyen d'HTML5 et JavaScript.

 

Cet article est pour vous faire comprendre la facilité de connaître grâce au réseau votre situation géographique. Cela peut paraître redondant, mais savoir où vous vous trouvez peut avoir des conséquences catastrophiques suivant les individus.

 

Il y a de cela plusieurs années, des cambrioleurs sévissaient sur des personnes riches en géolocalisant leurs mobiles, ils pouvaient ainsi agir en toute impunité sans être dérangé afin de dévaliser leurs demeures.

 

Le réseau n'est pas qu'un repaire de pirates informatiques mais aussi de malfrats.

 

La méthode

 

Plusieurs applications utilisent la méthode de positionnement comme les recherches conceptualisées, les calculs d'itinéraires, les partages de localisations,…, ils sont basés sur des méthodes existantes :

 

  • GPS (la plus connu)
  • Galileo
  • Triangulation dans un réseau de téléphonie
  • Adresse IP

 

Un navigateur web peut combiner plusieurs de ces méthodes suivantes si elles sont connectées sur le réseau d'internet.

Par exemple, une plate-forme mobile équipée d'un GPS, le navigateur pourra utiliser le positionnement géographique, mais sur un poste fixe qui n'en est pas équipé devra alors se baser sur l'IP.

 

http://vivageek.com/data/images/com/geomaps1.jpg

Principe

 

Vous avez tous déjà fait de la géographie à l'école et certainement eut à lire ou à étudier des cartes. Une position 3D se fonde sur les coordonnées relatives à la latitude, longitude et altitude.

 

Le point de convergence de ces 3 points reliés entre eux permet d'avoir la position exacte dans un espace tridimensionnel de la cible.

 

http://vivageek.com/data/images/com/geomaps2.png

Souvent, sur un site qui demande ce genre de géolocalisation, vous avez une demande d'autorisation.

L'api a la capacité de n'effectuer qu'une seule requête de positionnement ou répété dans le cas d'un déplacement sur la carte. Il faut aussi savoir que le positionnement peut être erroné (aléas des connexions) ou fausser (VPN, Proxy,…).

 

 

Coder un Géopositionnement

 

 

W3C API :    http://www.w3.org/TR/geolocation-API/

 

 

Lorsqu'il s'agit de créer une application de géolocalisation, on va surtout utiliser Javascript et DOM. Pour le codage on va faire appel à l'objet "geolocation", membre de "navigator".

 

L'instruction est simple avec if, else :

 

If (navigator.geolocation) {
// API
} else {
// si PAS d'API, Alternative
}

 

 

Simple cependant, pour réaliser cette fonction, il nous faut des méthodes :

 

  • getCurrentPosition() // permet la requête de positionnement
  • watchPosition() // Pour suivre les déplacements de position

 

 

W3C nous montre un exemple de fonction :

 

 

   function showMap(position) {
     // Montrer une carte centrée au (position.coords.latitude, position.coords.longitude).
   }
    // une seule requête de demande de position.
   navigator.geolocation.getCurrentPosition(showMap);

 

 

On voit qu'on utilise ce que l'on appelle une fonction de "callback" comme argument. En fait, il appelle deux "callback" :

 

  • une pour le succès de manière asynchrone, celle-ci reste obligatoire
  • une en cas d'échec (falcutative)

 

Les algorithmes et ceux peu importe leur dépendance et langages informatiques doivent toujours comporter lors d'une fonction la possibilité "ÉCHAP". Si cela ne marche pas, le système demandera, je fais quoi ? Sans réponse de notre part, il se mettra en "ERROR".

 

 

C'est à nous de lui dire quoi faire dans toutes situations. Le codage reste simple mais plus vous entrer dans la composition d'un codage adapté avec toutes les réponses que souhaite la machine, vous vous rendrez compte qu'il s'allonge et devient complexe.

 

 

De même un exemple lors de requêtes répétées pour un déplacement sur la carte avec watchPosition :

 

 

function scrollMap(position) {     
// Défiler la carte de façon à ce qu'il soit centré au (position.coords.latitude, position.coords.longitude).   
}   
 // Demande répétée des mises à jour.   
var watchId = navigator.geolocation.watchPosition(scrollMap);    
function buttonClickHandler() 
{     
// Annuler les mises à jour lorsque l'utilisateur clique sur un bouton.     navigator.geolocation.clearWatch(watchId);   
}

 

 

D'autres exemples sont en place sur le site W3C. Donc, pour localiser il nous faut travailler avec la position et les coordonnées, voici un tableau des propriétés :

 

 

Propriété

Unité

Type

Timestamp

Millisecondes

DomTimeStamp

coords

Millisecondes

Coordinates

longitude

Degré décimaux

double

latitude

Degré décimaux

double

Altitude

mètres

double

Speed

Mètre/seconde

double

 

Lorsque l'on voit la facilité pour utiliser la géolocalisation, on se demande encore comment se cacher avec la technologie.

 

On va faire un petit exemple simple avec juste votre navigateur. Copier/coller le code dans un fichier puis donner lui comme extension HTML (exemple; geo.html) et lancer le dans votre navigateur, une fois fait accepter la géolocalisation et visualisez le résultat.

 

<!DOCTYPE html>
<html>
   <head>
       <!-- En-tête de la page -->
       <meta charset="utf-8" />
       <title>Géolocalisation</title>
<script>
// Fonction d'appel
function succesGeo(position) {
   var infopos = "Position déterminée : <br/>";
   infopos += "Latitude : "+position.coords.latitude+"</br>";
   infopos += "Longitude : "+position.coords.longitude+"</br>";
   infopos += "Altitude : "+position.coords.altitude+"</br>";
   document.getElementById("maposition").innerHTML = infopos;
}
// demande la position
navigator.geolocation.getCurrentPosition(succesGeo);
</script>
   </head>
   <body>
       <!-- Corps de la page -->
<div id="maposition"></div>
   </body>
</html>

 

 

En effet, c'est bluffant, on a nos coordonnées avec un script plutôt simplissime. Beaucoup d'API permette en prime d'afficher le résultat sur une carte.

 

L'API la plus connu et utilisé est Google Maps.

 

Voici la liste des API Map, suivi d'un code qui intègre Google simplement :

 

Google Maps

https://developers.google.com/maps/

 

Bing Maps

http://www.microsoft.com/maps/

 

OpenLayers

http://openlayers.org/

 

Nokia Maps

http://api.maps.nokia.com/2.1.0/devguide/index.html

 

Amazon Maps API

https://developer.amazon.com/public/apis

 

 

De même, on va faire un exemple pour nous situer cette fois-ci au sein d'une carte appelée par google maps (API), copier/coller le code suivant dans un fichier geomap.html et lancé via votre navigateur.

 

Code mettant en pratique l'API de google dans votre navigateur :

 

<!DOCTYPE html>
<html>
   <head>
       <!-- En-tête de la page -->
       <meta charset="utf-8" />
       <title>Géolocalisation avec API Google Maps</title>
                   <!-- Chargement de l'API Google Maps -->
                   <script src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script>
if(navigator.geolocation){
// Fonction d'appel
function succesGeo(position) {
   var infopos = "Position déterminée : <br/>";
   infopos += "Latitude : "+position.coords.latitude+"</br>";
   infopos += "Longitude : "+position.coords.longitude+"</br>";
   document.getElementById("maposition").innerHTML = infopos;       
         // Nouvel objet LatLng pour google map
         var latlng = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);       
         // Options sur la carte
         var optionsGmaps = {
         mapTypeControl: false,
         center: latlng,
         navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL},mapTypeId: google.maps.MapTypeId.ROADMAP,
         zoom: 15
         };       
         // Initialisation de la carte
         var map = new google.maps.Map(document.getElementById("map"), optionsGmaps);       
         // Marqueur de position
         var marker = new google.maps.Marker({
         position : latlng,
         map: map,
         title : "Vous êtes ici"
         });       
}
// Requête de géolocalisation
navigator.geolocation.getCurrentPosition(succesGeo);
}
</script>
   </head>
   <body>
       <!-- Corps de la page -->
<div id="maposition"></div>
<div id="map" style="width:640px;height:480px"></div>
   </body>
</html>

 

 

Résultat escompté : (J'ai bien entendu brouiller les coordonnées)

Vous pouvez l'agrandir en jouant sur widht et height dans le bloc Div de "map".

 

http://vivageek.com/data/images/com/geomap.png

 

Comme vous le constater, votre navigateur vous demande encore l'autorisation de partager votre géolocalisation et ceux grâce à par exemple pour mozilla :

 

  • geo.enabled (activation, désactivation position partagé).
  • geo.wifi.uri (qui indique l'adresse intérrogé avec IP/WIFI).

 

 

Simple comme bonjour mais terriblement efficace.

 

On vient de voir que le positionnement géographique n'est certes pas encore au point au millimètre près, qu'il est tributaire de nombreux facteurs comme avoir un appareil technologique branché sous réseau et géolocaliser, mais à notre époque peu ne possède pas cette technologie.

 

Avec l'avènement du web2.0 et du 3.0, l'arrivée de l'intelligence artificielle, des puces sous-cutanées et surtout de la mise sous réseau de notre vie (véhicule, frigo, chauffage,….), nous serons localisables à tout moment et surtout à tout endroit.

 

Les programmes que je vous ai montrés sont basiques mais pourtant efficaces. La plupart des applications sont sous API Geo afin soi-disant d'améliorer votre expérience, je pense que de ne plus avoir d'intimité sur la planète reste le vrai problème.

 

L'avenir nous dira si cette masse de technologie aura apporté un plus ou un mal  au sein de nos vies.

 

Merci de m'avoir lu, à bientôt.

 

Source : W3C, mes connaissances en HTML et JavaScript. Les scripts étant déjà pratiquement donnés par les sites émetteurs le reste n'est que du bon sens.






 Geek me     Je suis un Geek dans l'âme. 18 ans à silloner internet pour récolter des informations afin de comprendre son fonctionnement. Idéalement j'étudie également le comportement humain.

C'est afin de vous partager mes connaissances que j'ai ouvert ce blog alors je vous souhaite une bonne lecture.



À lire également


Écrire un commentaire

Votre adresse de messagerie ne sera pas publiée.

Quelle est la troisième lettre du mot odcmk ? :