PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV Mobile 2024 → Comment intégrer un API google dans une appli mobile?
Comment intégrer un API google dans une appli mobile?
Iniciado por Jean Turcotte, 26,jun. 2020 23:28 - 11 respuestas
Miembro registrado
1.110 mensajes
Popularité : +8 (8 votes)
Publicado el 26,junio 2020 - 23:28
Bonjour, dans mon appli mobile, lorsque mon utilisateur s'est connecté pour la première fois et qu'il a entré son adresse domiciliaire complète, j'ai besoin d'en extirper les coordonnées Longitude/Latitude pour calculer différentes distances. J'aimerais bien alors pouvoir utiliser l'API Google Géocoding mais je ne sais par ou commencer.

Est-ce qu'un bon samaritain pourrait me donner un coup de main.

Je me suis ouvert un compte chez Google Cloud Platform pour pouvoir utiliser leur API mais le site de Google est si complexe que je m'y perd au travers des milliers de pages qu'il contient.

Merci de m'indiquer comment procéder.

--
Jean Turcotte
WX 25
Android 9.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
3.311 mensajes
Popularité : +93 (137 votes)
Publicado el 27,junio 2020 - 03:21
J'ai personnellement fourni un exemple complet de georecupereadresse
L'exemple montre les quatres possibilités de la fonction géoRécupèreAdresse ou geoGetAddress
Une Adresse Vers Coordonées
Adresse Vers Listes de Coordonées
Coordonées Vers une Adresse
Coordonées Vers Listes d'Adresses
https://depot.pcsoft.fr/search.awp…
Miembro registrado
964 mensajes
Popularité : +16 (20 votes)
Publicado el 27,junio 2020 - 09:11
Personnellement, je n'utilise pas les API Google qui potentiellement sont payantes et avec des précisions approximatives "à la campagne".
J'utilise les API du Géoportail pour le France et DOM-TOM, et les API Geonames pour le reste du monde.
Pour cela, il faut créer un compte IGN et/ou Geonames, puis, il y a des exemples de géoréférencement inverse.
Pour calculer les distances, MySql faut ça très bien avec les fonctions spatiales.
Miembro registrado
1.110 mensajes
Popularité : +8 (8 votes)
Publicado el 27,junio 2020 - 13:37
Bonjour, j'adore vos 2 réponses et vous en remercie. Je crois que je vais passer une très belle journée.

Je sais que l'on peut utiliser le Java avec WM et WW mais Peux-ton intégrer des class Java dans Windev?
Merci!

--
Jean Turcotte
WX 25
Android 9.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
3.311 mensajes
Popularité : +93 (137 votes)
Publicado el 27,junio 2020 - 19:16
L'api de changement de coordonnées vers adresse et inversement chez Google
N'as pas besoin de l'utilisation de Java.
Avant que pcsoft crée la fonction georecupereadresse j'utilisais seulement le wlanguage.
Si tu veux, je peux rechercher mes codes.
Miembro registrado
1.110 mensajes
Popularité : +8 (8 votes)
Publicado el 27,junio 2020 - 19:49
Popoy a écrit :
L'api de changement de coordonnées vers adresse et inversement chez Google
N'as pas besoin de l'utilisation de Java.
Avant que pcsoft crée la fonction georecupereadresse j'utilisais seulement le wlanguage.
Si tu veux, je peux rechercher mes codes.

Ce serait grandement apprécié !

--
Jean Turcotte
WX 25
Android 9.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Miembro registrado
3.311 mensajes
Popularité : +93 (137 votes)
Publicado el 27,junio 2020 - 21:55
////Coordonnées vers Adresse
sMonUrl est une chaîne = "https://maps.googleapis.com/maps/api/geocode/xml?latlng="
sResu est une chaîne UNICODE

MonAdresse est une Adresse
MesCoordonees est une chaîne= SAI_Coordonnées
pos1 est une geoPosition
pos1..Latitude = ExtraitChaîne(MesCoordonees,rangPremier,",")
pos1..Longitude = ExtraitChaîne(MesCoordonees,rangDernier,",")
SI pos1..PositionValide = Vrai ALORS
//Internet est nécessaire
SI InternetConnecté() = Vrai ALORS
// Récupère l'’adresse d'une position
HTTPRequête(sMonUrl+MesCoordonees)
sResu=UTF8VersUnicode(HTTPDonneRésultat())

