Java 点位置标记的绘制顺序
有没有办法确定“世界风”中点位置标记的绘图顺序 即使在Placemark B和音频Placemark的顺序中,也可以通过在特定的缩放级别移动鼠标来更改: 到目前为止,我已经尝试:Java 点位置标记的绘制顺序,java,worldwind,Java,Worldwind,有没有办法确定“世界风”中点位置标记的绘图顺序 即使在Placemark B和音频Placemark的顺序中,也可以通过在特定的缩放级别移动鼠标来更改: 到目前为止,我已经尝试: 将点放置标记添加到单独的图层 使用RenderableLayer.setRenderables而不是RenderableLayer.addRenderable 黑客解决方案(需要修改World Wind源代码) 在gov.nasa.worldwind.render.DrawContextImplchangeor
- 将点放置标记添加到单独的图层
- 使用
而不是RenderableLayer.setRenderables
RenderableLayer.addRenderable
- 黑客解决方案(需要修改World Wind源代码)
在
gov.nasa.worldwind.render.DrawContextImpl
changeorderedRenderables
from
protected PriorityQueue<OrderedRenderableEntry> orderedRenderables =
new PriorityQueue<OrderedRenderableEntry>(100, new Comparator<OrderedRenderableEntry>()
{
public int compare(OrderedRenderableEntry orA, OrderedRenderableEntry orB)
{
double eA = orA.distanceFromEye;
double eB = orB.distanceFromEye;
return eA > eB ? -1 : eA == eB ? (orA.time < orB.time ? -1 : orA.time == orB.time ? 0 : 1) : 1;
}
});
黑客解决方案(需要修改World Wind源代码) 在
gov.nasa.worldwind.render.DrawContextImpl
changeorderedRenderables
from
protected PriorityQueue<OrderedRenderableEntry> orderedRenderables =
new PriorityQueue<OrderedRenderableEntry>(100, new Comparator<OrderedRenderableEntry>()
{
public int compare(OrderedRenderableEntry orA, OrderedRenderableEntry orB)
{
double eA = orA.distanceFromEye;
double eB = orB.distanceFromEye;
return eA > eB ? -1 : eA == eB ? (orA.time < orB.time ? -1 : orA.time == orB.time ? 0 : 1) : 1;
}
});
public class OrderedPointPlacemark extends PointPlacemark {
public OrderedPointPlacemark(Position position) {
super(position);
}
@Override
protected void makeOrderedRenderable(DrawContext dc) {
super.makeOrderedRenderable(dc);
if (this.intersectsFrustum(dc) || this.isDrawLine(dc)) {
dc.pollOrderedRenderables();
dc.addOrderedSurfaceRenderable(this);
}
}
}