Plusieurs façons de localiser l'emplacement géographique: adresse IP, GPS, WiFi, GSM / CDMA
Processus d'acquisition de l'emplacement géographique :1. L'utilisateur ouvre une application Web qui doit obtenir un emplacement géographique.
2. L'application demande le navigateur à l'emplacement géographique et le navigateur apparaît d'une requête pour demander si l'utilisateur partage l'emplacement géographique.
3. En supposant que l'utilisateur le permet, le navigateur interroge les informations pertinentes des paramètres.
4. Le navigateur envoie des informations pertinentes à un serveur de localisation de confiance et le serveur revient à l'emplacement géographique spécifique.
Mise en œuvre du statut géographique HTML5 :1. Implémentez la technologie d'obtention des utilisateurs en fonction du navigateur (pas de support backend requis)
2. Localisez avec précision l'emplacement géographique de l'utilisateur (la précision est jusqu'à 10m, selon l'équipement)
3. Suivez en continu l'emplacement géographique de l'utilisateur
4. Informations de localisation présentes avec interactif avec Google Map ou Baidu Map
L'API de géolocalisation est utilisée pour partager les informations de géolocalisation actuelles de l'utilisateur avec des sites de confiance, ce qui implique des problèmes de confidentialité et de sécurité de l'utilisateur. Par conséquent, lorsqu'un site doit obtenir la géolocalisation actuelle de l'utilisateur, le navigateur invitera l'utilisateur à autoriser ou à rejeter.
Voyons d'abord quels navigateurs prennent en charge l'API Geolocation:
IE9.0 +, FF3.5 +, Safari5.0 +, Chrome5.0 +, Opera10.6 +, iPhone3.0 +, Android2.0 +
L'API Geolocation existe dans l'objet Navigator et ne contient que 3 méthodes:
1. GetCurrentPosition // Emplacement actuel
2. Emplacement de surveillance de la surveillance //
3. Clearwatch // Surveillance claire
Navigator.Geolocation.getCurrentPosition (…, fonction (erreur) {
commutateur (error.code) {
Erreur de cas.Timeout:
alert ("Connexion chronométrée, veuillez réessayer");
casser;
caser error.permission_denided:
alert ("vous avez rejeté l'utilisation du service de partage de localisation, la requête a été annulée");
casser;
caser error.position_unavailable:
Alert (", désolé, vous ne pouvez pas fournir des services de localisation à votre planète pour le moment");
casser;
}
});
WatchPosition est comme un tracker associé à Clearwatch.
WatchPosition est un peu comme la façon dont SetInterval et ClearInterval Work.
var watchPositionId = Navigator.Geolocation.WatchPosition (Success_Callback, Error_Callback, Options);
Navigator.Geolocation.ClearWatch (WatchPositionId);
HTML 5 fournit une série d'API telles que l'emplacement géographique pour les utilisateurs, ce qui facilite les utilisateurs à créer des applications géographiques LBS. Tout d'abord, dans un navigateur qui prend en charge HTML 5, lors de l'ouverture de l'API, il demandera si l'utilisateur accepte d'utiliser l'API, sinon il ne sera pas activé, en garantissant la sécurité.
1. Allumez pour déterminer si le navigateur prend en charge l'API LBSfonction isgeOlOcAyAPIAVALABLE ()
{
var location = "Non, la géolocalisation n'est pas prise en charge par ce navigateur.";
if (window.navigator.geolocation) {
Location = "Oui, la géolocalisation est prise en charge par ce navigateur.";
}
alerte (emplacement);
}
Dans l'exemple ci-dessus, l'exception a également été capturée dans la méthode DisplayError;
2. Obtenez l'emplacement géographique de l'utilisateurCela se fait à l'aide de GetCurrentPosition;
fonction requestPosition () {
if (nav == null) {
nav = window.navigator;
}
if (nav! = null) {
var geoloc = nav.Geolocation;
if (geoLoc! = null) {
geoloc.getCurrentPosition (SuccessCallback);
}
autre {
alert ("L'API de géolocalisation n'est pas prise en charge dans votre navigateur");
}
}
autre {
alerte ("Navigator n'est pas trouvé");
}
}
Lorsque l'emplacement géographique est obtenu avec succès, une méthode de rappel sera générée pour traiter le résultat retourné.
fonction setLocation (val, e) {
document.getElementById (e) .Value = Val;
}
Fonction SuccessCallback (position)
{
setLocation (position.coords.Latitude, "latitude"); setLocation (position.coords.longitude, "longitude");
}
3. Une question très courante est de savoir comment suivre l'évolution de l'emplacement géographique des utilisateurs. Ici, nous résumons les deux API utilisées.1 vigilant
Les exemples sont les suivants:
fonction écouteforPositionUpdates () {
if (nav == null) {
nav = window.navigator;
}
if (nav! = null) {
var geoloc = nav.Geolocation;
if (geoLoc! = null) {
watsidId = geoLoc.WatchPosition (SuccessCallback);
} autre {
alert ("L'API de géolocalisation n'est pas prise en charge dans votre navigateur");
}
} autre {
alerte ("Navigator n'est pas trouvé");
}
}
Ensuite, dans SuccessCallback, vous pouvez définir le dernier emplacement géographique à afficher:
fonction SuccessCallback (position) {
setText (position.coords.Latitude, "latitude"); setText (position.coords.longitude, "longitude");
}
Si vous ne voulez pas de suivi en temps réel, vous pouvez l'annuler:
fonction clearwatch (watsidId) {
window.navigator.geolocation.clearwatch (watchID);
}
4. Comment gérer les exceptionsLorsqu'une exception est rencontrée, vous pouvez l'attraper:
if (geoLoc! = null) {
geoLoc.getCurrentPosition (SuccessCallback, errorCallback);
}
fonction errorCallback (erreur) {
var message = "";
commutateur (error.code) {
caser error.permission_denided:
message = "Ce site Web n'a pas la permission d'utiliser"
+ "L'API Geolocation";
casser;
caser error.position_unavailable:
message = "La position actuelle n'a pas pu être déterminée.";
casser;
caser error.permission_denided_timeout:
message = "La position actuelle n'a pas pu être déterminée"
+ "Dans le délai d'expiration spécifié.";
casser;
}
if (message == "") {
var strerorCode = error.code.toString ();
Message = "La position n'a pas pu être déterminée en raison de"
+ "Une erreur inconnue (code:" + StronRorCode + ").";
}
alerte (message);
}
5. Afficher l'emplacement sur Google Map (à condition que l'API Google Map soit définie)fonction getCurrentLocation ()
{
if (navigator.geolocation)
{
Navigator.Geolocation.getCurrentPosition (ShowMyPosition, Downror);
}
autre
{
alert ("Non, l'API de géolocalisation n'est pas prise en charge par ce navigateur.");
}
}
Fonction Showmyposition (position)
{
var coordonnées = position.coords.Latitude + "," + position.coords.longitude;
var map_url = "http://maps.googleapis.com/maps/api/staticmap?center="
+ coordonnées + "& zoom = 14 & size = 300x300 & capteur = false";
document.getElementById ("googlemap"). innerhtml = "<img src = '" + map_url + "' />";
}
Fonction Downror (erreur)
{
commutateur (error.code)
{
caser error.permission_denided:
alert ("Ce site Web n'a pas la permission d'utiliser l'API Geolocation")
casser;
caser error.position_unavailable:
alerte ("La position actuelle n'a pas pu être déterminée.")
casser;
Erreur de cas.Timeout:
Alerte ("La position actuelle n'a pas pu être déterminée dans la période de temps libre spécifiée.")
casser;
Case Error.unknown_error:
alerte ("La position n'a pas pu être déterminée en raison d'une erreur inconnue.")
casser;
}
}