google example php javascript google-maps overlays

php - example - Superposiciones de Google Maps



google maps php (5)

Es posible que desee buscar algo como Geoserver o Mapserver . Son clones de mapas de Google y mucho más.

Podrías generar una superposición que te guste, y Geoserver (creo que el servidor de mapas también) puede darte KML, PDF, png y otros resultados para mezclar tus mapas, o podrías generar todo el mapa tú solo, pero eso lleva tiempo. .

Estoy tratando de encontrar algo, preferiblemente F / OSS, que pueda generar una superposición de Google Maps desde KML y / o datos KMZ.

Tenemos un sitio para eventos en el que estamos trabajando que necesitaba acomodar ~ 16,000 marcadores de lugar el año pasado y es probable que tenga al menos otros tantos este año. El año pasado, la compañía que había hecho el sitio simplemente alimentó los datos KML directamente a la API de gMaps y le permitió colocar todos los marcadores del lado del cliente. Obviamente, eso se convirtió en una pesadilla de rendimiento y tendía a "congelar" los navegadores antiguos (o al menos aparecer congelados durante varios minutos a la vez).

Idealmente, este script del lado del servidor tomaría el KML, el centro de latitud / longitud del mapa y el nivel de zoom del mapa, y fusionaría adecuadamente todos los marcadores de lugar visibles en una sola superposición de GIF o PNG.

Cualquier orientación o recomendación sobre esto sería muy apreciada.

ACTUALIZACIÓN 08/10/2008 - La mayoría de la información que he encontrado aquí y otros lugares parecen indicar que la reducción del número de puntos en el mapa es el camino a seguir (es decir, el uso de un marcador para representar varios cuando se ve desde un mayor altitud / nivel de zoom). Si bien es probable que sea un buen enfoque en algunos casos, no funcionará aquí. Estamos buscando el impacto visual de un mapa de EE. UU. Con muchos miles de marcadores en él. Una opción que he explorado es un servicio llamado PushPin , que cuando se alimenta (presumiblemente) KML creará, en el lado del servidor, una superposición que tiene todos los puntos visibles (en función del centro lat / lon y nivel de zoom) representados en una sola imagen , entonces, en lugar de realizar varios miles de manipulaciones DOM por el lado del cliente, fusionamos todos esos marcadores en un único lado del servidor de imágenes y hacemos una única manipulación DOM en el extremo del cliente. El servicio PushPin es realmente ingenioso y definitivamente funcionaría si no fuera por los costos asociados. Realmente estamos buscando algo F / OSS que podamos ejecutar en el servidor para generar esa superposición.


Esta es una pregunta difícil. Puede usar tilesets personalizados con Google Maps , pero aún necesita alguna forma de generar los tiles (que no sean manualmente).

Me temo que eso es todo lo que tengo = /


No estoy seguro de por qué quiere ir a una superposición GIF / PNG, puede hacerlo directamente en KML. Supongo que la mayoría de su problema de rendimiento fue causado por puntos fuera de la vista actual del usuario, es decir, el usuario está mirando a Nueva York pero tiene puntos en Los Ángeles que están desperdiciando memoria porque no son visibles. Si realmente tiene 16,000 puntos que son visibles a la vez para un típico, entonces sí, tendrá que seguir una estrategia diferente.

Si se aplica lo anterior, el procedimiento sería el siguiente:

  1. Determine el centro y la extensión del mapa
  2. Dado que deberías poder calcular el lat / long de las esquinas superior izquierda e inferior derecha del mapa.
  3. Itere a través de su base de datos de puntos y compruebe cada ubicación contra las dos esquinas. La longitud debe ser mayor (¡con signo!) Que la longitud superior izquierda y menor que la longitud inferior derecha. Latitude debe ser menor que la latitud superior izquierda (¡firmado!) Y mayor que la latitud inferior derecha. Solo comparaciones simples, no se requieren cálculos extravagantes aquí.
  4. Muestra los puntos de coincidencia a un KML temporal para el usuario.
  5. Puede alimentar KML directamente a Google Maps y dejar que se lo asigne, o puede usar la API de mapas de Javascript para cargar los puntos a través de KML.

Puede que no resuelva su problema exacto aquí, pero para cuestiones relacionadas también puede consultar la API Google Static Maps . Esto le permite crear un archivo de imagen estática con marcadores de posición que se cargarán muy rápidamente, pero no tendrán la interactividad de un mapa de Google normal. Sin embargo, debido a la forma en que está diseñada la API, tampoco puede manejar cerca de 16,000 puntos, por lo que aún tendrá que filtrar a la vista.


No sé cómo te va con tu proyecto, pero tal vez puedas echarle un vistazo a GeoDjango . Esta versión modificada de Django incluye todo tipo de herramientas para almacenar ubicaciones; convertir coordenadas y visualizar mapas, de la manera más fácil. Por supuesto, necesitas algo de experiencia en Python y un servidor para ejecutarlo, pero una vez que tienes el truco de Django funciona rápido y bien.

Si solo quiere una solución para su problema intente agrupar sus resultados en niveles de zoom más bajos, aquí encontrará un buen ejemplo de esta implementación.


OpenLayers es una excelente aplicación de JavaScript para múltiples servicios de mapeo o sus propios servidores de mapas. Acaba de lanzar la versión 2.7, que agrega algunas características y controles bastante sorprendentes.