0

我一直在尝试将上下文菜单添加到标记中,但我不知道如何让上下文菜单出现。

marker.addEventListener("rightclick", new MapMouseEvent() {
    @Override
    public void onEvent(MouseEvent event) {
        contextMenu.show(
            marker, marker.getPosition().getLat(), 
            marker.getPosition().getLng()
        );
    }
});

我试图将标记转换为节点,但这没有用,帮助?

4

1 回答 1

0

要在 JxMaps 上显示弹出菜单,您必须执行以下操作:

  1. 将 JxMaps 切换到 LIGHTWEIGHT 模式 ()。在 HEAVYWEIGHT 模式下,可以在地图下方显示弹出菜单。
  2. 添加显示 PopupMenu 的代码以“单击”事件处理程序。

请看以下示例:

JPopupMenu popup = new JPopupMenu();
popup.add(new JMenuItem("Test"));

MapView mapView = new MapView(new MapViewOptions(MapComponentType.LIGHTWEIGHT));
mapView.setOnMapReadyHandler(new MapReadyHandler() {
    @Override
    public void onMapReady(MapStatus status) {
        final Map map = mapView.getMap();
        map.setCenter(new LatLng(35.91466, 10.312499));
        map.setZoom(2.0);
        map.addEventListener("rightclick", new MapEvent() {
            @Override
            public void onEvent() {
                java.awt.Point pos = MouseInfo.getPointerInfo().getLocation();
                SwingUtilities.convertPointFromScreen(pos, mapView);
                popup.show(mapView, pos.x, pos.y);
            }
        });
    }
});
于 2018-12-17T11:11:36.930 回答