Generación de mosaicos interactivos utilizando Nodejs, Mapnik y PostGIS para folleto


8

Estoy buscando hacer algo como esto, pero donde tengo todos los datos en el mismo servidor.

He estado siguiendo el conjunto de tutoriales @ sparkgeo.com/labs/big/ y estoy teniendo algunas dificultades. En última instancia, me gustaría que funcione Leafletcomo el tutorial @ sparkgeo.com/labs/bigleaflet/ pero tampoco puedo obtener la versión del tutorial anterior para que funcione. Así que la versión final estará generando R Shinymapas interactivos y capas de azulejos que se accede a través Leafletgenerada por Postgismediante node.jsel uso de mapniky mapbox.

Las Waxbibliotecas utilizadas en ese tutorial se han eliminado, así que instalé esto . Señalé los mosaicos en el HTMLarchivo http://localhost:8000/{z}/{x}/{y}.pngy señalé mi ubicación de wax.g.min.js. No se muestran secciones del censo cuando ejecuto el cencon.jscódigo. De manera similar con la Leafletversión del HTMLarchivo, señalé el localhost para las capas y no se muestran. Se cargan correctamente en la PostGISbase de datos y cambian la información de inicio de sesión de la base de datos.

Bien, soy nuevo en todo esto y me pregunto si me falta algo obvio. No modifiqué el código más allá de lo que mencioné anteriormente. ¿Hay algo más que deba hacer para generar los mosaicos @ http://localhost:8000/{z}/{x}/{y}.png? Además, ahora que Waxestá reemplazado, ¿tiene algún enlace para usar tutoriales más adecuados mapbox?


1
¿Has intentado abrir las herramientas de desarrollador de Chrome (pestaña Red y consola, específicamente) para ver si hay algún error o tiempo de espera?
blah238

Sí, definitivamente, GET http://localhost:8000/10/166/395.png net::ERR_CONNECTION_REFUSEDy así sucesivamente. Me pregunto si la base de datos es demasiado lenta, ya que se tarda una eternidad en cargar una tabla en QGIS. Actualizará esa configuración. Cuando solo busco un mosaico con la URL real, tampoco me da nada.
ideamotor

El repositorio de Wax GitHub todavía está disponible, por cierto: github.com/mapbox/wax
blah238

Gracias por los consejos. Para los siguientes, terminó cambiando "localhost" a la IP del servidor. Aún enfrenta problemas: las capas de mosaico son invisibles. Estoy poniendo esto a la cama para trabajar en una solución más rápida, pero puedo responder más adelante.
ideamotor

Respuestas:


3

Ya es hora de que responda, pero aquí va:

  • Dado que el uso de Wax está en desuso como mencionó, aquí hay algunos ejemplos de Mapbox para comenzar. Tenga en cuenta que la API de Leaflet está integrada en Mapbox.js y se puede usar de la mano con el código de Mapbox.

  • Usar http://localhost:8000/{z}/{x}/{y}.pngmedios para almacenar los mosaicos en su propia carpeta. Esto es bueno siempre que no desee demasiados niveles de zoom. De lo contrario, se vuelve realmente difícil administrar tantos mosaicos en su computadora. Es posible que desee aclarar eso para usted primero.

  • Si obtiene ERR_CONNECTION_REFUSED en un localhost de Windows para acceder a estos mosaicos declarados por http://localhost:8000/{z}/{x}/{y}.png, el problema puede ser que su fuente js esté en un servidor remoto y no dentro de la carpeta localhost. Naturalmente, la computadora no permite que algún código js no confiable en Internet acceda a los contenidos de su computadora.

En otras palabras, en lugar de agregar la biblioteca js como esta:

<script src="http://mapbox.com/foo/bar/mapbox.js"></script>

... descargue el js en su carpeta localhost y use esto:

<script src="/mapbox.js"></script>

Si esto no resuelve su problema, asegúrese de que su servidor localhost (XAMPP o lo que sea) tenga los permisos para acceder a su sistema de archivos.

  • Creo que está utilizando demasiado bibliotecas al mismo tiempo para un mapa web simple. TileMill es una gran herramienta para crear mapas interactivos con el mínimo esfuerzo. Combine eso con Mapbox.js y sus habilidades de JavaScript para que pueda crear un mapa como en el primer ejemplo que proporcionó.

Si tiene los datos que desea mostrar en formato CSV o similar, le sugiero que comience a usar TileMill de inmediato.

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.