1

我有两个问题JMapViewer

  • 添加MapDotMarkers到我的地图后,我想将每个点与一个摘要列表结合起来(其中包含Pannel一些文字,可能是关于该点的一些描述)。我怎样才能做到这一点?

  • 我应该使用什么方法使map屏幕上可见?

4

2 回答 2

1

不幸的是,没有简单的方法可以将摘要列表添加到地图中,但是,有一种方法:

添加摘要列表的整个解决方案将基于创建自定义 MapMarker。您需要添加新的类,例如扩展当前 MapMarker 类的“SummaryMapMarker”。请查看 JMapViewer 源代码附带的现有 MapMarkerCircle.java(从 JMapViewer 开源下载)。创建 MapMarkerCircle 的副本,将其重命名为 MapMarkerSummary.java 并根据您的需要进行修改。然后,您可以使用著名的绘制方法在地图上输出任何摘要,这意味着使用 Graphics g 绘制线条、圆形、矩形、文本、使用 g.drawLine、g.drawString、g.drawRect 等的图像。您可以创建任何自定义摘要(真的!)。简而言之,整个想法是能够根据屏幕像素(x,y)坐标在屏幕上显示任何你想要的内容。下面贴出来供大家参考。如果您需要任何进一步的详细信息,请让我知道,以防万一。我能够自己创建精美的摘要并将其添加到地图查看器中。完成 MapMarkerSummary 类后,您可以将其添加到主类中的主面板,就像添加 DotMap Marker 一样(例如 map().addMapMarker(new MapMarkerSummary...) )

公共类 MapMarkerSummary 扩展 MapObjectImpl 实现 MapMarker {

public void paint(Graphics g, Point position, int radio) {
    // ...
    int size_h = radio;
    int size = 64;
    g.setColor(Color.blue);

    g.draw3DRect(position.x - 5, position.y - 5, 400, 120, true);
    g.drawString("20°C", position.x + size - 10, position.y + 25);
    g.drawString("30°C", position.x + size - 10, position.y + 37);
    g.setColor(Color.gray);
    g.drawLine(position.x + size + 18, position.y - 4, position.x + size + 18 ,        position.y + 112);
}
// ...

}

于 2013-11-22T05:24:27.330 回答
0

您可以查看与库 JMapViewer 一起下载的源文件 Demo.java,它包含您问题的答案。您可以用几条简单的线条轻松地使地图可见,创建点,添加工具提示。请检查上面提到的源文件,让我知道您需要进一步的帮助。你有这个文件(Demo.java)吗?

于 2013-11-09T23:47:44.077 回答