Domanda

Sono la visualizzazione di una piccola mappa di Google su una pagina web utilizzando l'API di Google Maps Statico.

Ho una serie di 15 coordinate, che mi piacerebbe rappresentare come punti sulla mappa.

A causa della mappa essendo abbastanza piccola (184 x 90 pixel) e il limite massimo di 2000 caratteri su un URL di Google Maps, non posso rappresentare ogni punto sulla mappa.

Così, invece mi piacerebbe per generare un piccolo elenco di coordinate che rappresenta una media del grande lista.

Così, invece di avere 15 insiemi, sarei andato a finire con 5 set, chi è in posizioni approssimano le posizioni del 15. Say ci sono 3 punti che sono in stretta vicinanza con l'un l'altro che a qualsiasi altro punto della mappa , questi punti vengono compressi in 1 punto.

Quindi credo che sto cercando un algoritmo che può fare questo.

Non chiedere a nessuno di precisare ogni passo, ma forse mi puntare nella direzione di una funzione o di principio per tutti gli usi matematico per questo genere di cose?

Sono sicuro che una funzione simile è usato, per esempio, software di grafica, quando pixellating un'immagine.

(Se posso risolvere questo sarò sicuro di inviare i miei risultati.)

È stato utile?

Soluzione

K-means quando è necessario raggruppare N oggetti in un numero noto K

Altri suggerimenti

Se non si ricerca per tali funzioni / classi, dare un'occhiata a MarkerClusterer e MarkerManager classi di utilità. MarkerClusterer corrisponde da vicino la funzionalità descritta, come si è visto in questa demo .

In generale credo che l'area è necessario cercare in giro è "quantizzazione vettoriale". Ho un vecchio titolo del libro quantizzazione vettoriale e compressione del segnale da Allen Gersho e Robert M. Gray, che fornisce una serie di esempi.

Dalla memoria, il Lloyd Iterazione è stato un buon algoritmo per questo genere di cose. Si può prendere il set di input e ridurlo ad un insieme fisso di dimensioni di punti. In sostanza, in modo uniforme o in modo casuale distribuire i punti attorno allo spazio. Mappa ciascuno dei vostri ingressi al punto quantizzato più vicino. Poi calcolare l'errore (ad esempio somma delle distanze o Root-quadratico medio). Poi, per ciascun punto di uscita, impostare al centro del set che mappa ad esso. Questo sposterà il punto e forse anche cambiare il set che associa ad esso. Eseguire questa iterativamente fino si rilevano variazioni da un'iterazione all'altra.

Spero che questo aiuti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top