我正在使用Java WWsdk。
我希望SelectListener在用户仅单击地图(即不是图标或地标等)时响应用户在地图上的单击。

当我单击对象时,它对我来说很好,但是当我单击“空白”时,它不会触发。即像水/土地。

SelectListener的文档说


  如果光标下没有对象,但光标在地形上,则选择事件将>将地形识别为拾取的对象,并将包括相应的地理>位置


这句话听起来好像每当我不单击对象时我都应该得到一个事件,但是我不知道这一点。

我是否应该添加其他类型的图层来获得对地图的点击以触发选择事件?

我使用它为我工作,需要对被单击的对象执行的操作:

this.worldWindowGLCanvas1.addSelectListener(new SelectListener()
    {
        public void selected(SelectEvent event)
        {
             //Never goes here for clicks on map, just clicks
             //on objects i have already created.
             doStuff();
        }
     }

最佳答案

使用MouseListener添加addMouseListener()

this.worldWindowGLCanvas1.addMouseListener(new MouseListener() {
    @Override
    public void mouseClicked(MouseEvent e) {
        doStuff();
    }
    ...
}


如果要防止World Wind用点击做其他事情,您可能还想将监听器添加到AWTInputHandler而不是WorldWindowGLCanvas。更多详细信息in this question

关于java - 美国国家航空航天局世界之风:SelectListener不会触发 map 点击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26939279/

10-10 14:10