2011-08-17 18 views
13

¿Cuál es la mejor forma de calcular la distancia de píxeles entre coordenadas (lat/lon) en un mapa de Google? Estoy no preguntando por la distancia en km/millas (por lo tanto, tengo un library), pero los píxeles en la pantalla teniendo en cuenta el factor de zoom actual.Distancia de píxeles en Google Map (API V3) para evitar la superposición de etiquetas/superposiciones

Fondo: Quiero dibujar superposiciones sin superponerlas. Entonces necesito calcular la compensación para estas posiciones. Por lo tanto, en un factor de zoom menor, una distancia de 500 km puede significar que las superposiciones se superponen, mientras que a 50 km no lo hacen.

Por supuesto, se apreciaría cualquier otro algoritmo para evitar superposiciones no basadas en la distancia de píxeles.

- Actualización -

Guess se va en la dirección de la agrupación, lo comprobará:

  1. http://www.appelsiini.net/2008/11/introduction-to-marker-clustering-with-google-maps
  2. http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/1.0/examples/advanced_example.html

- Actualización -

Lo más probable es que pueda usar esto aquí: http://code.google.com/apis/maps/documentation/javascript/reference.html

google.maps.MapCanvasProjection.fromLatLngToDivPixel 

Para obtener la proyección Voy a utilizar las respuestas aquí:

  1. Pan point on Google Map to specific pixel position on screen (API v3)
  2. How to call fromLatLngToDivPixel in Google Maps API V3?
+0

Absolutamente, lo hará tan pronto todo está resuelto, detalles menores desaparecidos. Intento siempre actualizar las preguntas cuando descubro algo por mi cuenta para no perder el tiempo de otra persona. –

Respuesta

8

principio me pareció que lo que yo estoy buscando es objeto de la agrupación librerías/ejemplos:

  1. http://www.appelsiini.net/2008/11/introduction-to-marker-clustering-with-google-maps
  2. http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/1.0/examples/advanced_example.html

Los ejemplos me mostró un método google.maps.MapCanvasProjection.fromLatLngToDivPixel, que requiere una proyección del mapa. Finalmente, los siguientes temas revelaron cómo conseguir esta proyección:

  1. Pan point on Google Map to specific pixel position on screen (API v3)
  2. How to call fromLatLngToDivPixel in Google Maps API V3?
Cuestiones relacionadas