2013-10-25 90 views
1

使用MapDotMarkers我有JMapViewer两个问题:与JMapViewer

  • 加入MapDotMarkers我的地图后,我想对夫妇每一个汇总表(其上写在它的一些文字一定Pannel点,大概关于点的一些描述)。我怎样才能做到这一点?

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

回答

0

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

1

不幸的是,在添加汇总列表中的地图没有简单的方法,但是,有一种方法:

加入汇总列表的整体解决方案将基于一个创建自定义MapMarker。您需要添加新的类,例如“SummaryMapMarker”,它扩展了当前的MapMarker类。请检查JMapViewer源代码附带的现有MapMarkerCircle.java(从JMapViewer开源下载)。创建MapMarkerCircle的副本,将其重命名为像MapMarkerSummary.java之类的内容,并根据您的需要对其进行修改。然后,您可以使用着名的绘图方法在地图上输出任何摘要,即使用Graphics g来使用g.drawLine,g.drawString,g.drawRect等绘制直线,圆形,矩形,文本和图像。您可以创建任何自定义摘要(任何真正的!)。简而言之,整个想法是能够在屏幕上随意滑动,而基于屏幕像素(x,y)坐标。以下内容粘贴供您参考。如果您需要更多详细信息,请告诉我,以防万一。我能够创建精美的摘要并将其添加到地图查看器中。 MapMarkerSummary类完成后,可以像添加DotMap标记(例如map()。addMapMarker(新的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); 
} 
// ... 

}