¿Manera simple de tener un mapa basado en la web fuera de línea? [cerrado]


15

Mi objetivo es tener un mapa del mundo incrustado en una página web, pero sin acceso a Internet. Preferiblemente solo un conjunto de mosaicos en combinación con algún mapa deslizante js-lib. El espacio de almacenamiento no es realmente un problema, y ​​no se requiere el nivel máximo de zoom.

¿Cuál es la forma más fácil de lograr esto?

Encontré un proyecto que parece encajar: los mapas en un palo, pero parece estar muerto.


2
¿Qué significa exactamente "no se requiere zoom máximo"? ¿Qué tipo de escala / precisión / resolución necesita?
Mr_Chimp

2
mapnik (Windows) github.com/mapnik/mapnik/wiki/WindowsInstallation y use localhost como url (máquina local)
Mapperz

La precisión y la resolución no son importantes, los países y las ciudades principales son suficientes, pero, por supuesto, quiero que sea lo mejor posible. La simplicidad es más importante, estoy tratando de evitar servicios y bases de datos adicionales.
tek

1
Si está dispuesto a pasar un par de días configurando en Windows, entonces mapnik + postgis + postgresql + proj.4 + python 2.7 + ... es una opción, pero después de pasar por eso, recomendaría investigar la respuesta de TileMill a continuación. Suena mucho más fácil
ca0v

Es realmente simple El único problema es conseguir los datos del mapa y los problemas de licencia relacionados con la creación de un sistema de mapas sin conexión . Es decir, la mayoría de los proveedores de mapas que permiten el uso gratuito (por ejemplo, Google) solo lo hacen cuando el mapa está disponible para el público. Pero esta es una pregunta completamente diferente ... Solo lo estaba haciendo para el Reino Unido, así que usé OS Open Data, que es de uso gratuito.
Mr_Chimp

Respuestas:


17

Recomendaría buscar en TileMill, que está hecho por las mismas personas que trabajaban en Maps On A Stick. TileMill era parte de Maps On A Stick, o es en lo que se convirtió Maps On A Stick, algo así. Olvidé la conexión. De todas formas...

TileMill le permitirá cargar datos geográficos, diseñarlos como desee y luego crear un conjunto de mosaicos de mapas PNG para una variedad de niveles de zoom.

La salida de TileMill es un archivo .mbtiles. Esta es solo una base de datos sqlite que contiene los PNG. Si está trabajando sin conexión, probablemente sea más fácil extraer los pngs a una carpeta (usando mbutil ) en lugar de usar sqlite para acceder a ellos.

Si su mapa es bastante simple (es decir, interacción mínima), recomendaría usar Leaflet para su biblioteca de mapas.

En el folleto, debe agregar una capa de mosaico (pista: use tms en lugar de xyz).

Espero que ayude.

Editar: un par de cosas a tener en cuenta.

1) Debe tener en cuenta las restricciones de licencia con cualquier dato de mapa que utilice (consulte mi comentario sobre la pregunta anterior).

2) Si te acercas lo suficiente como para ver carreteras, etc., entonces espera tener varios GB de mosaicos.


¡Tengo una prueba de concepto en funcionamiento! Tendré que investigar más los problemas de licencia, pero esta es probablemente la solución más fácil.
tek

2

Otra opción sería algo así como mapwingis . No hay necesidad de azulejos, leerá archivos de forma.


MapWinGIS es bastante bueno, pero la pregunta especifica basada en la web.
Mr_Chimp

Decía PÁGINA web, no basada en la web, y no especificaba acceso a Internet, por lo que supuse que eso significaba basado en el servidor (o local), lo que estaría bien para mapwingis. Lo he usado en un formulario en una base de datos de Access y no puedo imaginar que sea más difícil de implementar en una página web.
Ian


1

Si puede crear un archivo MBTiles (por ejemplo, con Tilemill), puede convertir ese archivo en una simple bolsa de mosaicos en carpetas anidadas que se ajustan al diseño z / x / y esperado utilizando tilestache-seed.pyun script incluido con Tilestache. Aquí hay uno que hice recientemente:

http://mike.teczno.com/img/hachure/labels/

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.