Skip to content
Merged
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
17 changes: 16 additions & 1 deletion .claude/settings.local.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,22 @@
"Bash(ls /Users/masashi/android-sdk/mapconductor-for-*/README.md /Users/masashi/android-sdk/mapconductor-for-*/docs/)",
"Read(//Users/masashi/Desktop/ios-sdk/ios-for-googlemaps/**)",
"Bash(xargs -I{} sh -c 'echo \"=== {} ===\" && cat \"{}\"')",
"Bash(xargs -I{} sh -c 'echo \"=== {} ===\" && grep -E \"name:|url:\" \"{}\" | head -5')"
"Bash(xargs -I{} sh -c 'echo \"=== {} ===\" && grep -E \"name:|url:\" \"{}\" | head -5')",
"Bash(xargs ls *)",
"Bash(unzip *)",
"Bash(/Users/masashi/.cargo/bin/cargo new *)",
"Bash(/Users/masashi/.cargo/bin/cargo test *)",
"Bash(~/.cargo/bin/rustup target *)",
"Bash(~/.cargo/bin/cargo build *)",
"Bash(codex --version)",
"Bash(swift build *)",
"Bash(xcodebuild -workspace /Users/masashi/Desktop/ios-sdk/ios-sdk-core/Package.swift -scheme MapConductorCore -destination generic/platform=iOS build)",
"Bash(xcodebuild -project /Users/masashi/Desktop/ios-sdk/.swiftpm/xcode/package.xcworkspace build ONLY_ACTIVE_ARCH=YES -destination 'generic/platform=iOS Simulator')",
"Bash(xcodebuild -sdk iphonesimulator -scheme \"mapconductor-for-arcgis\" -destination \"generic/platform=iOS Simulator\" build)",
"Bash(xcodebuild -scheme \"ios-sdk-core\" -destination \"generic/platform=iOS Simulator\" build)",
"Bash(xcodebuild -list)",
"Bash(xcodebuild -scheme MapConductorSampleApp -destination \"generic/platform=iOS Simulator\" build)",
"Bash(xcodebuild -workspace MapConductorSampleApp.xcworkspace -scheme MapConductorSampleApp -destination 'generic/platform=iOS Simulator' build)"
],
"deny": [],
"ask": []
Expand Down
19 changes: 11 additions & 8 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,10 @@ jobs:
fi

- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: recursive
token: ${{ secrets.GITHUB_TOKEN }}

- name: Write gradle.properties
run: |
Expand All @@ -54,15 +57,15 @@ jobs:
echo "NDK_VERSION=${NDK_VERSION}" >> $GITHUB_ENV

- name: Set up Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: 17

- name: Install Android NDK $NDK_VERSION
uses: android-actions/setup-android@v3
with:
packages: "build-tools;36.0.0 ndk;${{ env.NDK_VERSION }} platform-tools platforms;android-35"
# - name: Install Android NDK $NDK_VERSION
# uses: android-actions/setup-android@v3
# with:
# packages: "build-tools;36.0.0 ndk;${{ env.NDK_VERSION }} platform-tools platforms;android-35"

- name: Read module list from projects.properties
id: define
Expand All @@ -73,7 +76,7 @@ jobs:
# echo "here_sdk_artifact=$here_sdk_name" >> $GITHUB_OUTPUT

- name: Restore hash cache
uses: actions/cache/restore@v4
uses: actions/cache/restore@v5
with:
key: lint-hash-cache-${{ github.base_ref || 'main' }}
path: .lint-hash-cache/
Expand Down Expand Up @@ -168,7 +171,7 @@ jobs:

- name: Save hash cache
if: success()
uses: actions/cache/save@v4
uses: actions/cache/save@v5
with:
key: lint-hash-cache-${{ github.base_ref || 'main' }}-${{ github.run_id }}
path: .lint-hash-cache/
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/publish-maven-central-only-bom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ jobs:
ANDROID_HOME: /usr/local/lib/android/sdk
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
submodules: recursive
token: ${{ secrets.GITHUB_TOKEN }}

