Récupérer latitude et longitude de capitales [Résolu/Fermé]

Signaler
Messages postés
396
Date d'inscription
lundi 6 juin 2011
Statut
Membre
Dernière intervention
22 juillet 2020
-
Messages postés
396
Date d'inscription
lundi 6 juin 2011
Statut
Membre
Dernière intervention
22 juillet 2020
-
Bonjour,
dans le but de progresser en C++, je travaille sur un programme qui récupère les différents pays et leur capitale depuis le site https://www.eguens.com/cours/les-capitales-du-monde/

Cette étape étant finalisée, je souhaiterai récupérer la latitude et la longitude de chacune des capitales (de façon "automatisée" soit 166 recherches), ce qui me mène à de la "manipulation" de code HTML et donc à du JQuerry ou JS; ma question est donc : y'a-t-il un moyen de rester en C++ ou dois-je rechercher comment lier mon programme C++ avec du JQuerry/JS ?

PS : voici l'image de l'analyse que j'ai faite de google map via le site https://www.coordonnees-gps.fr/

et si vous avez des informations sur d'éventuelles restrictions d'utilisation de bots, je prends volontier


1 réponse

Messages postés
16036
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 674
Bonjour,

la "manipulation" de code HTML et donc à du JQuerry ou JS
Euh non... ça c'est uniquement si tu veux faire de l'affichage sur un navigateur web, mais quand tu es dans un programme tu manipules le code HTML directement comme un fichier texte.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60595 internautes nous ont dit merci ce mois-ci

Messages postés
16036
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 674 >
Messages postés
396
Date d'inscription
lundi 6 juin 2011
Statut
Membre
Dernière intervention
22 juillet 2020

Que se passe-t-il quand tu appuies sur le bouton ?
Tu envoies une requête au serveur qui te réponds...
Si un navigateur web peut le faire ton programme peut le faire aussi.

Exemple avec le site que tu as cité plus haut, je prends la première case "Adresse" qui est préremplie avec "Paris, France" et j'appuie sur "Obtenir les coordonnées GPS"

Ça envoie une requête HTTP comme ceci :

https://maps.googleapis.com/maps/api/js/GeocodeService.Search?4sParis%2C_France=&7sUS&9sfr&key=AIzaSyAwwiD-CR-NiRz5MBBUlHsFC9lTtMwGMVY&callback=_xdc_._9clhwf&token=18218

Et ça me donne une réponse en JSON :

/* */_xdc_._9clhwf && _xdc_._9clhwf( {
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Paris",
               "short_name" : "Paris",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Paris",
               "short_name" : "Paris",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "Île-de-France",
               "short_name" : "Île-de-France",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "France",
               "short_name" : "FR",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Paris, France",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 48.9021449,
                  "lng" : 2.4699208
               },
               "southwest" : {
                  "lat" : 48.815573,
                  "lng" : 2.224199
               }
            },
            "location" : {
               "lat" : 48.856614,
               "lng" : 2.3522219
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 48.9021449,
                  "lng" : 2.4699208
               },
               "southwest" : {
                  "lat" : 48.815573,
                  "lng" : 2.224199
               }
            }
         },
         "place_id" : "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}
 )

Ce format est facilement interprétable par le navigateur ou n'importe quel autre programme, les informations qui sont affichées ensuite correspondent à cette partie :

            "location" : {
               "lat" : 48.856614,
               "lng" : 2.3522219
            },

Quant à ta question "et si vous avez des informations sur d'éventuelles restrictions d'utilisation de bots, je prends volontier", il y a une clé key=AIzaSyAwwiD-CR-NiRz5MBBUlHsFC9lTtMwGMVY transmise dans la requête.
Cela correspond à un compte souscrit par ce site auprès de maps.googleapis.com, pour ton programme il faudrait que tu ais ta propre clé.

Plus d'information directement sur le site de Google Maps API :
https://cloud.google.com/maps-platform/
Messages postés
396
Date d'inscription
lundi 6 juin 2011
Statut
Membre
Dernière intervention
22 juillet 2020
1
merci beaucoup pour toutes ces précisions, je vais étudier ça en détail
Messages postés
396
Date d'inscription
lundi 6 juin 2011
Statut
Membre
Dernière intervention
22 juillet 2020
1
tu as l'air de bien t'y connaître alors si possible, j'aimerais ton avis afin de savoir si ça vaut le coup que je me penche sur tous les détails "juridiques" de l'utilisation de l'API Google Maps Geocoding pour récupérer 166 couples latitude/longitude et me permettre un calcul de distances entre 2 d'entre-elles au choix (c'est le but de mon programme débuté pour m'entraîner)
Messages postés
16036
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 septembre 2020
2 674
"Juridiquement" l'utilisation de l'API Google c'est t'accepte les conditions et au pire ils suppriment ton compte un jour et ça ne marche plus.

Dans la version standard à usage non commercial tu as droit à 2500 requêtes/jour.
https://cloud.google.com/maps-platform/pricing#details
C'est largement suffisant pour ton besoin.

Après ça c'est si tu veux faire comme le fait le site dont tu parlais au départ, donc via une utilisation de web service, ce qui évitant de brancher du jQuery sur une application C++ (ce qui ferait vraiment bizarre)

Ceci dit, si c'est juste pour avoir le résultat des calculs, sans l'intérêt technologique de mettre en place ce genre de web services, tu peux calculer la distance toi même en quelques lignes de codes...

https://docs.microsoft.com/en-us/archive/blogs/ogdifrance/de-la-go-et-des-maths
Messages postés
396
Date d'inscription
lundi 6 juin 2011
Statut
Membre
Dernière intervention
22 juillet 2020
1 >
Messages postés
16036
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 septembre 2020

l'intérêt premier était de m'entraîner à programmer en C++ mais j'avoue que je suis plus(+) intrigué par la mise en place d'un web service.
Merci pour tous ces conseils.