Génération de tuiles interactives à l'aide de Nodejs, Mapnik et PostGIS for Leaflet

8

Je cherche à faire quelque chose comme ça, mais où j'ai toutes les données sur le même serveur.

J'ai suivi l'ensemble des tutoriels @ sparkgeo.com/labs/big/ et j'ai des difficultés. En fin de compte, j'aimerais le faire fonctionner Leafletcomme le tutoriel @ sparkgeo.com/labs/bigleaflet/ mais je ne peux pas non plus faire fonctionner la version du tutoriel précédent. Ainsi , la version finale sera de générer des R Shinycartes interactives et des couches de tuiles accessibles par Leafletproduit par Postgisau moyen d' node.jsutilisation de mapniket mapbox.

Les Waxbibliothèques utilisées dans ce didacticiel ont été supprimées, j'ai donc installé cela . J'ai pointé les tuiles du HTMLfichier http://localhost:8000/{z}/{x}/{y}.pnget indiqué mon emplacement wax.g.min.js. Aucun secteur de recensement n'apparaît avec j'exécute le cencon.jscode. De même avec la Leafletversion du HTMLfichier, j'ai indiqué l'hôte local pour les couches et elles ne s'affichent pas. Ils sont correctement chargés dans la PostGISbase de données et changent les informations de connexion à la base de données.

OK, donc je suis nouveau dans tout cela et je me demande si je manque quelque chose d'évident. Je n'ai pas modifié le code autre que ce que j'ai mentionné précédemment. Y a-t-il autre chose que je devais faire pour générer les tuiles @ http://localhost:8000/{z}/{x}/{y}.png? De plus, maintenant que Waxc'est remplacé, avez-vous des liens pour des didacticiels plus appropriés mapbox?

ideamotor
la source
1
Avez-vous essayé d'ouvrir les outils de développement de Chrome (onglet Réseau et console, en particulier) pour voir s'il y a des erreurs ou des délais d'attente?
blah238
Oui, c'est sûr GET http://localhost:8000/10/166/395.png net::ERR_CONNECTION_REFUSEDet ainsi de suite. Je me demande si la base de données est trop lente car il faut une éternité pour charger une table dans QGIS. Met à jour ces paramètres. Lorsque je viens de parcourir une vignette avec la véritable URL, cela ne me donne rien non plus.
ideamotor
Le dépôt
blah238
Merci pour les pointeurs. Pour ceux qui suivent, a fini par changer "localhost" en IP du serveur. Toujours confronté à des problèmes - les couches de tuiles sont invisibles. Je mets cela au lit afin de travailler sur une solution plus rapide mais peut répondre plus tard.
ideamotor

Réponses:

3

Il est un peu grand temps de répondre, mais voici:

  • Étant donné que l'utilisation de Wax est déconseillée comme vous l'avez mentionné, voici quelques exemples Mapbox pour vous aider à démarrer. Gardez à l'esprit que l' API Leaflet est intégrée dans Mapbox.js et peut être utilisée main dans la main avec le code Mapbox.

  • Utiliser des http://localhost:8000/{z}/{x}/{y}.pngmoyens pour stocker les tuiles dans votre propre dossier. C'est bien à condition de ne pas vouloir trop de niveaux de zoom. Sinon, il devient vraiment difficile de gérer autant de tuiles sur votre ordinateur. Vous voudrez peut-être d'abord clarifier cela par vous-même.

  • Si vous obtenez ERR_CONNECTION_REFUSED sur un hôte local Windows pour accéder à ces tuiles déclarées par http://localhost:8000/{z}/{x}/{y}.png, le problème peut être que votre source js se trouve sur un serveur distant et non dans le dossier localhost. Naturellement, l'ordinateur ne permet pas à certains codes js non fiables sur Internet d'accéder au contenu de votre ordinateur.

En d'autres termes, au lieu d'ajouter la bibliothèque js comme ceci:

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

... téléchargez le js dans votre dossier localhost et utilisez ceci:

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

Si cela ne résout pas votre problème, assurez-vous que votre serveur localhost (XAMPP ou autre) dispose des autorisations pour accéder à votre système de fichiers.

  • Je pense que vous utilisez un peu trop de bibliothèques en même temps pour une simple carte Web. TileMill est un excellent outil pour créer des cartes interactives avec un minimum d'effort. Combinez cela avec Mapbox.js et vos compétences JavaScript afin de pouvoir créer une carte comme dans le premier exemple que vous avez fourni.

Si vous avez les données que vous souhaitez afficher en CSV ou dans un format similaire, je vous suggère de commencer immédiatement avec TileMill.

Doruk Karınca
la source