Newer
Older
MapPush / src / Map.java
import java.util.*;

public class Map {
    private MapLatitude mapLatitude;
    private Latitude latitude;
    private MapLongitude mapLongitude;
    private Longitude longitude;
    private Presenter presenter;
    private boolean autoUpdate; // 自動更新の状態を管理する変数

    public Map() {
        this.mapLatitude = new MapLatitude();
        this.latitude = new Latitude();
        this.mapLongitude = new MapLongitude();
        this.longitude = new Longitude();
        this.presenter = new Presenter(longitude, latitude, mapLongitude, mapLatitude);
        this.autoUpdate = true; // デフォルトは自動更新ON
    }

    // 自動更新の状態を設定する
    public void setAutoUpdate(boolean autoUpdate) {
        this.autoUpdate = autoUpdate;
    }

    // 現在のGPS位置で手動更新を行う
    public void updateManually() {
        this.presenter.updateMapLocation(latitude.getValue(), longitude.getValue());
    }

    // 以下のメソッドは変更なし
    public double getMapLatitude() {
        return mapLatitude.getValue();
    }

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

    public double getMapLongitude() {
        return mapLongitude.getValue();
    }

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

    // GPS位置が更新された時の処理
    public void updateGPS(double lat2, double long2) {
        this.latitude.updateGPS(lat2, long2);
        this.longitude.updateGPS(lat2, long2);
        if (autoUpdate) { // 自動更新がONの時のみ地図位置を更新
            this.presenter.updateMapLocation(lat2, long2);
        }
    }
}