Domanda

Sto utilizzando una mappa Google Static, ma in realtà questo problema potrebbe applicarsi a qualsiasi mappe progetto. Voglio dividere una mappa in più quadranti (su esempio 50x50 pixel) e etichettare le colonne come A, B, C .... e le righe come 1, 2, 3 ...

Poi ho intenzione di fare qualcosa di simile,

1) Trovare i marcatori che sono la più a nord, est, sud e ovest 2) Utilizzare queste informazioni per definire riquadro di delimitazione di ogni scatola riga e colonna 3) classificare ogni marker relativa riga e colonna (Esempio Marker 1 = [A, 2])

A pochi requisiti,

  • Non so il livello di zoom, perché ho lasciato Google impostare il livello di zoom appropriato per me e non sarebbe piuttosto utilizzare un algoritmo che dipende da un livello di zoom. Io però conosco le posizioni di tutti i marcatori che vengono visualizzati sulla mappa.

Ecco un esempio di una mappa che vorrei classificare i marcatori per, static map esempio link

Ho trovato queste che sembrano un buon inizio, Resource 1 , Resource 2

Ma penso di essere ancora bisogno di qualche aiuto per iniziare. Qualcuno può aiutare a scrivere alcuni pseudo codice o inviare un paio di più risorse? Sono un po 'in un solco in questo momento.

Grazie! Molto apprezzato di alcun aiuto!

È stato utile?

Soluzione

Ok due giorni in questo ho finalmente ottenuto. Ho pensato che sarebbe condividere i miei pensieri con le persone che imbattervi in ??questo più avanti.

A seguito del codice PHP su questo sito e per la traduzione lat, lng coppie di coordinate pixel, sono stato in grado di classificare la riga singolo pixel dal valore x e la colonna dai pixel valore y.

Per calcolare il livello di zoom, determino i valori maxLat, maxLng, minLat, e minLng definiti dalla raccolta dei marcatori. Poi ho calcolato i limiti della mappa ad un dato livello di zoom. Infine ho usato un metodo di forza bruta di verificare se le nuove limiti della mappa determinate dal livello di zoom includerebbe i limiti definiti dal massimo, minimo lat, lng valori della collezione di marcatori. A partire dal livello di zoom 21 (zoom max su google maps) I diminuire il livello di zoom fino a quando ho trovato un livello di zoom che include tutti i marcatori.

Sembra, che il livello di zoom che viene calcolato in questo metodo corrisponde livello di zoom preimpostato di Google selezionato automaticamente se non si fornisce un livello di zoom per una mappa statica.

In PHP c'è una bella biblioteca per fare tutto questo qui .

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