2017-05-30 165 views
0

我正在顯示一個OSM圖與庫jxmapviewer2從jxmapviewer2獲取緯度經度

我不能設法得到地圖的點的緯度經度,爲istance我想通過點擊它獲得一個點的地理座標

public void mouseClicked(MouseEvent e) { 
    if(e.getClickCount() == 1 && e.getButton() == MouseEvent.BUTTON3){ 
    java.awt.Point p = e.getPoint(); 
    double X = p.getX(); 
    double Y = p.getY(); 
    System.out.println("X:"+X+",Y:"+Y); 
    } 
} 

上面這段代碼返回的輸出,如:

X:239.0,Y:113.0 
+1

你還添加了鼠標監聽器的組件?很可能你必須使用屬於類「JXMapViewer」一部分的'public GeoPosition convertPointToGeoPosition(Point2D pt)'。 – matt

+0

它的工作,謝謝! –

+0

你應該考慮將實際答案標記爲正確的,如果那是你所做的。 – matt

回答

1

假設你已經創建了一個JXMapViewer並添加鼠標監聽器,那麼你可以使用你的瀏覽器來獲得GeoPosition。

JXMapViewer viewer; 
//initialize somehow. 
viewer.addMouseListener(new MouseAdapter(){ 
    public void mouseClicked(MouseEvent e) { 
      if(e.getClickCount() == 1 && e.getButton() == MouseEvent.BUTTON3){ 
       java.awt.Point p = e.getPoint(); 
       GeoPosition geo = viewer.convertPointToGeoPosition(p); 
       System.out.println("X:"+geo.getLattitude()+",Y:"+geo.getLongitude()); 
      } 
    } 
});