Ich arbeite an this und ich habe Probleme mit dem Beschneiden der roten Kreiselemente, wie sie auf dem Globus erscheinen, sogar nach dem 90 ° Clip Winkel. Gibt es auch eine Möglichkeit, wie Sie die Projektion auf die roten Kreise anwenden können, so wie es aussieht, als wären sie auf der Oberfläche des Globus relativ zum orthographischen Winkel? Im Moment erscheinen sie nur als 2-D-Kreise relativ zum Bildschirm.Kreisclip und Projektion mit D3 orthographisch
10
A
Antwort
28
Statt <circle>
Elemente verwenden, können Sie GeoJSON Punktgeometrien verwenden:
{type: "Point", coordinates: [λ, φ]}
Diese können dann über D3 Projektionssystem befestigt werden, abhängig von der clipAngle, die Sie festgelegt haben. So könnten Sie etwas wie:
Beachten Sie, wie der Radius des Punktes über den Pfad für jeden Punkt festgelegt wird. Sie können auch die pointRadius gesetzt eine Funktion sein, so könnte man so etwas tun:
var path = d3.geo.path()
.projection(…)
.pointRadius(function(d) { return d.radius; });
svg.selectAll("path.point")
.data(data)
.enter().append("path")
.datum(function(d) {
return {type: "Point", coordinates: [d.Lon, d.Lat], radius: d.Magnitude};
})
.attr("class", "point")
.attr("d", path);
Der zweite Teil Ihrer Frage geht dahin, ob die Kreise wahre geographische Kreise sein kann. d3.geo.circle können geografische Kreis Merkmale erzeugen (wiederum als GeoJSON), die richtig beschnitten werden:
var path = d3.geo.path().projection(…),
circle = d3.geo.circle();
svg.selectAll("path.point")
.data(data)
.enter().append("path")
.datum(function(d) {
return circle
.origin([d.Lon, d.Lat])
.angle(d.Magnitude)();
})
.attr("class", "point")
.attr("d", path);
Verwandte Themen
- 1. Karte mit d3.js und TopoJSON, Albers Siberia Projektion
- 2. D3 Baum: Linien statt diagonaler Projektion
- 3. Libgdx orthographisch Kameraansicht Größe (mit Box2D)
- 4. Wie kann ich die Projektion eines vorhandenen D3-Pfades finden?
- 5. Mercator Projektion Weltkarte mit Geoserver und Openlayers
- 6. PyMongo Abfrage mit Projektion
- 7. EF4 Include() mit Projektion
- 8. Bedingte Projektion mit NHibernate
- 9. orthogonale Projektion mit numpy
- 10. MongoDB Aggregation und Projektion Problem
- 11. OpenGL Orthographische Projektion und Translate
- 12. Was sind Projektion und Auswahl?
- 13. D3 Zoomen und Pan funktioniert nicht für die gesamte Karte, nur die Projektion
- 14. Matrix Multiplikation - Ansicht/Projektion, Welt/Projektion, etc.
- 15. wahre isometrische Projektion mit opengl
- 16. Projektion eines Zielringes mit direct3d
- 17. linq Projektion
- 18. C# linq join mit Projektion
- 19. Meteor und D3: d3.event ist null
- 20. Openlayers-Projektion mit OSM-Style-Maps und einer GeoJSON-Vektorschicht
- 21. Anzeige der Karte mit d3.js und geojson
- 22. Unterstützt die conicConformal-Projektion von D3.j dieselben Clipping/Trimming-Optionen wie Matlab?
- 23. DJ3S - Graticule entfernt, wenn die Drehung in orthographischer Projektion erfolgt
- 24. Refaktorierte SQL-Projektion?
- 25. NHibernate Projektion zu DTO
- 26. d3.html nicht mit d3.v4
- 27. d3 stapeln und zoomen
- 28. d3 Histogramm und Balkendiagrammdaten
- 29. MongoDB Projektion eines Subdokument
- 30. gemappte Projektion mit Companion-Objekt in SLICK
Danke, dass Sie sich die Zeit nehmen eine Antwort zu geben, ich schätze es wirklich. Dein Code war genau das, wonach ich suchte. Danke auch für all Ihre wundervollen Beiträge zur D3! –
+1 für das, was @TomStove gesagt hat ... – meetamit
@Jason gibt es irgendeinen Weg, den 'd3.geo.circle's Winkel/Radius umzuwandeln? Wie wäre es mit Herkunft? – Fresheyeball