Estoy usando TileStache para servir mis propios mosaicos vectoriales usando una fuente de datos postgis. Primero, volví a proyectar los archivos de forma que tenía usando ArcMap (reproyectado en Web Mercator (Esfera auxiliar)) y los cargué en Postgres usando shp2pgsql (SRID: 900913).
Puedo generar los mosaicos usando este archivo de configuración:
{ "cache": { "nombre": "prueba", "ruta": "/ tmp / stache", "umask": "0000" }, "capas": { "tpl": { "origen permitido": "*", "proyección": "mercator esférico", "proveedor": { "class": "TileStache.Goodies.VecTiles: Provider", "kwargs": { "dbinfo": { "host": "localhost", "usuario": "postgres", "contraseña": "postgres", "base de datos": "tpl" }, "consultas": { "7": "SELECCIONE geom AS __geometría __, nombre, prioridad DESDE isl_roads_sm DONDE prioridad EN (5,4) - zoom 7+", "8": "SELECCIONE geom AS __geometría __, nombre, prioridad DESDE isl_roads_sm DONDE prioridad EN (5,4)", "9": "SELECCIONE geom AS __geometría __, nombre, prioridad DESDE isl_roads_sm DONDE prioridad EN (5,4)", "10": "SELECCIONE geom AS __geometría __, nombre, prioridad DESDE isl_roads_sm DONDE prioridad EN (5,4)", "11": "SELECCIONE geom AS __geometría __, nombre, prioridad DESDE isl_roads_sm DONDE prioridad EN (5,4,3,2)", "12": "SELECCIONE geom AS __geometría __, nombre, prioridad DESDE isl_roads_sm DONDE prioridad EN (5,4,3,2)", "13": "SELECCIONE geom AS __geometría __, nombre, prioridad DESDE isl_roads_sm DONDE prioridad EN (5,4,3,2)", "14": "SELECCIONE geom AS __geometría __, nombre, prioridad DESDE isl_roads_sm - zoom 14+" } } }, "vista previa": {"ext": "json"} } } }
Estoy renderizando los mosaicos generados usando Leaflets TileLayer.GeoJSON. El problema que tengo es que los mosaicos no se superponen con el mapa base, hay una brecha bastante grande entre mis mosaicos y las características en el mapa base.
Cuando uso WGS84 como la proyección en el archivo de configuración (usando datos en WGS84) obtengo mosaicos vacíos, no hay otros errores.
¿Cómo puedo hacer que los mosaicos se superpongan correctamente? ¿Por qué no funciona WGS84?
fuente
+proj=merc +lon_0=0 +lat_ts=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs
. O consulte con un qry:SELECT * FROM geometry_columns
vea si srid es realmente 900913900913
. También lo probé con SRID3857
(después de cambiar la proyección a 3857 en QGIS), pero eso me da un error que dice que tiletache no funciona con SRID mixtos.Respuestas:
Tengo las fichas para superponer correctamente. El problema estaba en la reproyección realizada por ArcMap y QGIS. Cuando estaba revisando los archivos de forma reproyectados en ArcMap y QGIS, se superponían correctamente y tenían los SRID correctos.
Entonces
4326
importé los archivos de forma en WGS84 en PostgreSQL usando el SRID con shp2pgsql y luego losST_Transfrom
reproyecté en900913
las tablas usando una consulta:Pero todavía no puedo generar los mosaicos
WGS84
, ¿qué es lo que me falta?fuente
Gracias por los comentarios, esto es importante para otros que encuentren esta pregunta en el futuro. ¿Está utilizando WGS84 en su configuración de mosaico? También hay un atributo 'proyectado' que puede que tenga que configurar.
Está utilizando la clase VecTile, todavía no he jugado con esa, pero es posible que pueda hacer que funcione (o al menos le dará algunas pistas / ideas para solucionar) con un proveedor diferente, como este. Puede cambiar el controlador a postgresql en lugar de postgis y dar las consultas en lugar de tablename. Pero la razón por la que lo mostré para el atributo 'proyectado'.
fuente
WGS84
con diferentes proveedores y elprojected
atributo también, pero eso todavía me da el mismo resultado, sin errores pero con características vacías. Ahora que tengo losspherical mercator
mosaicos superpuestos correctamente, creo que puedo hacerlo sin usar,WGS84
pero aún así me gustaría descubrir cuál es el problema.spherical mercator
sin definir elprojected
atributo (esfalse
por defecto) y eso funciona bien para mí. PorqueWGS84
podría ser un problema con el cuadro delimitador, pero no estoy seguro, tengo el mismo problema con los vectores. Sin embargo, gracias por los comentarios, me pusiste en el camino correcto.