如何减去或添加两个坐标

How to subtract or add two coordinates

我正在尝试对两个城市的两个坐标进行减法和加法。我想用 void 方法来做这件事。你有什么建议,我应该怎么做?

例如:

我想用city2(x2, y2)减去city1 (x1, y1)的坐标,然后在main class中调用它。那怎么办呢?

我在下面写了这段代码,但它不起作用或者我不知道如何调用它...

主要class:

public class Main {

public static void main(String[] args) {
    
        Coordinates paris = new Coordinates(48.830103, 2.562957);
        Coordinates rioDeJaneiro = new Coordinates(-22.492147, -43.143827);

坐标class:

 public class Coordinates {

    private double latitude;
    private double longitude;

    public Coordinates(double latitude, double longitude) {
        this.latitude = latitude;
        this.longitude = longitude;
    }

    public double getLatitude() {
        return this.latitude;
    }

    public double getLongitude() {
        return this.longitude;
    }

     public void subtract(Coordinates otherCoordinates) {
           new Coordinates(this.latitude - otherCoordinates.getLatitude(),
                            this.longitude - otherCoordinates.getLongitude());
     }

您的代码无法按预期运行。 你的减法应该像下面这样

public void subtract(Coordinates otherCoordinates) {
                this.latitude = this.latitude- otherCoordinates.getLatitude();
                this.longitude = this.longitude- otherCoordinates.getLongitude();
 }

如果纬度和经度不可变则

public Coordinates subtract(Coordinates otherCoordinates) {
           return  new Coordinates(this.latitude - otherCoordinates.getLatitude(), 
                                    this.longitude - otherCoordinates.getLongitude());
  }

行得通。另一种方式是:

public static void subtract(Coordinates city1, Coordinates city2, Coordinates result) {
            result.longitude =  city1.getLongitude() - city2.getlongitude());
            result.latitude = city1.getLatitude() - city2.getLatitude();
}

但是,您发布的经过修改的解决方案是最好的(正如已经指出的那样)。

public Coordinates subtract(Coordinates otherCoordinates) {
            return new Coordinates(this.latitude - otherCoordinates.getLatitude(), 
                    this.longitude - otherCoordinates.getLongitude());
}

在后一种情况下,假设 subtractCoordinates class 中的一个方法,您可以按如下方式调用它:

Coordinates city1 = new Coordinates(...);
Coordinates city2 = new Coordinates(...);

Coordinates result = city1.subtract(city2);