h3-java icon indicating copy to clipboard operation
h3-java copied to clipboard

About Handling Error in cellsToMultiPolygon

Open seajung opened this issue 1 year ago • 1 comments

I discovered that when using the cellsToMultiPolygon method, a SIGSEGV error can occur if there are duplicate indices in the input array. And this issue was addressed in a recent bug fix.

However, since the cellsToLinkedMultiPolygon method is designed to take a set as input, i think it would be beneficial to add a pre-processing step to ensure the input array has unique elements before calling h3Api.cellsToLinkedMultiPolygon.

Alternatively, there should be at least a comment in the code indicating that the input array must contain unique elements. Additionally, it would be helpful to specify an error code for the H3Exception, as it currently returns only 1.

It was really hard for me to find out the reason for the error 😭

seajung avatar Nov 11 '24 23:11 seajung

Changing the signature of cellsToMultiPolygon(Collection<Long> h3, boolean geoJson) to cellsToMultiPolygon(Set<Long> h3, boolean geoJson) will enforce it to not have duplicates, as per definition a set doesn't contain duplicates, and not further change is required in the H3Core to deduplicate anything.

luneo7 avatar Nov 12 '24 17:11 luneo7