Calcul de la moyenne d'un ensemble de points sur une carte Google dans un ensemble plus restreint
-
20-09-2019 - |
Question
J'affiche une petite carte Google sur une page Web à l'aide de Google Maps API statique.
J'ai un ensemble de 15 coordonnées que je voudrais représenter des points sur la carte.
En raison de la carte étant assez petite (184 x 90 pixels) et la limite supérieure de 2000 caractères sur une URL Google Maps, je ne peux pas représenter tous les points sur la carte.
Ainsi, au lieu que je voudrais créer une petite liste de coordonnées qui représente une moyenne de la grande liste.
Ainsi, au lieu d'avoir 15 ensembles, je finirais avec 5 ensembles, qui est position approximative des positions du 15. Say il y a 3 points qui sont plus près de chaque-autre que de tout autre point sur la carte , ces points seront regroupés en 1 point.
Je suppose que je suis à la recherche d'un algorithme qui peut le faire.
ne demande à personne de préciser à chaque étape, mais peut-être me diriger dans le sens d'un principe mathématique ou une fonction d'usage général pour ce genre de chose?
Je suis sûr une fonction similaire est utilisée, par exemple, un logiciel graphique, quand pixellisation une image.
(Si je résous cela, je serai sûr de poster mes résultats.)
La solution
Je recommande K-means lorsque vous avez besoin d'objets de cluster N dans un nombre connu K
Autres conseils
Si vous êtes recherche pour de telles fonctions / classes, consultez et href="http://gmaps-utility-library-dev.googlecode.com/svn/tags/markermanager/" rel="nofollow noreferrer"> les classes utilitaires de MarkerManager. MarkerClusterer correspond étroitement à la fonctionnalité décrite, comme on le voit dans
En général, je pense que la zone que vous devez rechercher autour de est « Vector Quantification ». J'ai un vieux titre du livre et de compression Vector Quantification Signal par Allen Gersho et Robert M. Grey, qui fournit un tas d'exemples. De mémoire, le Lloyd Iteration était un bon algorithme pour ce genre de chose. Il peut prendre l'ensemble d'entrée et de réduire à un ensemble de taille fixe de points. En gros, répartir uniformément ou aléatoirement vos points autour de l'espace. Carte chacun de vos entrées au point le plus proche quantifiée. calculer l'erreur (par exemple somme des distances ou Root-Mean-carré). Ensuite, pour chaque point de sortie, réglez au centre de l'ensemble qui correspond à lui. Cela déplacera le point et peut-être même changer l'ensemble qui correspond à lui. Effectuez cette itérativement jusqu'à ce qu'aucune modification ne soit détectée d'une itération à l'autre. Hope this helps.