- name: Set up Java
uses: actions/setup-java@v4
uses: actions/setup-java@v5
with:
distribution: temurin
java-version: '17'
Expand Down Expand Up @@ -94,7 +94,7 @@ jobs:
echo " Already published (remote version ${remote_version}); skipping."
else
echo " Will publish local version ${local_version} (remote='${remote_version}')."
publish_tasks+=(":${module}:publishReleasePublicationToCentralPortal")
publish_tasks+=(":${module}:publishAllPublicationsToCentralPortal")
fi
done

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
ANDROID_HOME: /usr/local/lib/android/sdk
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: recursive
token: ${{ secrets.GITHUB_TOKEN }}
Expand Down Expand Up @@ -82,6 +82,7 @@ jobs:
android-icons
android-marker-clustering
android-heatmap
android-geojson-layer
mapconductor-bom
android-sdk-core
android-for-arcgis
Expand Down Expand Up @@ -134,7 +135,7 @@ jobs:
echo " Already published (remote version ${remote_version}); skipping."
else
echo " Will publish local version ${local_version} (remote='${remote_version}')."
publish_tasks+=(":${module}:publishReleasePublicationToCentralPortal")
publish_tasks+=(":${module}:publishAllPublicationsToCentralPortal")
fi
done

Expand Down
5 changes: 4 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
url = git@github.com:MapConductor/android-for-maplibre.git
[submodule "android-for-mapbox"]
path = android-for-mapbox
url = git@github.com:MapConductor/android-for-mapbox.git
url = git@github.com:MapConductor/android-for-mapbox.git
[submodule "android-for-here"]
path = android-for-here
url = git@github.com:MapConductor/android-for-here.git
Expand All @@ -25,3 +25,6 @@
[submodule "android-icons"]
path = android-icons
url = git@github.com:MapConductor/android-icons.git
[submodule "android-geojson-layer"]
path = android-geojson-layer
url = git@github.com:MapConductor/android-geojson-layer.git
25 changes: 13 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,19 @@ A unified mapping library that provides a common API for multiple map providers

## Module Structure

| Module | Artifact | Description |
|---|---|---|
| `mapconductor-bom` | `com.mapconductor:mapconductor-bom` | Bill of Materials — aligns all module versions |
| `android-sdk-core` | `com.mapconductor:core` | Core abstractions, geometry types, overlay states |
| `android-for-googlemaps` | `com.mapconductor:for-googlemaps` | Google Maps implementation |
| `android-for-mapbox` | `com.mapconductor:for-mapbox` | Mapbox implementation |
| `android-for-here` | `com.mapconductor:for-here` | HERE Maps implementation |
| `android-for-arcgis` | `com.mapconductor:for-arcgis` | ArcGIS implementation |
| `android-for-maplibre` | `com.mapconductor:for-maplibre` | MapLibre implementation |
| `android-icons` | `com.mapconductor:icons` | Composable marker icons (CircleIcon, FlagIcon, info bubbles) |
| `android-heatmap` | `com.mapconductor:heatmap` | Map-provider-agnostic heatmap overlay |
| `android-marker-clustering` | `com.mapconductor:marker-clustering` | Automatic marker clustering across all providers |
| Module | Artifact | Description |
|-----------------------------|--------------------------------------|--------------------------------------------------------------|
| `mapconductor-bom` | `com.mapconductor:mapconductor-bom` | Bill of Materials — aligns all module versions |
| `android-sdk-core` | `com.mapconductor:core` | Core abstractions, geometry types, overlay states |
| `android-for-googlemaps` | `com.mapconductor:for-googlemaps` | Google Maps implementation |
| `android-for-mapbox` | `com.mapconductor:for-mapbox` | Mapbox implementation |
| `android-for-here` | `com.mapconductor:for-here` | HERE Maps implementation |
| `android-for-arcgis` | `com.mapconductor:for-arcgis` | ArcGIS implementation |
| `android-for-maplibre` | `com.mapconductor:for-maplibre` | MapLibre implementation |
| `android-icons` | `com.mapconductor:icons` | Composable marker icons (CircleIcon, FlagIcon, info bubbles) |
| `android-heatmap` | `com.mapconductor:heatmap` | Map-provider-agnostic heatmap overlay |
| `android-marker-clustering` | `com.mapconductor:marker-clustering` | Automatic marker clustering across all providers |
| `android-geojson-layer` | `com.mapconductor:geojson-layer` | Geojson layer across all providers |

## Quick Start

