Client-Seite topojson Rendering scheinbar falsche Pfade

8

Ich habe versucht, eine TopoJson-Datei mit konsolidierten Layer-Daten zu erstellen, die neben anderen Schichten US-Bundesstaaten, Grafschaften und Kongressdistrikte enthalten.

Original .shp-Shapefiles stammen aus den kartografischen Grenzdateien des Census Bureau >.

Diese wurden über ogr2ogr in GeoJson konvertiert.

Anschließend wird das TopoJson-Format über die node-serverseitige Bibliothek mit Quantisierung von 1e7 und Retain-Anteil von 0,15 kombiniert. Bis zu diesem Punkt gibt es keinen Hinweis auf ein Problem.

Ich sehe die endgültige Topojson-Datei mit mapshaper und die Dinge scheinen in Ordnung zu sein:

Beim Versuch, mit der Topojson-Client-Bibliothek und D3.geo.path () zu rendern, stoße ich jedoch auf einige seltsame Pfade in der Ebene des KongressesDist: (beachte die großen rechteckigen Pfade um die kontinentalen USA, AK und HI) img src="https://i.stack.imgur.com/d13Bm.jpg">

Eine funktionierende Version der Seite finden Sie hier: Ссылка

Ein paar wichtige Hinweise:

  • Wenn ich mein Topojson-Generierungsskript ändere, um die Vereinfachung zu entfernen, scheinen die Pfade dann korrekt über dieselbe d3.js-Seite angezeigt zu werden
  • Wenn ich beim Erstellen des Topojsons nur die Ebene "congressionalDist" verwalte, scheinen die Pfade dann korrekt über dieselbe d3.js-Seite zu zeigen:

Nachdem ich versucht hatte, so viele Fehler zu beheben, wie ich konnte, dachte ich, ich würde jemanden hier fragen, ob jemand ähnliche Probleme erlebt hat. Danke für jede Hilfe.

    
Josh 04.06.2014, 23:54
quelle

1 Antwort

4

Wie ich in den Kommentaren erwähnt habe, war mir aufgefallen, dass die drei beleidigenden Rechtecke an Daten mit einer id -Eigenschaft gebunden waren, die in ZZ endete, während alle anderen Pfade IDs hatten, die mit Zahlen enden.

Nach einigem Google-Suchen kam ich auf, was ich denke, ist die Antwort.

Nach diesem Dokument auf der Website census.gov,

  

In Connecticut, Illinois und Michigan hat der Staatsteilnehmer den aktuellen (113.) nicht zugewiesen   Kongressbezirke, um den gesamten Staat oder gleichwertigen Bereich abzudecken. Der Code "ZZ" wurde vergeben   in Gebieten ohne definierten Kongressbezirk (in der Regel große Wasserkörper). Diese nicht zugewiesenen Bereiche   werden im Staat als ein einziger Kongressbezirk zum Zweck der Datenpräsentation behandelt.

Es scheint, dass diese drei undefinierten Bezirke die drei Rechtecke erklären würden. Es ist unklar, an welchem ​​Punkt des Prozesses sie das Problem verursachen, aber ich glaube, es gibt eine einfache Lösung für Ihr unmittelbares Problem. Während ich nach Informationen über den Code ZZ suchte, stolperte ich über dieses Makefile in einem Projekt von mbostock namens us-atlas .

Es scheint, dass er auf ein ähnliches Problem gestoßen ist und es geschafft hat, die undefinierten Kongressbezirke herauszufiltern, wenn ogr2ogr läuft. Hier ist der relevante Code aus dieser Datei:

%Vor%

Ich wette, dass wenn Sie% code% auf Ihrem Shapefile mit den hier gezeigten Flags ausführen, wird es das Problem lösen.

    
jshanley 02.08.2014 03:49
quelle

Tags und Links