sMonAdressetexte est une chaîne =XMLExtraitChaîne(sResu,"formatted_address",1,XMLIgnoreLaCasse)
//https://maps.googleapis.com/maps/api/geocode/xml?latlng=40.714224,-73.961452
//277 Bedford Avenue, Brooklyn, État de New York 11211, États-Unis
//https://maps.googleapis.com/maps/api/geocode/xml?latlng=43.639942,3.837672
//Rue Pierre Antonini, Euromédecine 1, 34090 Montpellier, France

MonAdresse..Rue = ExtraitChaîne(sMonAdressetexte,rangPremier,",")
MonAdresse..Ville= ExtraitChaîne(sMonAdressetexte,2,",")
MonAdresse..Région= ExtraitChaîne(sMonAdressetexte,3,",")
MonAdresse..CodePostal= ExtraitChaîne(sMonAdressetexte,4,",")
MonAdresse..Pays= ExtraitChaîne(sMonAdressetexte,rangDernier,",")

SAI_Adresse = "MonAdresse Complete = " + sMonAdressetexte + RC + ...
"Rue = "+ MonAdresse..Rue + RC + ...
"CodePostal = "+ MonAdresse..CodePostal + RC + ...
"Ville = "+ MonAdresse..Ville + RC + ...
"Région = "+ MonAdresse..Région + RC + ...
"Pays = "+ MonAdresse..Pays
SINON
Erreur("Internet est nécessaire")
FIN
SINON
Erreur("Position non Valide")
RepriseSaisie(SAI_Coordonnées)
FIN

il faut rajouter l'apikey de Google
Miembro registrado
3.311 mensajes
Popularité : +93 (137 votes)
Publicado el 27,junio 2020 - 21:58
////Adresse vers Coordonnées

MonAdresseTexte est une chaîne= SAI_Adresse
//verifier que la chaine contient des espaces et les remplacer par un +
MonAdresseTexte = Remplace(MonAdresseTexte," ","+")
sMonUrl est une chaîne = "http://maps.googleapis.com/maps/api/geocode/xml?address="
sFinUrl est une chaîne = "&sensor=false"
sResu est une chaîne ANSI

laposition est une geoPosition
sAgent est une chaîne ANSI = "Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0"

HTTPRequête(sMonUrl+""+MonAdresseTexte+""+sFinUrl,sAgent)

sResu=HTTPDonneRésultat()

laposition.Latitude=XMLExtraitChaîne(sResu,"lat",1,XMLIgnoreLaCasse)
laposition.Longitude=XMLExtraitChaîne(sResu,"lng",1,XMLIgnoreLaCasse)

//On Remplit SAI_Coordonnées
SAI_Coordonnées = "Latitude = " + laposition.Latitude + RC +...
"Longitude = " + laposition.Longitude

Il faut rajouter l'apikey de Google
Miembro registrado
3.311 mensajes
Popularité : +93 (137 votes)
Publicado el 27,junio 2020 - 22:21
Exemple d'URL
https://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,
+Mountain+View,+CA&key=YOUR_API_KEY

Détails sur https://developers.google.com/maps/documentation/geocoding/intro
Miembro registrado
1.110 mensajes
Popularité : +8 (8 votes)
Publicado el 28,junio 2020 - 01:49
Merci beaucoup, je vais me faire un plaisir d'essayer toutes les options.

Merci à tous!

--
Jean Turcotte
WX 25
Android 9.0 sur Galaxy S8
Laptop Lenovo I7 12GB Ram
Publicado el 25,octubre 2021 - 15:27
ca ne marche pas : position non trouvée
Miembro registrado
3.311 mensajes
Popularité : +93 (137 votes)
Publicado el 25,octubre 2021 - 18:37
@fred, comme je l'indiquais
Soit tu utilises l'exemple que je fourni sur le dépôt
Soit le code que j'utilisais avant que pcsoft fournisse sa fonction
Dans les 2 cas il faut s'inscrire chez Google et fournir un numéro de carte bancaire
Sinon il existe des API gratuite chez geonames et Géoportail
Tu peux alors t'inspirer de mon code et l'adapter en conséquence
Je me rappelle que pour geonames , il faut aussi s'inscrire