如何在java中保存地理位置位置

时间:2016-06-17 14:56:52

标签: java jxmapviewer

当用户点击地图时,我会从地图中获取坐标。现在我想保存它并将坐标传递给另一个类。如果有人知道答案,请指导。

由于

public class Corndinates extends MapClickListener{
    /**
     * Creates a mouse listener for the jxmapviewer which returns the
     * GeoPosition of the the point where the mouse was clicked.
     *
     * @param viewer the jxmapviewer
     */
    public Corndinates(JXMapViewer viewer) {
        super(viewer);
    }


    @Override
    public void mapClicked(GeoPosition location) {

        GeoPosition  cord = location;
        System.out.println(cord);

    }
}

我想将电话线传递到下面的课程并将该位置添加到此行

//初始化第一个和最后一个位置(程序从鼠标点击这里得到坐标)

    GeoPosition firstPoint = new GeoPosition(50.834722, 12.921389);

但我不知道如何在cord的firstPoint对象中放置值。

public class MapPanel {

public static void main(String args) {
    System.out.println(args);

    JFrame frame = new JFrame("FrameWork");
    FrameWork frameWork = new FrameWork();
    frame.setContentPane(frameWork.mainPanel);

    // Create a TileFactoryInfo for OpenStreetMap
    TileFactoryInfo info = new OSMTileFactoryInfo();
    DefaultTileFactory tileFactory = new DefaultTileFactory(info);
    frameWork.mapViewer.setTileFactory(tileFactory);

    // Use 8 threads in parallel to load the tiles
    //tileFactory.setThreadPoolSize(8);

    //Initializing first and last position (program to get the coordinate from mouse click here)
    GeoPosition firstPoint = new GeoPosition(50.834722, 12.921389);
    GeoPosition lastPoint = new GeoPosition(50.839167, 12.9275);

    // Create a track from the geo-positions
    List<GeoPosition> track = Arrays.asList(firstPoint,lastPoint);
    RoutePainter routePainter = new RoutePainter(track);

    // Set the Default Location
    GeoPosition chemnitz = new GeoPosition(50.833333, 12.916667);

    //Set the focus
    frameWork.mapViewer.setZoom(7);
    frameWork.mapViewer.setAddressLocation(chemnitz);

    // Add interactions
    MouseInputListener mia = new PanMouseInputListener(frameWork.mapViewer);

    frameWork.mapViewer.addMouseListener(mia);
    frameWork.mapViewer.addMouseMotionListener(mia);

// frameWork.mapViewer.addMouseListener(new CenterMapListener(frameWork.mapViewer));         frameWork.mapViewer.addMouseWheelListener(new ZoomMouseWheelListenerCenter(frameWork.mapViewer)); // frameWork.mapViewer.addKeyListener(new PanKeyListener(frameWork.mapViewer));

    // Create waypoints from the geo-positions
    Set<SwingWaypoint> waypoints = new HashSet<SwingWaypoint>(Arrays.asList(
            new SwingWaypoint("Zentrum", firstPoint),
            new SwingWaypoint("TU", lastPoint)));

    // Create a waypoint painter that takes all the waypoints
    WaypointPainter<Waypoint> waypointPainter = new WaypointPainter<Waypoint>();
    waypointPainter.setWaypoints(waypoints);

    // Create a compound painter that uses both the route-painter and the waypoint-painter
    List<org.jxmapviewer.painter.Painter<JXMapViewer>> painters = new ArrayList<org.jxmapviewer.painter.Painter<JXMapViewer>>();
    painters.add(routePainter);
    painters.add(waypointPainter);

    CompoundPainter<JXMapViewer> painter = new CompoundPainter<JXMapViewer>(painters);
    frameWork.mapViewer.setOverlayPainter(painter);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);


}

}

1 个答案:

答案 0 :(得分:0)

通过传递给另一个类,我认为你想避免将信息保存到文件中。以下代码将代码传递到您的新类

@Override
public void mapClicked(GeoPosition location) {

    GeoPosition  cord = location;
    System.out.println(cord);
    NewClass c = new NewClass(cord);

}

public class NewClass {

    GeoPosition location = null;

    public NewClass(GeoPosition coord) { //constructor to hold location in class
        location = coord;
    }

    public doCalc {
        //etc
    }
}