Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RangeError when Plotting Polygons using Default RhumbLine Method #8599

Closed
gcure1 opened this issue Feb 7, 2020 · 1 comment
Closed

RangeError when Plotting Polygons using Default RhumbLine Method #8599

gcure1 opened this issue Feb 7, 2020 · 1 comment

Comments

@gcure1
Copy link

gcure1 commented Feb 7, 2020

This problem relates to plotting a geojson file that contains outlines for Antartica. Some of the polygons among that data include a group of adjacent points that have a latitude value of -90.0.

When executing the minified version of CesiumJS 1.64, when using the geojson data, the following error occurs:

An error occurred while rendering. Rendering has stopped. undefined RangeError: invalid array length S.subdivideRhumbLine@http://localhost:8080/Build/Cesium/Workers/createPolygonOutlineGeometry.js:232:2261 O@http://localhost:8080/Build/Cesium/Workers/createPolygonOutlineGeometry.js:232:7736 N.createGeometry@http://localhost:8080/Build/Cesium/Workers/createPolygonOutlineGeometry.js:232:11774 n@http://localhost:8080/Build/Cesium/Workers/createPolygonOutlineGeometry.js:232:12612 o@http://localhost:8080/Build/Cesium/Workers/createGeometry.js:231:21720 i@http://localhost:8080/Build/Cesium/Workers/createGeometry.js:231:20720 a/<@http://localhost:8080/Build/Cesium/Workers/createGeometry.js:231:20861

When executing the unminified version of CesiumJS 1.64, when using the geojson data, the following error occurs:

An error occurred while rendering. Rendering has stopped. undefined RangeError: invalid array length PolygonGeometryLibrary.subdivideRhumbLine@http://localhost:8080/Build/CesiumUnminified/Workers/createPolygonOutlineGeometry.js:32680:9 createGeometryFromPositions@http://localhost:8080/Build/CesiumUnminified/Workers/createPolygonOutlineGeometry.js:33184:60 PolygonOutlineGeometry.createGeometry@http://localhost:8080/Build/CesiumUnminified/Workers/createPolygonOutlineGeometry.js:33641:36 createPolygonOutlineGeometry@http://localhost:8080/Build/CesiumUnminified/Workers/createPolygonOutlineGeometry.js:33690:39 createGeometry@http://localhost:8080/Build/CesiumUnminified/Workers/createGeometry.js:31113:40 callAndWrap@http://localhost:8080/Build/CesiumUnminified/Workers/createGeometry.js:30949:31 createTaskProcessorWorker/<@http://localhost:8080/Build/CesiumUnminified/Workers/createGeometry.js:30995:25

As of version 1.54, CesiumJS added support for using rhumb lines (by default) for rendering polygon and polyline geometries, and this is related to the error of subdividing rhumb lines above. Problem occurs at same place in code (although line numbers have changed over time) from version 1.54 to the most recent version (1.66) as of Feb 6, 2020.

When the latitude values are changed to -89.9 then the above errors do not occur. I understand that when the adjacent points are -90.0 then they are coincident, which may be the cause of the issue. However, is it possible for Cesium to treat such points in a manner that will not cause it to produce the above error?

Several bug reports have already been submitted on GitHub that are related to the above issue.

#7553
#8042

The last one relates to an arc that appears during rendering. This is visible when changing the -90.0 latitude values to -89.9.


For historical purposes, we are currently using version 1.51 of CesiumJS and this problem does not occur when using the minified version. When using the unminified version, the following error occurs.

An error occurred while rendering. Rendering has stopped. undefined DeveloperError: normalized result is not a number DeveloperError@http://localhost:8080/Build/CesiumUnminified/Workers/combineGeometry.js:89:19 Cartesian3.normalize@http://localhost:8080/Build/CesiumUnminified/Workers/combineGeometry.js:1864:19 generateBarycentricInterpolateFunction/<@http://localhost:8080/Build/CesiumUnminified/Workers/combineGeometry.js:29124:31 computeTriangleAttributes@http://localhost:8080/Build/CesiumUnminified/Workers/combineGeometry.js:29157:13 splitLongitudeTriangles@http://localhost:8080/Build/CesiumUnminified/Workers/combineGeometry.js:29349:17 GeometryPipeline.splitLongitude@http://localhost:8080/Build/CesiumUnminified/Workers/combineGeometry.js:29797:17 geometryPipeline@http://localhost:8080/Build/CesiumUnminified/Workers/combineGeometry.js:30236:38 PrimitivePipeline.combineGeometry@http://localhost:8080/Build/CesiumUnminified/Workers/combineGeometry.js:30382:26 combineGeometry@http://localhost:8080/Build/CesiumUnminified/Workers/combineGeometry.js:31030:41 callAndWrap@http://localhost:8080/Build/CesiumUnminified/Workers/combineGeometry.js:30902:31 createTaskProcessorWorker/<@http://localhost:8080/Build/CesiumUnminified/Workers/combineGeometry.js:30948:25

Country outlines can be seen on the map, but the UI freezes up.

The following bug reports on GitHub are related:

#4863
#4801
#6688

So, it appears from the responses in those posts that there is bad data being submitted to CesiumJS. The offending polygon data in Antartica is again the culprit; when the adjacent coordinates with -90.0 latitude values were changed to -89.9, the error did not occur.


Sandcastle example: https://sandcastle.cesium.com/#c=ZZFha9swEIb/yuEvTsFIdBsrS52wkYWsIzTQlJWCv8jSJRaRJSOd7WVl/31y0ixrpm/33nvP3ek64aHT2KOHCVjsYYZBtzX7cdBGqTyEM2dJaIs+vbotLOdwv3qcj+GxQthog1CitlvwuEHvUQG5qBjXQy8CtI1xQkVV26gvNH1rywzKlkATKIfBpgQBsT6Ao6V3fpdB0FYi3MEWCQTMVg9riHDnWWG7OLMSJNau9dEzOc28QPc9OPv1b4oNnUdpRdSEMedbTVVbMulq/sUKsycthVl40VRahjsr+XFZPqwU+Ifrjzef3t3wVyqjn5Rm8FJYeH2BvNvh+NR95kycbvEwn99nZ1NkmQvL83y5XD1ll6Anragaw/uY+D388vEq7LxoYEKp0Tm+uk2yJA+0Nzg9wj7runGeoPVmxBgnrBsjKO5StnKHxGQIAznnp6Jc6Q60mhTJxZ2LBKQRIcTMpjVmrX9hkUxzHv1vyoYPjqdfdeiN2A+W6nq6PIqMsZzH8P8qcs6Uwv9D/AM

NOTE: I could not get Sandcastle to reproduce the problem. Please refer to the example HTML for details.

Sample GeoJson Data File was uploaded to the following URL:
https://github.com/AnalyticalGraphicsInc/cesium/files/4167927/GeoJson.txt

Browser: Firefox 68.4.2esr (64-bit)
Operating System: Windows 10 (Version 10.0.16299, Build 16299)

Same exact error occurs on Linux using Firefox 60.8.0esr (64-bit)

@hpinkos
Copy link
Contributor

hpinkos commented Jun 12, 2020

Thanks @gcure1. I'm going to close this issue as a duplicate of #7553. I added a comment to that issue so we can check your geojson file too and notify you when this is fixed.

@hpinkos hpinkos closed this as completed Jun 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants