2011-01-18 10 views
6

Estoy buscando generar mapas de transporte en un estilo similar al icónico mapa subterráneo de Londres [tube].Generando mapas dinámicamente

Estos mapas cambian de vez en cuando y se necesitarán muchos, así que en lugar de dibujarlos manualmente en inkscape [o similar], espero que se generen dinámicamente desde un db o conjunto de datos.

¿Alguien sabe si hay alguna API de biblioteca, etc. por ahí que podría ayudar con esta tarea, o alguna sugerencia en general de cómo [o cómo no] para ir sobre esto?

estoy pensando de SVG sería el mejor camino a seguir con esto, además de que se pueden necesitar para interactividad básica en la línea.

estoy trabajando en php por lo que por lo demás es GDlib, ImageMagick?

Gracias de antemano.

.k

+0

De hecho, puede dibujar sobre la marcha. Ver: php.net/manual/en/book.image.php. Pero, el procesamiento de imágenes requiere una gran cantidad del típico límite máximo de memoria. ¿Ha considerado tener una interfaz de administrador (o activación de script lateral en cualquier cambio de datos) de algún tipo para a) conectar los números cada vez que se modificó, y luego b) volver a crear una imagen estática? De esta forma, las solicitudes de los clientes no necesitan tratar con ninguna creación de imagen real. –

Respuesta

1

Bueno, la respuesta realmente tampoco en el uso de GD o ImageMagick, existen manuales para eso. En cuanto a las bibliotecas de ayuda, la mayoría de las bibliotecas se centran en gráficos, cualquier otra cosa que tenga que escribir usted mismo. Su mejor opción como solución sería hacer que su interfaz de administrador genere las imágenes cuando los datos en el backend cambian y almacenan en caché las imágenes, ya que no hay razón para construir la imagen cada vez que alguien accede a ella.

Para la generación de mapas, creo que la mejor opción sería definir las estaciones con una o varias 'líneas' que determinan una especie de indicador de la relación con las estaciones de todo, y un x, y. Probablemente solo necesites determinar una estación 'padre' ya que solo estás dibujando líneas desde a-b. De esta forma, puede ubicarlos de la misma manera en que normalmente se representan en los trenes reales, usar las líneas y las estaciones circundantes para dibujar asignaciones.

no suena como un problema muy difícil. 3 tablas:

  • estaciones [stationid, nombre, x, y, meta1, Meta2],
  • colocaciones [placementId, stationid, LineID, parentstationid],
  • líneas [LineID, nombre, meta1, Meta2 , color, etc.].

SVG sería bastante bueno en este tipo de cosas, y se evitaría todo el proceso de creación de la imagen y el almacenamiento en caché, pero tenga cuidado con los problemas de soporte del navegador.

suena como un proyecto muy interesante, sin embargo, la buena suerte :)

0

Una de las estrategias que utilizo cuando necesito para generar gráficos a partir de los datos en una base de datos es para extraer los datos en algún tipo de forma de XML (por ejemplo, Oracle SQLX o Cocoon XSP/ESQL o eXist-db XQuery) y procesarlo a través de un XSLT para generar SVG. El buen viejo Cocoon está bien para este tipo de trabajo si no quieres escribir ningún código (excepto el XSL por supuesto ;-).

El propio SVG se puede cargar en algunas herramientas gráficas para reprocesar.

0

Estos mapas cambiar de vez en tiempo y muchos serán necesarios por lo en lugar de su elaboración manual en Inkscape [o similares] Tengo la esperanza de los han generado dinámicamente desde una base de datos o conjunto de datos .

Si estuviera en su lugar, lo primero que haría es tratar de demostrar que la API de Google Maps no funcionará para su aplicación. Entonces, tal vez, demuestre que ArcGIS no funcionará. (Incluso si no funcionan, son ampliamente utilizados, y puede agregar líneas a su CV.)