在NASA WorldWind Java中,我使用PointPlacemark来表示图像,因为无论缩放级别如何,它都保持相同的大小.问题是我想在Point Placemark上设置标题,即使相机倾斜,它也会保持在指南针上.它在查看一个倾斜的地球仪时完全按照我想要的方式工作,但当我倾斜时,地标继续面向屏幕,而不是与地球一起倾斜,这会导致它变得奇怪.
这是一个GIF,说明了我所看到的:https: //giphy.com/embed/3o7WIqZUceR8xh6BOg
我希望点地标图像保持在相对于地球的标题上,即使在倾斜时 - 因此当视图倾斜时图像基本上"平坦化",而不管缩放级别如何仍保持相同的大小.
这是我正在使用的代码片段.我正在设置attrs.setHeadingReference(AVKey.RELATIVE_TO_GLOBE); 在关联的PointPlacemarkAttributes上.在此示例中,我将标题设置为135度.
import gov.nasa.worldwind.WorldWind;
import gov.nasa.worldwind.avlist.AVKey;
import gov.nasa.worldwind.geom.Position;
import gov.nasa.worldwind.layers.RenderableLayer;
import gov.nasa.worldwind.render.Offset;
import gov.nasa.worldwind.render.PointPlacemark;
import gov.nasa.worldwind.render.PointPlacemarkAttributes;
public class Placemarks extends ApplicationTemplate {
public static class AppFrame extends ApplicationTemplate.AppFrame {
public AppFrame() {
super(true, true, false);
final RenderableLayer layer = new RenderableLayer();
PointPlacemark pp = new PointPlacemark(Position.fromDegrees(28, -102, 30000));
pp.setLabelText("Airplane");
pp.setLineEnabled(false);
pp.setAltitudeMode(WorldWind.ABSOLUTE);
PointPlacemarkAttributes attrs = new PointPlacemarkAttributes();
attrs.setImageAddress("images/airplane.png");
attrs.setScale(0.05);
attrs.setImageOffset(Offset.CENTER);
//Point to 135.0
attrs.setHeading(135.0);
attrs.setHeadingReference(AVKey.RELATIVE_TO_GLOBE);
pp.setAttributes(attrs);
layer.addRenderable(pp);
// Add the …Run Code Online (Sandbox Code Playgroud)