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 @@ -38,8 +38,29 @@ jobs:
cache: 'gradle'

- 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 @@ -53,7 +74,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
5 changes: 4 additions & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
[versions]
composeLibs = "1.7.8"
# material3 は compose-ui とは別のバージョン系列。composeLibs(ui 系)を流用すると
# 存在しない material3:1.7.8 を要求してクラスパスごと解決に失敗する。
material3 = "1.4.0"
mapplsSdk = "9.0.3"
coroutines = "1.9.0"
agp = "9.2.1"
Expand Down Expand Up @@ -37,7 +40,7 @@ play-services-maps = { module = "com.google.android.gms:play-services-maps", ver

# Sample app
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
androidx-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "composeLibs" }
androidx-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "material3" }
androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "composeLibs" }

# Test
Expand Down
11 changes: 6 additions & 5 deletions src/main/java/com/mapconductor/mappls/MapCameraPosition.kt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.mapconductor.mappls

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 @@ -21,7 +22,7 @@ fun MapCameraPosition.toCameraPosition(): CameraPosition {
.target(GeoPoint.from(position).toLatLng())
.zoom(ZoomAltitudeConverter.googleZoomToMapplsZoom(zoom))
.tilt(tilt)
.bearing(bearing)
.bearing(CameraBearing.toNativeHeading(bearing))
// TODO:
// .padding(paddings?.toEdgeInsects())
.build()
Expand All @@ -37,15 +38,15 @@ fun MapCameraPosition.toCameraPosition(): CameraPosition {
cos(tiltAbsRad) *
tan(tiltAbsRad) *
NEGATIVE_TILT_TARGET_DISTANCE_SCALE
val target = Spherical.computeOffset(position, distanceForward, bearing)
val target = Spherical.computeOffset(position, distanceForward, CameraBearing.toNativeHeading(bearing))
val adjustedZoom = zoom + NEGATIVE_TILT_ZOOM_OFFSET_AT_MAX_TILT * (tiltAbsDeg / 60.0)

return CameraPosition
.Builder()
.target(target.toLatLng())
.zoom(ZoomAltitudeConverter.googleZoomToMapplsZoom(adjustedZoom))
.tilt(tiltAbsDeg)
.bearing(bearing)
.bearing(CameraBearing.toNativeHeading(bearing))
// TODO:
// .padding(paddings?.toEdgeInsects())
.build()
Expand Down Expand Up @@ -82,7 +83,7 @@ internal fun CameraPosition.toMapCameraPosition(logicalTiltHint: Double?): MapCa
return MapCameraPosition(
position = target?.toGeoPoint() ?: GeoPoint.fromLongLat(0.0, 0.0),
zoom = ZoomAltitudeConverter.mapplsZoomToGoogleZoom(zoom),
bearing = bearing,
bearing = CameraBearing.bearingFromNativeHeading(bearing),
tilt = pitch,
visibleRegion = null,
)
Expand All @@ -104,7 +105,7 @@ internal fun CameraPosition.toMapCameraPosition(logicalTiltHint: Double?): MapCa
return MapCameraPosition(
position = originalPosition,
zoom = originalGoogleZoom,
bearing = bear,
bearing = CameraBearing.bearingFromNativeHeading(bear),
tilt = -pitchAbsDeg,
visibleRegion = null,
)
Expand Down
Loading