-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Turn off throttle option when requesting for an availability tile from the parent terrain layer #9099
Conversation
Thanks for the pull request @baothientran!
Reviewers, don't forget to make sure that:
|
@baothientran Definitely 👍 on the change. The terrain and imagery system used to throttle requests in the Can you make the same change for other terrain/imagery providers? A search for |
@lilleyse I turned off the throttle options for all the terrain and imagery provider. Some tests are fixed along the way, but it shouldn't change the testing cases' purposes |
@baothientran could you add the fix to |
@kring can you confirm that this is a good fix? |
throttle: true, | ||
throttleByServer: true, | ||
}); | ||
promise = terrainProvider.requestTileGeometry(0, 0, 0, request); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't it a problem that we're no longer calling createRequest
here? So the request has no URL, for one thing.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it seems like createRequest() returns an empty request object with only throttleByServer
option on. I kind of create the new Request for only the test case. Should I modify the createRequest() with throttle to be true for all of them?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh ok, I hadn't realized createRequest
also created a request without a URL. That makes sense, no need to change anything.
The function
checkLayer()
in theCesiumTerrainProvider.js
file is responsible for requesting an availability tile for the parent layer. However, the promise is delayed for a long time or never get resolved especially where the tile is overlapped with the child layer, which makesQuadtreePrimitive
upsamples the tile from the parent tile. Turning off the throttle option in the Request object does solves the issue though. This is consistent with other requests coming from the other terrain codeThis is the parent layer when all the tiles are available. Notice the three lines on the head of the two tiles at level 10
This is the missing tiles from the parent layer when delay happens. Notice there are no three lines on the head of the tiles at level 10. Keeping zooming in doesn't solve the problem
@lilleyse Can you please take a look at it? Please let me know if I need to add anything