Problème localisation

Eléphanteau du PHP | 30 Messages

30 avr. 2012, 17:04

Bonjour,

Voilà j'ai une base de données avec des champs latitude et longitude.
Je voudrais grâce à l'API Google Maps n'afficher que les lignes dont les latitudes et longitudes se trouvent en France dans un tableau.
Pouvez-vous m'aider svp ?

ViPHP
xTG
ViPHP | 7331 Messages

30 avr. 2012, 17:10

Traiter des coordonnées comme les latitudes et longitudes sur une forme telle qu'un pays n'est pas chose facile.
Je dirai même plus, n'est pas envisageable !

Le mieux serait de rajouter un champ pays dans ta table, puis de faire un script qui va récupérer pour chaque n-uplet la latitude et la longitude pour demander à l'API Google où cela se situe et mettre à jour en fonction ton champ pays.

Eléphanteau du PHP | 30 Messages

04 mai 2012, 14:02

Bonjour, je n'ai pas le droit de toucher à la BDD ;)
On ne peut pas grâce aux champs street 1, street 2 et city (qui correspondent bien évidement à l'adresse 1, l'adresse 2 et la ville, trouver le pays ?

ViPHP
ViPHP | 2577 Messages

04 mai 2012, 14:34

La même ville peut être dans plusieurs pays : Paris, Texas au hasard.

J'ai jeté un oeil sur les api google, mais je n'ai pas trouvé de liste de fonction simple à lire, plutôt de la pub pour de l'affichage de carte.

Eléphanteau du PHP | 30 Messages

04 mai 2012, 14:42

Donc ... Je prends un exemple :
Je cherche l'adresse "Taratata" dans la ville de Paris pour obtenir la latitude et la longitude ...
J'obtiens la latitude et la longitude (OUAIS SUPER ;))
Bon ensuite j'ai des contraintes SQL (que je peux donner pour montrer) :
SELECT user.company, login, site.street1, site.street2, site.postal_code, site.city, site.latitude, site.longitude FROM user, site WHERE (site.street1 = user.street1) && (site.latitude<='4,1'|| site.latitude>='51,3' || site.longitude<='-5' || site.longitude>='8,1' || site.latitude IS NULL && site.longitude IS NULL )"
Bon voilà j'ai mes coordonnées et je vais afficher que ceux qui sont en France
Mais cela peux ne marcher qu'une fois sur deux aussi ...
Parce que si je cherche une adresse dans Paris ... Il peut me trouver l'adresse au Texas (comme tu me l'as dit ;))
Je fais comment alors ? :(

ViPHP
xTG
ViPHP | 7331 Messages

04 mai 2012, 15:03

Le webservice renvoie toutes les occurences trouvées.
Donc tu auras celle de Paris et celle du Texas dans le retour.

Eléphanteau du PHP | 30 Messages

04 mai 2012, 15:09

Eh ben ... Tant pis je crois :/
Je vais essayer de le faire comme ça :)
J'ai oublié de préciser que j'ai également le code postal mais bon on le voit dans le SQL ;)
Sinon j'ai vu que grâce à l'api google map on pouvait trouver les coordonnées de l'adresse mais je ne trouve pas comment faire sans avoir de cartes je veux juste récupérer les données dans un array avec les coordonnées et l'adresse et vérifier grâce au reverse geocode que ça se trouve bien en France ...
Ca fait 1 semaine que je bloque dessus :oops: :cry:

ViPHP
xTG
ViPHP | 7331 Messages

04 mai 2012, 16:26

Tu peux demander à geoportail sinon, il peuvent te fournir un webservice qui ne travaille que sur la France.
Bon après c'est pas gratuit. ;)

Mais sinon avec Google API vu qu'il te renvoie plusieurs résultats de par le monde, le code postal ou le pays est aussi dans la réponse.
Donc t'as juste à éliminer les retours qui t'intéressent pas.

Eléphanteau du PHP | 30 Messages

04 mai 2012, 16:37

Ouais au pire je peux faire comme ça ;)
Mais je trouve pas vraiment le code à écrire pour ça :S
Suis pas très doué en PHP :(

EDIT : Non en fait j'ai trouvé un code mais avec l'api v2 qui nécessite une clé alors que la v3 non