public class Map { private MapLongitude mapLongitude; private Longitude longitude; private MapLatitude mapLatitude; private Latitude latitude; private boolean autoUpdateEnabled; public Map() { this.mapLongitude = new MapLongitude(); this.longitude = new Longitude(mapLongitude); this.mapLatitude = new MapLatitude(); this.latitude = new Latitude(mapLatitude); this.autoUpdateEnabled = true; // デフォルトで自動更新はONに設定 } // 自動更新のON/OFFを切り替えるメソッド public void setAutoUpdate(boolean enabled) { this.autoUpdateEnabled = enabled; } public double getMapLongitude() { return mapLongitude.getValue(); } public double getLongitude() { return longitude.getValue(); } // GPSの位置情報が更新されるメソッド public void updateGPS(double lat2, double long2) { this.longitude.updateGPS(lat2, long2); this.latitude.updateGPS(lat2, long2); if (this.autoUpdateEnabled) { this.mapLatitude.updateLatitude(lat2); this.mapLongitude.updateLongitude(long2); } } // 手動でGPSの位置情報を更新するメソッド public void updateManually() { this.longitude.updateMapLongitude(); this.latitude.updateMapLatitude(); } public double getMapLatitude() { return mapLatitude.getValue(); } public double getLatitude() { return latitude.getValue(); } }