Comments (4)
Good question! It makes sense to clip spherical coordinates to a rectangular bounding-box is when the projection is cylindrical (Mercator or equirectangular, for example). Otherwise the clipped area can be unexpected:
Of course, if the region you're working on is very small, it's a good idea to project first with a locally conformal projection, then compute the voronoi tessellation (with clipping) on the resulting pixel coordinates. turf.voronoi doesn't do this, and as a consequence is not accurate outside of the equatorial region if you feed it spherical coordinates.
When you need a large region of the globe and want a correct spherical voronoi, you can use d3-geo-voronoi, and then clip its polygons to a rectangle. It can be done with the clipExtent option of d3-geo's projections:
d3.geoMercator()
.fitExtent([[10, 10],[630, 490]], points)
.clipExtent([[1, 1], [639, 499]])
from d3-geo-voronoi.
I knew you'd want that :)
https://observablehq.com/@fil/clipped-geovoronoi
from d3-geo-voronoi.
One last question. Since my main goal is to produce a GeoJSON output from a BBox bounded Voronoi diagram (for further processing) and not to produce a d3 rendering, is there an easy approach to achieve? I mean the mentioned clipping based on a d3 projection only works for a d3 rendering context, right?
from d3-geo-voronoi.
@Fil Thank you so much! You made my day! The world needs more developers like you!
from d3-geo-voronoi.
Related Issues (20)
- Numeric stability HOT 8
- Geo Voronoi polygons out of triangles HOT 4
- Move to Delaunator@3 HOT 2
- return a clean triangulation HOT 4
- geoHeatmap
- long edges?
- No geoContour in v1.6.0 release. HOT 2
- Would pull requests with typescript *.d.ts definition files be welcome HOT 1
- Overlapping Voronoi polygons HOT 6
- geo_hull() Use more semantically meaningful Set and Map. HOT 2
- geo_edges: Use the more semantically meaningful Set HOT 3
- Benchmarks: A uniform approach HOT 1
- Extend and correct benchmarking HOT 2
- Add code coverage
- Export base functions to compute elements as they are needed HOT 4
- Error in hull HOT 3
- Inconsistent broken projection of a 4 - segment beach ball HOT 3
- Voronoi where each site is a segment instead of a point.
- Unexpected Singularities in Projection HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from d3-geo-voronoi.