Erstellen Sie Vektor-Kacheln für Polymaps

14

Ok, wahrscheinlich ist es schlecht, dass ich es nicht zum WhereCamp5280 geschafft habe und die FortiusOne-Geeks direkt gefragt habe, aber wie werden GeoJSON -Kacheln für die Verwendung in Polymaps erstellt?

Die Bevölkerung Beispiel über bei polymaps.org stellt fest , dass die Daten für die Demo läuft auf Google App Engine und spielt auf Vektor - Kacheln „Ihre eigenen Rollen“, aber ich kann nicht mehr Informationen zu finden scheinen ...

Hat jemand einen Einblick, den er teilen kann?

Vielen Dank!

Dave Bouwman
quelle

Antworten:

12

TileStache wird es auf jeden Fall tun, insbesondere der PostGeoJSON-Anbieter in der Sammlung der zusätzlichen Anbieter . Der Hauptunterschied zwischen diesem und dem, was wir für die Polymaps-Beispiele gemacht haben, ist das Abschneiden von Polygonen. Nachdem wir gesehen haben, wie groß Alaska bei höheren Zoomstufen werden kann, haben wir alle Features in den Polymaps-Beispielen abgeschnitten, um die Ladezeiten zu verkürzen und so weiter. Wir haben sie auch außerhalb von AppSpot gehostet, damit der Header Access-Control-Allow-Origin für domänenübergreifende Berechtigungen hinzugefügt werden kann .

PostGeoJSON ist nicht sofort einsatzbereit, aber wie in den Dokumenten beschrieben, würde ich den Code bei Interesse gerne weiterentwickeln!

Update: Ab Tilestache 1.9.0 scheint der Vector Provider dem PostGeoJSON Provider vorzuziehen .

Michal Migurski
quelle
2
Siehe Kommentar unten: Ich habe den PostGeoJSON-Anbieter aktualisiert, um Polymaps-freundlicher zu sein, tilestache.org/doc/…
Michal Migurski
4

Darüber habe ich mich auf jeden Fall gewundert, da ich dies auch in Tile5 (http://tile5.org/) nutzen möchte. Ich habe gesehen, wie Mike Bostock (der mit Stamen zusammengearbeitet hat, um Polymaps zu erstellen) über Twitter auf das Thema geantwortet hat. Hier ist der Link:

http://twitter.com/#!/mbostock/status/27659816563

Möchte auf jeden Fall eine schöne Standalone-Lösung für das Problem finden. Einige Produkte, die wie Schritte in die richtige Richtung aussehen, sind:

  • Tilestache (http://tilestache.org/)
  • Geocouch (https://github.com/vmx/couchdb)

Wird diese Frage mit Interesse beobachten.

Prost,

Damon.

Damon Oehlman
quelle
Anscheinend kann ich nur meine eigene Antwort kommentieren: /
Damon Oehlman
@Michal - Würde es auf jeden Fall lieben, wenn TileStache mit einem Clipping-Parameter versehen würde? Ich weiß, dass JSONP nicht jedermanns Sache ist, aber ich denke, dass es hier ziemlich nützlich wäre ...
Damon Oehlman
Ich kann definitiv Clipping zu TileStache hinzufügen - werde es auf die Liste setzen! Weniger sicher in Bezug auf einen Rückruf, vor allem, weil die Ergebnisse vollständig zwischengespeichert werden sollen und Rückrufe dies verhindern. Vielleicht mache ich eine Ausnahme für JSON, weil es so ein häufiges Bedürfnis ist ...
Michal Migurski
Guter Punkt für das Caching auf der JSONP-Front. Das JSONP sollte bei Rückrufen in der URL-Zuordnung direkt zum Funktionswrapper in der Ausgabe immer noch im Cache gespeichert werden können. Es würde jedoch definitiv zu einem Aufblähen des Caches führen, was schmerzhaft wäre. Ich denke, ich könnte auf Github spielen und ein Stück spielen (wenn es die Zeit erlaubt) :)
Damon Oehlman
Okay, ich habe das Ausschneiden als Option in TileStache hinzugefügt: tilestache.org/doc/…
Michal Migurski
2

Sie könnten ogr2ogr verwenden, um eine statische GeoJSON-Datei für das Serving zu erstellen. Es scheint jedoch, dass Sie vorerst Ihre eigenen Webdienste schreiben müssen, wenn Sie das Ausschneiden oder eine der anderen dynamischen URL-Funktionen (Zoomstufe usw.) aktivieren möchten. , und mir ist kein Kachel-Tool bekannt, das einen Kachel-Cache eines Datensatzes erstellt, aber auch dies kann mit einem Batch-Prozess und den verschiedenen -clip*Optionen von ogr2ogr relativ einfach durchgeführt werden . Obwohl dies für Vektordaten nicht sinnvoll erscheint, da Polygone bei Überlappung in Stücke pro Kachel geschnitten werden, ist eine Begrenzungskastensuche wahrscheinlich besser geeignet.

Jason Scheirer
quelle
2

Dave: Hier scheint es eine Lücke zu geben. Ein netter, eigenständiger Json-Fliesenschneider wäre großartig (und gut für diejenigen, die keine Kacheln verwenden). Schauen Sie sich das Python-Modul Bloch an (via M. Migurski): https://github.com/migurski/Bloch (denken Sie an mapshaper.org auf der Kommandozeile & Python).

Wie Jason betonte, ist der Prozess des Kachelns von Daten ziemlich einfach und kann ziemlich schnell durchgeführt werden, indem man so etwas wie gdal2tiles als Ausgangspunkt verwendet und es in die Vektorwelt verwandelt.

Chris


quelle