I'm developing an app with Cesium. And I'm testing with few android tablets.
To select the entities I use "drillPick". And some devices seems to fail in a loop.
I've done a little research with the Cesium source, and I think it's detecting the same entity over and over.
It's happening in particular devices in a quite high rate. In my case only the HUAWEIs have this problem.
I made a sample code to cause this issue.
If you run this code, You will see a high red box in the middle of the map which ID is 'bigBox' and inside that there will be a smaller yellow box which ID is 'littleBox'. If you tap or click the bigBox, the color will switch red and green. And an 'emoji' will appear where you tapped for recognize. And logs will be printed in the console.
Ordinary the log should look like this.
pick 1 id: bigBox
pick 2 id: bigBox
pick 3 id: littleBox
did drillPick length: 3
If you keep on tapping and if your device is like one of mine. Sometimes the log will keep on selecting the same entity.
Not always but when the expected entity is not in the result, the log will look like this.
pick 1 id: littleBox
pick 2 id: littleBox
pick 3 id: littleBox
pick 4 id: littleBox
pick 5 id: littleBox
pick 6 id: littleBox
pick 7 id: littleBox
pick 8 id: littleBox
pick 9 id: littleBox
pick 10 id: littleBox
did drillPick length: 10
In this code I'm limiting the drillPick to 10 so it will not loop, but the failure to pick the 'bigBox' will remain.
I want to know whether this issue happens also on other devices and is there a solution for this.
To check this issue easier, I made an auto tapping function in this code.
There are five options in the left top.
Push the 'start interval' button and start the auto tapping.
The 'interval' text box is the interval time. I recommend the interval time to be slower than the time Cesiums takes to change the color of the box.
The 'times' text box is the number of times to tap. (about 200 may be enough)
The 'switching on/off' button will toggle switching the color or not.
The 'tap area' text box is the rect size of the tapping zone.
The 'emoji' stands for, hit the box == , hit out side the box == , hit the box but fail to pick 'bigBox' ==
The point to cause this issue is to change the property of the target. This is why it's changing the color.
And it needs to be tapped at a critical point. This is why it's changing the tap point.
So even if this issue happens on your device, if you set the switching option to off or set the tap area to 0, you could avoid this issue.
But of course events are expected at selection so this isn't the solution.
P.S. I'm planning to make another post but the same devices also have problems with clamp to ground.