เราเผยแพร่ MapConductor Android SDK 1.3.1 บน Maven Central แล้ว อาร์ทิแฟกต์ทั้ง 18 รายการใช้เวอร์ชันเดียวกัน รวมถึง BOM ด้วย
วิธีใช้
ถ้าใส่ BOM ก็ไม่ต้องระบุเวอร์ชันของแต่ละโมดูล
dependencies {
implementation(platform("com.mapconductor:mapconductor-bom:1.3.1"))
implementation("com.mapconductor:core")
implementation("com.mapconductor:compose")
implementation("com.mapconductor:for-maplibre")
}หากไม่ใช้ BOM ก็ขอให้กำหนดเป็น 1.3.1 ให้ตรงกันทั้งหมด เนื่องจาก 1.3.0 มีข้อบกพร่องตามที่อธิบายด้านล่าง
สิ่งที่เผยแพร่
มีบางรายการที่ชื่ออาร์ทิแฟกต์กับชื่อรีโพซิทอรีไม่ตรงกัน รีโพซิทอรีของ core และ compose ใช้ชื่อ android-sdk-* ส่วนของ geojson ยังคงเป็น android-geojson-layer เพราะพิกัด Maven กำหนดไว้เป็น geojson แล้ว และพิกัดที่เผยแพร่ไปแล้วเปลี่ยนไม่ได้
Jetpack Compose
com.mapconductor:compose คือส่วนเชื่อมต่อกับ Compose วางแผนที่เป็นคอมโพสเซเบิล MapView และให้อ็อบเจกต์สถานะถือสถานะไว้ รูปแบบการเรียกใช้นี้ไม่เปลี่ยนแม้จะสลับผู้ให้บริการ
ยังมีอีกเหตุผลหนึ่งที่ต้องใช้ 1.3.1 เมื่อทำงานกับ Compose นั่นคือ BOM ของ Compose ไม่ปรากฏใน POM ที่เผยแพร่ เพราะ BOM เป็นกลไกสำหรับตัดสินเวอร์ชันของดีเพนเดนซี ผลของการตัดสินนั้นไม่ได้ถูกฝังลงใน POM ใน 1.3.0 เรามองข้ามจุดนี้ ทำให้ดีเพนเดนซีของ Compose ปรากฏใน POM โดยไม่มีเวอร์ชัน
กรุณาใช้ 1.3.1 แทน 1.3.0
ตอนเผยแพร่ 1.3.0 ระบบสร้าง POM ที่ดีเพนเดนซีของ Compose ไม่มีเวอร์ชัน ออกมา Maven Central ปฏิเสธกรณีแบบนี้ for-arcgis for-here และ for-tomtom จึงเผยแพร่ไม่สำเร็จตั้งแต่ต้น แต่ for-googlemaps for-maplibre และ for-mapbox ผ่านออกไปทั้งที่พัง ฝั่งที่นำไปใช้จะแก้ปัญหาดีเพนเดนซีของ Compose ไม่ได้
Maven Central ไม่อนุญาตให้แทนที่พิกัดที่เผยแพร่ไปแล้ว เราจึงออกฉบับแก้ไขเป็น 1.3.1 กรุณาอย่าใช้ 1.3.0
สภาพแวดล้อมที่รองรับ
| minSdk | 28 |
| compileSdk | 37 |
| targetSdk | 35 |
| Java | 17 |
| Kotlin | 2.4.10 |
minSdk ขยับจาก 26 เป็น 28 ตามข้อกำหนดของ ArcGIS Maps SDK ซีรีส์ 300 และ compileSdk 37 ก็ด้วยเหตุผลเดียวกัน แม้จะเป็นการตั้งค่าที่ไม่ใช้ ArcGIS เราก็ปรับให้ตรงกันทั้งหมด เพราะโมดูลที่เข้าชุดกันดูแลง่ายกว่า
แต่ละโมดูลแยกเป็นรีโพซิทอรีของตัวเองที่ github.com/MapConductor