将MapDotMarkers与JMapViewer一起使用

时间:2013-10-25 16:55:10

标签: java jmapviewer

我有两个关于JMapViewer的问题:

  • MapDotMarkers添加到我的地图后,我希望将每个点与一个摘要列表(某个Pannel相关联,其中包含一些文字,可能是关于该点的一些描述)。我怎么能这样做?

  • 我应该使用哪种方法在屏幕上显示map

2 个答案:

答案 0 :(得分:1)

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

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

public class MapMarkerSummary extends 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);
}
// ...

}

答案 1 :(得分:0)

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