2013-10-25 44 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); 
} 
// ... 

}