From ab2a1efa9a2196b45c64dd6eb91fbec17861e34f Mon Sep 17 00:00:00 2001 From: masashi Date: Tue, 1 Sep 2026 11:41:47 +0900 Subject: [PATCH] Make bearing a clockwise map rotation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bearing を「値を増やすと地図が時計回りに回る」向きに統一し、ネイティブ SDK との変換をコアの CameraBearing に集約する。 --- .../MapCameraPositionExtensions.swift | 8 ++++---- .../controller/MapKitViewController.swift | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Sources/MapConductorForMapKit/MapCameraPositionExtensions.swift b/Sources/MapConductorForMapKit/MapCameraPositionExtensions.swift index e39a96c..fe52392 100644 --- a/Sources/MapConductorForMapKit/MapCameraPositionExtensions.swift +++ b/Sources/MapConductorForMapKit/MapCameraPositionExtensions.swift @@ -1,6 +1,6 @@ import Foundation import MapKit -import MapConductorCore +@_spi(MapConductorDriver) import MapConductorCore private let converter = MapKitZoomAltitudeConverter(zoom0Altitude: 171_319_879.0) private let mapKitMaxPitch: Double = 80.9 @@ -30,7 +30,7 @@ public extension MapCameraPosition { ? Spherical.computeOffset( origin: position, distance: distance * tan(pitchRadians), - heading: bearing + heading: CameraBearing.toNativeHeading(bearing) ) : position @@ -42,7 +42,7 @@ public extension MapCameraPosition { ), fromDistance: distance, pitch: nativePitch, - heading: bearing + heading: CameraBearing.toNativeHeading(bearing) ) } } @@ -95,7 +95,7 @@ public extension MKMapView { return MapCameraPosition( position: position, zoom: zoom, - bearing: camera.heading, + bearing: CameraBearing.bearingFromNativeHeading(camera.heading), tilt: logicalTilt, visibleRegion: visibleRegion ) diff --git a/Sources/MapConductorForMapKit/controller/MapKitViewController.swift b/Sources/MapConductorForMapKit/controller/MapKitViewController.swift index dbb0f02..02bdbea 100644 --- a/Sources/MapConductorForMapKit/controller/MapKitViewController.swift +++ b/Sources/MapConductorForMapKit/controller/MapKitViewController.swift @@ -1,7 +1,7 @@ import Foundation import CoreLocation import MapKit -import MapConductorCore +@_spi(MapConductorDriver) import MapConductorCore import QuartzCore import UIKit @@ -228,12 +228,12 @@ final class MapKitViewController: MapViewControllerProtocol { // Use UIView.animate to respect the specified duration UIView.animate(withDuration: duration) { mapView.setVisibleMapRect(rect, edgePadding: .zero, animated: false) - Self.applyHeading(position.bearing, center: centerCoordinate, to: mapView, animated: false) + Self.applyHeading(CameraBearing.toNativeHeading(position.bearing), center: centerCoordinate, to: mapView, animated: false) } } else { // Use MapKit's default animation or no animation mapView.setVisibleMapRect(rect, edgePadding: .zero, animated: animated) - Self.applyHeading(position.bearing, center: centerCoordinate, to: mapView, animated: animated) + Self.applyHeading(CameraBearing.toNativeHeading(position.bearing), center: centerCoordinate, to: mapView, animated: animated) } return true