2017-05-30 23 views
0

私はライブラリでOSMマップを表示しています。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を作成し、それにあなたのマウスリスナーを追加したと仮定すると、あなたは地理位置を得るためにあなたのビューアを使用することができます。

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()); 
      } 
    } 
}); 
関連する問題