Ich habe versucht, eine TopoJson-Datei mit konsolidierten Layer-Daten zu erstellen, die, neben anderen Schichten, US-Bundesstaaten, Grafschaften und Kongressdistrikte.Client Seite Topojson Rendering scheinbar falsche Wege
Original .shp Shapefiles stammen aus dem Census Bureau Cartographic Boundary Files.
Diese wurden über Ogr2ogr in GeoJson konvertiert.
Dann kombiniert in TopoJson-Format über die Node-Server-Seite Bibliothek, mit Quantisierung von 1e7 und Retain-Proportion von 0,15. Bis zu diesem Punkt gibt es keinen Hinweis auf ein Problem.
Ich sehe die endgültige topojson Datei scheint mapshaper und Dinge mit OK aussehen:
Aber, wenn sie mit der topojson Client-Bibliothek und D3.geo.path() zu machen versucht, begegne ich einige seltsame Wege in die congressionalDist Schicht: (die großen rechteckigen Bahnen um den kontinentalen USA, AK bemerken, und HALLO)
eine Arbeitsversion der Seite finden Sie hier: http://jsl6906.net/D3/topojson_problem/map/
Ein paar relevante Hinweise:
- Wenn ich meine topojson Generation Skript ändern Vereinfachung zu entfernen, die Wege dann scheinen korrekt über die gleiche d3.js Seite
- zu zeigen, wenn ich nur die congressionalDist Schicht halten, wenn die topojson zu schaffen, scheinen die Wege dann zu korrekt wieder über die gleiche d3.js Seite:
nach so viel Fehlerbehebung versucht, wie ich in der Lage gewesen bin zu handhaben, ich dachte, ich hier jemand fragen würde, um zu sehen, ob jemand eine ähnliche Erfahrung hat Probleme. Danke für jede Hilfe.
Dies scheint zu den in http://stackoverflow.com/questions/23953366/d3-large-geojson-file-does-not-show-draw-map-properly-usinging- genannten Problemen zu gehören. Projektionen/24055015 # 24055015. Dort ging die Berechnung der Grenze mit einigen der Regionen fehl, was auch zu großen Rechtecken führte. In Ihrem Beispiel zum Beispiel ergibt "d3.geo.bounds (cds [84])" '[[-180, -90], [180, 90]] ', was inkorrekt zu sein scheint. Ich weiß nicht, warum das passiert. –
Immer noch nicht sicher, was das verursacht, aber eine interessante Sache, die ich bemerkt habe, ist, dass die 'ID'-Eigenschaft der an die beanstandeten Rechtecke gebundenen Daten in 'ZZ' endet, während alle anderen Objekte eine ID haben, die mit zwei Zahlen endet. Die IDs sind verantwortlich: 09ZZ, 17ZZ und 26ZZ. Versuchen Sie beispielsweise Folgendes: 'd3.selectAll (d3.selectAll ('. Cd') [0] .filter (function (d) {return d3.select (d) .attr ('id'). Slice (- 2) === 'ZZ'})). Style ('stroke', 'red') 'und Sie werden feststellen, dass nur diese Rechtecke rot gefärbt sind. – jshanley
Es scheint, 'ZZ' ist der Code für" undefined "Kongressbezirke. Ich bin mir nicht ganz sicher, was das bedeutet, aber Sie können sehen, dass es in [diesem Datensatz] (http://www.census.gov/geo/reference/codes/files/national_cd113.txt) unter der Spalte CD113FP, wo auch immer, vorkommt Die NAMELSAD-Spalte enthält "Congressional Districts nicht definiert". Es gibt auch einen Verweis auf das Entfernen solcher Bezirke, wenn man ogr2ogr in [** diese Datei **] (https://github.com/mbstock/us-atlas/blob/bf502099b48e54116c88f277e6d800836ecbc210/Makefile#L276-L279) betreibt, die Teil von ['us-atlas'] (https://github.com/mbstock/us-atlas) – jshanley