PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Géolocalisation Avis aux mathématiciens ?
Géolocalisation Avis aux mathématiciens ?
Débuté par Roumegou Eric, 01 mar. 2017 14:54 - 5 réponses
Posté le 01 mars 2017 - 14:54
Bonjour

soit une carte sur laquelle je vais positionner n marqueurs

Pour positionner la carte sur un centre de gravité de tous ces points,
on fait comment ?

J'ai vu que l'on parlait de barycentre

Je pense que mon besoin est assez commun : comment se placer dans un
endroit médian pour que l'on voit la majorité des marqueurs
voire plus sioux; quel coef de zoom optimal faut-il adapter pour tout
voir ?

Pour l'instant je positionne sur le dernier marqueur
Avez vous déjà résolu ce problème ?
Merci de vos réponses
Posté le 01 mars 2017 - 15:24
Bonjour

il existe des fonctions mathématique (voir web) pour transformer la
position en valeurs numériques (la latitude et longitude en valeur de
type 10.924563)..

Si tu commence par ca, il te suffit de faire une bête moyenne des
latitude (les additionner et diviser par leur quantité) et même chose
pour la longitude.

Tu transforme la notation dans l'autre sens (degré/minutes/secondes) et
tu as ton point central

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 3/1/2017 à 8:54 AM, Roumegou Eric a écrit :
Bonjour

soit une carte sur laquelle je vais positionner n marqueurs

Pour positionner la carte sur un centre de gravité de tous ces points,
on fait comment ?

J'ai vu que l'on parlait de barycentre

Je pense que mon besoin est assez commun : comment se placer dans un
endroit médian pour que l'on voit la majorité des marqueurs
voire plus sioux; quel coef de zoom optimal faut-il adapter pour tout
voir ?

Pour l'instant je positionne sur le dernier marqueur
Avez vous déjà résolu ce problème ?
Merci de vos réponses
Membre enregistré
945 messages
Popularité : +102 (110 votes)
Posté le 01 mars 2017 - 15:25
Bonjour,
je ne sais pas si cela peut vous aider, mais j'ai cette petite fonction
elle attend en entrée un tableau de strPOINT qqui est défini ainsi

strPOINT est une Structure
x est un entier sur 4 octets
y est un entier sur 4 octets
END

// Renvoie les coordonnées de l'isobarycentre d'un ensemble de point
FUNCTION getIsoBarycentre(ListeDePoints est un tableau de strPOINT)
i, NombreDePoint est un entier
IsoBarycentre_X, IsoBarycentre_Y sont des monétaires

NombreDePoint = Dimension(ListeDePoints)
IF NombreDePoint < 1 THEN RENVOYER ""
IF NombreDePoint = 1 THEN RENVOYER NumériqueVersChaîne(ListeDePoints[1]:x)+TAB+NumériqueVersChaîne(ListeDePoints[1]:y)

IsoBarycentre_X = ListeDePoints[1]:x
IsoBarycentre_Y = ListeDePoints[1]:y

FOR i=2 _TO_ NombreDePoint
IsoBarycentre_X += (ListeDePoints[i]:x-ListeDePoints[1]:x)/NombreDePoint
IsoBarycentre_Y += (ListeDePoints[i]:y-ListeDePoints[1]:y)/NombreDePoint
END
RENVOYER NumériqueVersChaîne(IsoBarycentre_X)+TAB+NumériqueVersChaîne(IsoBarycentre_Y)

en retour on obtien"x tab y" du barycentre
Membre enregistré
204 messages
Popularité : +4 (8 votes)
Posté le 01 mars 2017 - 15:59
Pour t'aider à trouver le niveau de zoom

Parcours tout tes marqueurs.
Mémorise la plus petite latitude et la plus petite longitude
Même chose pour la longitude.

Tu auras donc tes 2 points imaginaire en haut à gauche, et en bas à droite.
Avec uniquement 2 points, il est beaucoup plus facile d'imaginer une procédure qui trouve le bon zoom pour que ces 2 points s'affichent.
Posté le 01 mars 2017 - 16:56
Roumegou Eric a exprimé avec précision :
Bonjour

soit une carte sur laquelle je vais positionner n marqueurs

Pour positionner la carte sur un centre de gravité de tous ces points, on
fait comment ?

J'ai vu que l'on parlait de barycentre

Je pense que mon besoin est assez commun : comment se placer dans un endroit
médian pour que l'on voit la majorité des marqueurs
voire plus sioux; quel coef de zoom optimal faut-il adapter pour tout voir ?

Pour l'instant je positionne sur le dernier marqueur
Avez vous déjà résolu ce problème ?
Merci de vos réponses


Meric pour vos réponses
je vais essayer une simple moyenne
Membre enregistré
948 messages
Popularité : +30 (92 votes)
Posté le 25 mai 2018 - 21:13
Philippe Pasquali wrote:
Bonjour,
je ne sais pas si cela peut vous aider, mais j'ai cette petite fonction
elle attend en entrée un tableau de strPOINT qqui est défini ainsi

strPOINT est une Structure
x est un entier sur 4 octets
y est un entier sur 4 octets
END

// Renvoie les coordonnées de l'isobarycentre d'un ensemble de point
FUNCTION getIsoBarycentre(ListeDePoints est un tableau de strPOINT)
i, NombreDePoint est un entier
IsoBarycentre_X, IsoBarycentre_Y sont des monétaires

NombreDePoint = Dimension(ListeDePoints)
IF NombreDePoint < 1 THEN RENVOYER ""
IF NombreDePoint = 1 THEN RENVOYER NumériqueVersChaîne(ListeDePoints[1]:x)+TAB+NumériqueVersChaîne(ListeDePoints[1]:y)

IsoBarycentre_X = ListeDePoints[1]:x
IsoBarycentre_Y = ListeDePoints[1]:y

FOR i=2 _TO_ NombreDePoint
IsoBarycentre_X += (ListeDePoints[i]:x-ListeDePoints[1]:x)/NombreDePoint
IsoBarycentre_Y += (ListeDePoints[i]:y-ListeDePoints[1]:y)/NombreDePoint
END
RENVOYER NumériqueVersChaîne(IsoBarycentre_X)+TAB+NumériqueVersChaîne(IsoBarycentre_Y)

en retour on obtien"x tab y" du barycentre






--
In üs we trust

Chocolat en Suisse - #Foetus
Kaeng Khiao Wan en Thailland - #ATR
Kopi luwak en Indonesie - #Abracadabra
Durio zibethinus en Malaisie - #JamaisFinie
Bánh Mì H?ng Hoa au Viêt Nam - #ImprévisibleMaGénération
Pizza à Cannes - #RAS