Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 23 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,29 @@ jobs:
fi

- name: Build core and compose locally
env:
HEAD_REF: ${{ github.head_ref }}
run: |
git clone --depth 1 https://github.com/MapConductor/android-sdk-core.git _core
# コア側に PR と同名のブランチがあるなら、そちらを組む。
#
# ここを default ブランチ固定にしていると、**コアの未マージな変更に追随する
# PR は永久に赤いまま**になる。実際 CameraBearing をコアへ足したとき、
# プロバイダ側の PR が 10 本まとめて Unresolved reference で落ちた。
# コアが先にマージされるまで待つ、という運用は取り込み順の事故を呼ぶので、
# 同名ブランチがあれば拾う形にしてある(無ければ従来どおり default)。
clone_matching() {
repo="$1"; dir="$2"
url="https://github.com/MapConductor/$repo.git"
if [ -n "$HEAD_REF" ] && git ls-remote --exit-code --heads "$url" "$HEAD_REF" >/dev/null 2>&1; then
echo "$repo: matching branch $HEAD_REF"
git clone --depth 1 --branch "$HEAD_REF" "$url" "$dir"
else
echo "$repo: default branch"
git clone --depth 1 "$url" "$dir"
fi
}

clone_matching android-sdk-core _core
cd _core
./gradlew --no-daemon publishToMavenLocal
cd ..
Expand All @@ -69,7 +90,7 @@ jobs:
}
EOF

git clone --depth 1 https://github.com/MapConductor/android-sdk-compose.git _compose
clone_matching android-sdk-compose _compose
cd _compose
./gradlew --no-daemon publishToMavenLocal
cd ..
Expand Down
11 changes: 6 additions & 5 deletions src/main/java/com/mapconductor/here/MapCameraPosition.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import com.here.sdk.mapview.MapCameraUpdate
import com.here.sdk.mapview.MapCameraUpdateFactory
import com.here.sdk.mapview.MapMeasure
import com.mapconductor.core.features.GeoPoint
import com.mapconductor.core.map.CameraBearing
import com.mapconductor.core.map.MapCameraPosition
import com.mapconductor.core.map.MapCameraPositionInterface
import com.mapconductor.core.spherical.Spherical
Expand All @@ -30,7 +31,7 @@ internal fun MapCameraPosition.toHereDisplayCamera(): HereDisplayCamera {
target = GeoPoint.from(position),
tiltDeg = tilt,
hereZoomLevel = ZoomAltitudeConverter.googleZoomToHereZoom(zoom, position.latitude),
bearing = bearing,
bearing = CameraBearing.toNativeHeading(bearing),
)
}
// tilt < 0: HERE cannot represent upward pitch directly.
Expand All @@ -40,13 +41,13 @@ internal fun MapCameraPosition.toHereDisplayCamera(): HereDisplayCamera {
val hereZoomOrig = ZoomAltitudeConverter.googleZoomToHereZoom(zoom, position.latitude)
val altitude = converter.zoomLevelToAltitude(hereZoomOrig, position.latitude, 0.0)
val distanceForward = altitude * tan(tiltAbsRad)
val target = Spherical.computeOffset(position, distanceForward, bearing)
val target = Spherical.computeOffset(position, distanceForward, CameraBearing.toNativeHeading(bearing))
val adjustedHereZoom = converter.altitudeToZoomLevel(altitude / cos(tiltAbsRad), target.latitude, 0.0)
return HereDisplayCamera(
target = target,
tiltDeg = tiltAbsDeg,
hereZoomLevel = adjustedHereZoom,
bearing = bearing,
bearing = CameraBearing.toNativeHeading(bearing),
)
}

Expand Down Expand Up @@ -93,7 +94,7 @@ internal fun MapCamera.State.toMapCameraPosition(logicalTiltHint: Double?): MapC
return MapCameraPosition(
position = position,
zoom = ourZoom,
bearing = orientationAtTarget.bearing,
bearing = CameraBearing.bearingFromNativeHeading(orientationAtTarget.bearing),
tilt = pitch,
visibleRegion = null,
)
Expand All @@ -114,7 +115,7 @@ internal fun MapCamera.State.toMapCameraPosition(logicalTiltHint: Double?): MapC
return MapCameraPosition(
position = originalCenter,
zoom = originalGoogleZoom,
bearing = bear,
bearing = CameraBearing.bearingFromNativeHeading(bear),
tilt = -pitchAbsDeg,
visibleRegion = null,
)
Expand Down
Loading