Question

J'utilise une carte google statique, mais vraiment ce problème pourrait appliquer à tout projet Maps. Je veux diviser un plan en plusieurs quadrants (par exemple de 50x50 pixels) et étiqueter les colonnes A, B, C .... et les lignes 1, 2, 3 ...

plan NExT-je faire quelque chose comme,

1) Trouvez les marqueurs qui sont le plus au nord, à l'est, au sud et à l'ouest 2) L'utilisation de cette information pour définir les boîtes englobantes de chaque rangée et colonne de boîte 3) Classer chaque marqueur par sa rangée et de colonne (Exemple Marker 1 = [A, 2])

Quelques exigences,

  • Je ne sais pas le niveau de zoom parce que je laisse Google régler le niveau de zoom approprié pour moi et je préfère ne pas utiliser un algorithme qui dépend d'un niveau de zoom. Je ne sais cependant les emplacements de tous les marqueurs qui apparaissent sur la carte.

Voici un exemple d'une carte que je voudrais classer les marqueurs pour, lien statique exemple de carte

Je trouve ces qui ressemblent à un bon départ, Resource 1 , ressource 2

Mais je pense que je suis encore besoin d'un peu d'aide pour commencer. Quelqu'un peut-il aider à écrire sur un code de pseudo ou poster quelques ressources supplémentaires? Je suis un peu dans une ornière pour le moment.

Merci! Très apprécié de toute aide!

Était-ce utile?

La solution

Ok deux jours dans ce je suis arrivé finalement. Je croyais partager mes pensées avec des gens qui tombent par hasard sur plus tard.

Après le code PHP ce site et pour traduire lat, lng paires de coordonnées de pixels, j'ai pu classer la rangée de pixels individuels par la valeur de x et la colonne par les pixels valeur y.

Pour calculer le niveau de zoom, je détermine les valeurs MAXLAT, maxLng, minLat et minLng définis par la collection de marqueurs. Ensuite, je calcule les limites de la carte à un niveau de zoom donné. Enfin, j'utilisé une méthode de force brute de vérifier si les nouvelles limites de la carte déterminé par le niveau de zoom inclurait les limites définies par le max, min, les valeurs lat lng de la collection de marqueurs. A partir du niveau de zoom 21 (zoom max sur google maps) Je décrémenter le niveau de zoom jusqu'à ce que je trouve un niveau de zoom qui inclut tous les marqueurs.

Il semble que le niveau de zoom est calculé dans cette méthode correspond à niveau de zoom prédéfini de Google est automatiquement sélectionné si vous ne fournissez pas un niveau de zoom pour une carte statique.

En PHP il y a une bibliothèque agréable de faire tout cela .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top