Maison  >  Article  >  interface Web  >  Utiliser JS pour obtenir la méthode de localisation géographique actuelle summary_javascript skills

Utiliser JS pour obtenir la méthode de localisation géographique actuelle summary_javascript skills

WBOY
WBOYoriginal
2016-05-16 16:25:591188parcourir

Au cours du développement du projet de cette année, je suis d'abord entré en contact avec le développement WEB mobile. Je l'ai développé en apprenant le HTML5, principalement en utilisant la technologie JQuery Mobile. J'ai trouvé que cela ne convenait pas aux produits Internet. Utilisez simplement quelques fonctions. Je suis entré en contact avec la fonction de positionnement pour la première fois lors du processus de développement du WEB mobile. Grâce aux principaux moteurs de recherche, j'ai découvert que le positionnement sur le téléphone mobile se fait via le navigateur. Lors de la première utilisation du navigateur sur PC, une invite apparaîtra indiquant « Voulez-vous activer la fonction de positionnement ? » Lorsque le patron a vu cette invite, il a estimé que ce n'était pas bon pour l'expérience utilisateur. Si ce n'est pas bon, alors je peux l'implémenter d'une autre manière. . Ce n’est pas grave. L’expression du patron a radicalement changé et il a dit : Non. Vous devriez vivre cette expérience. Ne faisons-nous pas tout cela pour gagner du temps afin de pouvoir publier de nouvelles fonctionnalités le plus rapidement possible ?

1. Méthode de positionnement WEB du téléphone portable :

Copier le code Le code est le suivant :

var getLocation = function (successFunc, errorFunc) { //successFunc obtient la fonction de rappel de réussite du positionnement, errorFunc obtient le rappel d'échec de positionnement
//Définissez d'abord la ville par défaut
var defCity = {
         identifiant : '000001',
         nom : « Ville de Pékin »,
Date : curDateTime()//Obtention de la méthode de l'heure actuelle
};
//Ville par défaut
$.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(defCity), { expire : 1, chemin : '/' });
Si (navigateur.géolocalisation) {
         navigator.geolocation.getCurrentPosition(function (position) {
            var lat = position.coords.latitude;
            var lon = position.coords.longitude;
//var map = new BMap.Map("container"); //Créer une instance de carte
               var point = new BMap.Point(lon, lat); // Créer des coordonnées de point
            var gc = new BMap.Geocoder();
gc.getLocation(point, fonction (rs) {
              var addComp = rs.addressComponents;
              var curCity = {
                   identifiant : '',
Nom : addComp.province,
date : curDateTime()
                };
//Ville de localisation actuelle
                    $.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expire : 7, chemin : '/' });
//alert(addComp.province ", " addComp.city ", " addComp.district ", " addComp.street);
Si (successFunc != non défini)
                      successFunc(addComp);
            });
},
fonction (erreur) {
                commutateur (code d'erreur) {
               cas 1 :
alert("Service de localisation refusé.");
pause;
                cas 2 :
alert("Les informations de localisation ne peuvent pas être obtenues temporairement.");
pause;
                cas 3 :
alert("Délai expiré pour obtenir les informations de localisation.");
pause;
                                                                                                                                                                                                                                                                              par défaut :
alert("Erreur inconnue.");
pause;
            }
          var curCity = {
                  identifiant : '000001',
                  nom : 'Pékin',
date : curDateTime()
            };
//Ville par défaut
                $.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expire : 1, chemin : '/' });
                if (errorFunc != non défini)
               errorFunc(erreur);
            }, { délai d'attente : 5 000, activateHighAccuracy : true });
} autre {
alert("Votre navigateur ne prend pas en charge l'obtention d'informations de localisation géographique.");
Si (errorFunc != non défini)
​​​​​​ errorFunc("Votre navigateur ne prend pas en charge l'obtention d'informations de localisation géographique.");
>
};
var showPosition = fonction (position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
//var map = new BMap.Map("container"); // Créer une instance de carte
var point = new BMap.Point(lon, lat); // Créer des coordonnées de point
var gc = new BMap.Geocoder();
gc.getLocation(point, fonction (rs) {
        var addComp = rs.addressComponents;
      var curCity = {
             identifiant : '',
               nom : addComp.province,
date : curDateTime()
        };
//Ville de localisation actuelle
            $.cookie('VPIAO_MOBILE_CURRENTCITY', JSON.stringify(curCity), { expire : 7, chemin : '/' });
​​​​ //alert(addComp.province ", " addComp.city ", " addComp.district ", " addComp.street);
});
};
var showPositionError = fonction (erreur) {
Changer (code d'erreur) {
cas 1 :
alert("Service de localisation refusé.");
             pause ;
cas 2 :
alert("Les informations de localisation ne peuvent pas être obtenues temporairement.");
             pause ;
cas 3 :
alert("Délai expiré pour obtenir les informations de localisation.");
             pause ;
           par défaut :
alert("Erreur inconnue.");
             pause ;
>
var curCity = {
         identifiant : '000001',
         nom : « Ville de Pékin »,
Date : curDateTime()
};
//Ville par défaut
$.cookie('VPIAO_MOBILE_DEFAULTCITY', JSON.stringify(curCity), { expire : 1, chemin : '/' });
};

La condition préalable est d'introduire l'API Baidu :

Utilisation de l'interface Sina : http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js

Méthode de test multi-régions : http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=127.0.0.1

Copier le code Le code est le suivant :


Interface d'adresse IP NetEase Youdao (cela doit être testé)

 http://www.youdao.com/smartresult-xml/search.s?type=ip&q=IPAdresse

Interface de requête Taobao (GET)

Copier le code Le code est le suivant :

<script><br> var ip = "124.127.108.133";<br>               var url = "<a href="http://ip.taobao.com/service/getIpInfo.php?ip">http://ip.taobao.com/service/getIpInfo.php?ip</a>=" ip;<br> $.getJSON(url, fonction (json) {<br>               var maprovince2 = json.data.area;<br>               var maville2 = json.data.region;<br> alert("Votre ville est :" maprovince2 maville2);<br>             });<br> </script>

Interface API de la base de données d'adresses IP du Pacifique

 http://whois.pconline.com.cn/?ip=[ipchaîne d'adresse]

De plus : il existe également des interfaces correspondantes fournies par Google, Sohu, etc. Vous pouvez l'essayer vous-même.

Interface de requête d'adresse IP Sohu (GBK par défaut) : http://pv.sohu.com/cityjson

Interface de requête d'adresse IP Sohu (l'encodage peut être défini) : http://pv.sohu.com/cityjson?ie=utf-8

Autre interface de requête d'adresse IP de Sohu : http://txt.go.sohu.com/ip/soip

 3. Obtenir la méthode IP du client

Copier le code Le code est le suivant :

<script><br> var url = 'http://chaxun.1616.net/s.php?type=ip&output=json&callback=?&_=' Math.random();<br>                 $.getJSON(url, function(data) {<br> alerte(data.Ip);<br>             });<br> </script>
 

C'est tout pour aujourd'hui. Il reste encore beaucoup de travail à faire. Vous pourrez essayer d'autres interfaces lorsque vous aurez le temps. Tout le monde est invité à venir proposer de meilleures méthodes.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Javascript implémente les compétences d'édition du nom de nœud (div)_javascriptArticle suivant:Javascript implémente les compétences d'édition du nom de nœud (div)_javascript

Articles Liés

Voir plus