Comments (3)
If I've got your question right, I think you want to use the polyfill
function (along with the maxPolyfillSize
function to allocate the required memory). It takes a GeoJSON-like struct defining the area to fill, and it guarantees perfectly contiguous geometries have no overlapping hexagons (though the hexagons themselves may overlap the geometries, each overlapping hexagon will be in one or the other geofence, never both).
The bindings (that @isaacbrodsky is working on getting open sourced hopefully this month) handled the GeoJSON to GeoJSON-like struct conversion for you.
After that, you would just take the value for the zip code geofence and divide it equally amongst the hexagons in the polyfilled zip code hexagon array.
(EDIT: Hopefully the docs are pushed up soon so I don't have to link to source code directly for long. :) Also "polyfill" in this case is short for "polygon fill", and not the kind of polyfill common in Javascript.)
from h3.
+1 to @dfellis 's answer. only caveat i can see is for his solution alone, there isn't any weighted distribution possible for hexagons that have geometry overlapping a polygon boundary because they'll be assigned one side or another, like he said.
so for the portion of your question "taking into account degree of overlapping", you might have to implement post-processing with a degree of sophistication appropriate for your use case.
depending on your use case, you could avoid that by using sufficiently high resolution hexagon cells and stick with @dfellis's solution :)
from h3.
Closing this as resolved, please reopen if the answers here have any issues.
from h3.
Related Issues (20)
- PloygonAlgos - Throws error when used wrapper library in swift HOT 2
- About RFC: Polyfill modes release plan HOT 1
- replace `sprintf` with `snprintf` HOT 1
- Add additional modes for polygonToCells HOT 12
- Hex (cell) ID validation HOT 3
- Fuzzer timeout on fuzzerIj: gridPathCells
- Broken Link to website docs in contributing.md
- Broken link to website in contributing docs
- Uber CLA Contact HOT 1
- Has cell_to_vertex been implemented? HOT 2
- Replace empty function parameters with `void` HOT 1
- cell_to_child_pos() version 4 of the Python API client HOT 3
- polygonToCells: validity of polygons HOT 3
- Missing library stubs MYPY HOT 2
- polygonToCells not returning all H3Cells for the bounding box containing both USA and Russia HOT 1
- Confirmation of grid algorithm HOT 3
- cellToChildren error HOT 2
- Add function for returning the H3 indices of each endpoint of a directed edge HOT 5
- Expose cellToChildrenSize in bindings HOT 1
- Getting unexpected results when converting coordinates in either direction HOT 4
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 h3.