Skip to content

Commit 7dc0f84

Browse files
author
Hannah
authored
Merge pull request #8787 from dennisadams/rhumb-arc-fix
Fix issue in rhumb arc polylines
2 parents f35b743 + 65aa312 commit 7dc0f84

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

CHANGES.md

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
##### Fixes :wrench:
1010

1111
- Fixed error with `WallGeoemtry` when there were adjacent positions with very close values [#8952](https://github.com/CesiumGS/cesium/pull/8952)
12+
- Fixed a bug where certain rhumb arc polylines would lead to a crash. [#8787](https://github.com/CesiumGS/cesium/pull/8787)
1213

1314
### 1.70.1 - 2020-06-10
1415

Source/Core/PolylinePipeline.js

+4-5
Original file line numberDiff line numberDiff line change
@@ -140,16 +140,15 @@ function generateCartesianRhumbArc(
140140
array,
141141
offset
142142
) {
143-
var first = ellipsoid.scaleToGeodeticSurface(p0, scaleFirst);
144-
var last = ellipsoid.scaleToGeodeticSurface(p1, scaleLast);
145-
var start = ellipsoid.cartesianToCartographic(first, carto1);
146-
var end = ellipsoid.cartesianToCartographic(last, carto2);
147-
143+
var start = ellipsoid.cartesianToCartographic(p0, carto1);
144+
var end = ellipsoid.cartesianToCartographic(p1, carto2);
148145
var numPoints = PolylinePipeline.numberOfPointsRhumbLine(
149146
start,
150147
end,
151148
granularity
152149
);
150+
start.height = 0.0;
151+
end.height = 0.0;
153152
var heights = subdivideHeights(numPoints, h0, h1);
154153

155154
if (!ellipsoidRhumb.ellipsoid.equals(ellipsoid)) {

Specs/Core/PolylinePipelineSpec.js

+9
Original file line numberDiff line numberDiff line change
@@ -177,4 +177,13 @@ describe("Core/PolylinePipeline", function () {
177177
expect(newPositions.length).toEqual(3);
178178
expect(newPositions).toEqual([0, 0, 1]);
179179
});
180+
181+
it("generateRhumbArc return values for each position", function () {
182+
var newPositions = PolylinePipeline.generateRhumbArc({
183+
positions: Cartesian3.fromDegreesArray([0, 0, 10, 0, 10, 5]),
184+
});
185+
for (let i = 0; i < newPositions.length; i++) {
186+
expect(newPositions[i]).toBeDefined();
187+
}
188+
});
180189
});

0 commit comments

Comments
 (0)