Expand Down
2 changes: 1 addition & 1 deletion android-for-arcgis
Submodule android-for-arcgis updated 24 files
+15 −30 .github/workflows/publish-maven-central.yml
+12 −25 build.gradle.kts
+90 −0 docs/ArcGISMapView2D.kt.md
+50 −0 docs/ArcGISMapView2DController.kt.md
+3 −2 gradle.properties
+11 −11 gradle/libs.versions.toml
+1 −1 gradle/wrapper/gradle-wrapper.properties
+0 −10 sample-app/build.gradle.kts
+17 −12 settings.gradle.kts
+46 −78 src/main/java/com/mapconductor/arcgis/ArcGISMapView.kt
+225 −0 src/main/java/com/mapconductor/arcgis/ArcGISMapView2D.kt
+532 −0 src/main/java/com/mapconductor/arcgis/ArcGISMapView2DController.kt
+21 −6 src/main/java/com/mapconductor/arcgis/ArcGISMapViewController.kt
+99 −4 src/main/java/com/mapconductor/arcgis/ArcGISMapViewHolderImpl.kt
+5 −2 src/main/java/com/mapconductor/arcgis/ArcGISMapViewStateImpl.kt
+34 −21 src/main/java/com/mapconductor/arcgis/MapCameraPosition.kt
+4 −8 src/main/java/com/mapconductor/arcgis/circle/ArcGISCircleOverlayRenderer.kt
+8 −9 src/main/java/com/mapconductor/arcgis/groundimage/ArcGISGroundImageOverlayRenderer.kt
+20 −12 src/main/java/com/mapconductor/arcgis/marker/ArcGISMarkerController.kt
+6 −6 src/main/java/com/mapconductor/arcgis/marker/ArcGISMarkerRenderer.kt
+2 −2 src/main/java/com/mapconductor/arcgis/polygon/ArcGISPolygonOverlayRenderer.kt
+2 −2 src/main/java/com/mapconductor/arcgis/polyline/ArcGISPolylineOverlayRenderer.kt
+5 −6 src/main/java/com/mapconductor/arcgis/raster/ArcGISRasterLayerOverlayRenderer.kt
+2 −1 src/main/java/com/mapconductor/arcgis/zoom/ZoomAltitudeConverter.kt
1 change: 1 addition & 0 deletions android-geojson-layer
Submodule android-geojson-layer added at e75c70
2 changes: 1 addition & 1 deletion android-sdk-core
19 changes: 7 additions & 12 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ plugins {
alias(libs.plugins.kotlin.jvm) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.jlleitschuh.ktlint) apply false
id("com.gradleup.nmcp") version "0.0.8"
id("com.gradleup.nmcp") version "1.5.0" apply false
}

buildscript {
Expand Down Expand Up @@ -71,12 +71,16 @@ tasks.register("allLintChecks") {
// Publishing tasks for all modules
val publishableModules = listOf(
"mapconductor-bom",
"android-core",
"android-sdk-core",
"android-icons",
"android-marker-clustering",
"android-heatmap",
"android-geojson-layer",
"android-for-arcgis",
"android-for-googlemaps",
"android-for-here",
"android-for-mapbox",
"android-icons"
"android-for-maplibre"
)

tasks.register("publishAllLocal") {
Expand Down Expand Up @@ -112,12 +116,3 @@ tasks.register("publishAllToMavenCentral") {
dependsOn(publishTasks)
}

// Central Portal configuration
nmcp {
publishAllProjectsProbablyBreakingProjectIsolation {
username = findProperty("ossrh.username") as String? ?: System.getenv("OSSRH_USERNAME")
password = findProperty("ossrh.password") as String? ?: System.getenv("OSSRH_PASSWORD")
// All publications from all subprojects will be published
}
}

Binary file not shown.
10 changes: 8 additions & 2 deletions docs/astro.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,14 @@ export default defineConfig({
integrations: [
postBuildIntegration(),
starlight({
title: 'MapConductor',
description: 'A unified map SDK for mobile developers',
title: {
en: "MapConductor — a unified Android maps SDK that lets you work with multiple map providers through a single API",
ja: "MapConductor(マップコンダクター) ♪ 複数の地図プロバイダを単一のAPIで扱えるAndroid向け統一地図SDK",
"es-419": "MapConductor — Un SDK de mapas unificado para Android que ofrece una API común para múltiples proveedores de mapas",
},
markdown: {
headingLinks: false,
},
defaultLocale: 'root',
locales: {
root: {
Expand Down
Loading
Loading