J'utilise TileStache pour servir mes propres tuiles vectorielles à l'aide d'une source de données postgis. J'ai d'abord re-projeté les fichiers de formes que j'avais en utilisant ArcMap (reprojeté à Web Mercator (sphère auxiliaire)) et les ai chargés dans Postgres en utilisant shp2pgsql (SRID: 900913).
Je peux générer les tuiles en utilisant ce fichier de configuration:
{ "cache": { "nom": "test", "chemin": "/ tmp / stache", "umask": "0000" }, "couches": { "tpl": { "origine autorisée": "*", "projection": "mercator sphérique", "fournisseur": { "class": "TileStache.Goodies.VecTiles: Provider", "kwargs": { "dbinfo": { "hôte": "localhost", "user": "postgres", "mot de passe": "postgres", "base de données": "tpl" }, "requêtes": { "7": "SELECT geom AS __geometry __, nom, priorité FROM isl_roads_sm WHERE priorité IN (5,4) - zoom 7+", "8": "SELECT geom AS __geometry __, nom, priorité FROM isl_roads_sm WHERE priorité IN (5,4)", "9": "SELECT geom AS __geometry __, nom, priorité FROM isl_roads_sm WHERE priorité IN (5,4)", "10": "SELECT geom AS __geometry __, nom, priorité FROM isl_roads_sm WHERE priorité IN (5,4)", "11": "SELECT geom AS __geometry __, nom, priorité FROM isl_roads_sm WHERE priorité IN (5,4,3,2)", "12": "SELECT geom AS __geometry __, nom, priorité FROM isl_roads_sm WHERE priorité IN (5,4,3,2)", "13": "SELECT geom AS __geometry __, nom, priorité FROM isl_roads_sm WHERE priorité IN (5,4,3,2)", "14": "SELECT geom AS __geometry __, nom, priorité FROM isl_roads_sm - zoom 14+" } } }, "aperçu": {"ext": "json"} } } }
Je rend les tuiles générées à l'aide de Leaflets TileLayer.GeoJSON. Le problème que j'ai, c'est que les tuiles ne se superposent pas au fond de carte, il y a un écart assez important entre mes tuiles et les fonctionnalités du fond de carte.
Lorsque j'utilise WGS84 comme projection dans le fichier de configuration (en utilisant les données dans WGS84), je reçois des tuiles vides, pas d'autres erreurs.
Comment obtenir une superposition correcte des tuiles? Pourquoi le WGS84 ne fonctionne-t-il pas?
+proj=merc +lon_0=0 +lat_ts=0 +x_0=0 +y_0=0 +datum=WGS84 +units=m +no_defs
. Ou vérifiez avec un qry:, SELECT * FROM geometry_columns
voyez si srid est bien 900913
900913
. Je l'ai également essayé avec SRID 3857
(après avoir modifié la projection à 3857 dans QGIS), mais cela me donne juste une erreur disant que tilestache ne fonctionne pas avec des SRID mixtes.