我正在开发一个应用程序,其中我必须根据用户导航旋转箭头。
我正在使用最新的 Mapbox SDK。
我尝试过设置障碍(使用纬度和经度计算)但未能成功。
我不知道如何实现它。
它(箭头标记)应该在预定义的多边形路径上导航。
如何调整 中的徽标和归属com.mapbox.mapboxsdk.maps.MapView?在较旧的 SDK v9 中,可以通过 XML 属性(或通过以编程方式更改 UiSettings)简单地设置 UiSettings。
mapbox:mapbox_uiAttributionMarginBottom="8dp"
mapbox:mapbox_uiAttributionMarginLeft="32dp"
Run Code Online (Sandbox Code Playgroud)
知道如何在 Mapbox SDK v10 上实现相同的效果吗?
我已经从 Mapbox 创建了所需的帐户和密钥。我以不同的顺序列出了存储库,但没有运气。构建时出现如下错误:
无法解析配置“:app:debugRuntimeClasspath”的所有文件。
找不到 com.mapbox.mapboxsdk:mapbox-android-accounts:0.7.0。在以下位置搜索: - https://dl.google.com/dl/android/maven2/com/mapbox/mapboxsdk/mapbox-android-accounts/0.7.0/mapbox-android-accounts-0.7.0.pom - https://repo.maven.apache.org/maven2/com/mapbox/mapboxsdk/mapbox-android-accounts/0.7.0/mapbox-android-accounts-0.7.0.pom 必需:项目:app > com .mapbox.mapboxsdk:mapbox-android-sdk:9.2.1
这是我的 build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext.kotlin_version = "1.5.20"
repositories {
google()
mavenCentral()
maven {
url 'https://api.mapbox.com/downloads/v2/releases/maven'
authentication {
basic(BasicAuthentication)
}
credentials {
// Do not change the username below.
// This should always be `mapbox` (not your username).
username = 'mapbox'
// Use the secret token you stored in gradle.properties
password = project.properties['MAPBOX_DOWNLOADS_TOKEN'] …Run Code Online (Sandbox Code Playgroud) 我正在研究 android studio 中的 mapbox 中的示例,但是当我运行代码时,它显示 FAILURE: Build failed with an exception。
任务“:app:checkDebugDuplicateClasses”执行失败。执行 com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable 模块中发现重复类 com.mapbox.android.telemetry.AlarmReceiver 时发生故障
这是我在 gradle 中的实现
implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.6.2'
implementation ('com.mapbox.mapboxsdk:mapbox-android-sdk:9.6.2'){
exclude group: 'group_name', module: 'module_name'
}
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-locationlayer:0.11.0'
implementation 'com.mapbox.mapboxsdk:mapbox-sdk-services:4.8.0'
implementation('com.mapbox.mapboxsdk:mapbox-android-navigation-ui:0.42.6') {
exclude group: 'com.mapbox.mapboxsdk', module: 'mapbox-android-plugin-annotation-v8'
}
Run Code Online (Sandbox Code Playgroud)
这是它显示的错误
Execution failed for task ':app:checkDebugDuplicateClasses'.
A failure occurred while executing
com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
Duplicate class com.mapbox.android.telemetry.AlarmReceiver found in modules jetified-mapbox-android-telemetry-4.7.0-runtime (com.mapbox.mapboxsdk:mapbox-android-telemetry:4.7.0) and mapbox-android-telemetry-okhttp3-8.1.0-runtime (com.mapbox.mapboxsdk:mapbox-android-telemetry-okhttp3:8.1.0)
Duplicate class com.mapbox.android.telemetry.AlarmSchedulerFlusher found in modules jetified-mapbox-android-telemetry-4.7.0-runtime (com.mapbox.mapboxsdk:mapbox-android-telemetry:4.7.0) and mapbox-android-telemetry-okhttp3-8.1.0-runtime (com.mapbox.mapboxsdk:mapbox-android-telemetry-okhttp3:8.1.0)
Duplicate class com.mapbox.android.telemetry.AppUserTurnstile found …Run Code Online (Sandbox Code Playgroud)
我在我的 android 应用程序上使用 MapBox SDK,地图 onCreate 显示完美。我可以添加图层并显示我的标记等等。
当用户点击一个标记时,另一个活动就会启动。所以我在 onPause() 方法上使用 mapView.onPause() 。
当用户尝试返回地图活动时出现问题,我为此使用了 finish() 方法,一旦在地图活动上,黑屏将替换地图,用户将无法再看到地图和标记。
我发现当我锁定手机并返回应用程序时也会出现该问题。
关于如何解决这个问题的任何想法。
非常感谢您。
我有 2 个项目,它们对于 Mapbox 一般具有相同的 gradle 设置,其中一个工作完全正常,另一个则根本不工作,在构建时间内写入日志的错误是众所周知的: > 无法找到 com .mapbox.mapboxsdk:mapbox-android-accounts:0.7.0。非常相似的问题甚至在这里,即使使用 jcenter() 我也无法解决错误,正如上面提到的问题中提到的那样。在这两个项目中,我都以类似的方式使用 jetpack compose。
代码片段(项目gradle):
maven {
url 'https://api.mapbox.com/downloads/v2/releases/maven'
authentication {
basic(BasicAuthentication)
}
credentials {
// Do not change the username below.
// This should always be `mapbox` (not your username).
username = 'mapbox'
// Use the secret token you stored in gradle.properties as the password
password = project.properties['MB_TOKEN'] ?: ""
}
}
Run Code Online (Sandbox Code Playgroud)
模块等级:
implementation("com.mapbox.mapboxsdk:mapbox-android-telemetry:7.0.0")
implementation('com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.9.0')
implementation('com.mapbox.mapboxsdk:mapbox-android-plugin-markerview-v9:0.4.0')
implementation("com.mapbox.mapboxsdk:mapbox-sdk-geojson:5.8.0")
implementation("com.mapbox.mapboxsdk:mapbox-android-accounts:0.8.0")
Run Code Online (Sandbox Code Playgroud)
完整构建消息:
Executing tasks: [:app:assembleDebug] in project /home/lzajicek/AndroidStudioProjects/loci
Starting …Run Code Online (Sandbox Code Playgroud) 我目前有一个LatLng位置和半径,以公里或英里为单位.如何CircleLayer使用Mapbox Android SDK在地图上绘制圆圈(使用或任何其他方法)?
我正在尝试为 Mapbox Android 启用缩放控件,但都没有启用 XML
mapbox:mapbox_uiZoomControls="true"
Run Code Online (Sandbox Code Playgroud)
也不是 Kotlin/Java
mapboxMap.getUiSettings().setZoomControlsEnabled(true)
Run Code Online (Sandbox Code Playgroud)
适用于 SDK 8.6.1 - 两者似乎都已弃用。任何想法如何启用此控件以及它是否可用?
我在 Android Studio 中尝试使用 mapbox 时遇到这个问题
无法解决:com.mapbox.mapboxsdk:mapbox-android-sdk:9.5.0
问题是什么?
我的 build.gradle 依赖项
dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.5.0'
}
Run Code Online (Sandbox Code Playgroud)
我的 build.gradle 项目
buildscript {
repositories {
google()
mavenCentral()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:4.0.1"
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://mapbox.bintray.com/mapbox' }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud) 目前我正在尝试在 mapbox 提供的 android 导航 SDK 中创建导航路线。当向查询添加多个航点时,问题就开始了。(下面的查询返回响应并在地图上绘制路线)
NavigationRoute.builder()
.accessToken(Mapbox.getAccessToken())
.origin(start)
.destination(end)
.alternatives(false)
.build()
.getRoute(new Callback<DirectionsResponse>() {
@Override
public void onResponse(@NonNull Call<DirectionsResponse> call, @NonNull Response<DirectionsResponse> response) {
if (response.isSuccessful()) {
try {
assert response.body() != null;
routeodfgoh = response.body().routes().get(0);
if (navigationMapRoute != null) {
navigationMapRoute.removeRoute();
} else {
navigationMapRoute = new NavigationMapRoute(null, mapView, map);
}
//how to draw the map think map matching is work
navigationMapRoute.addRoute(routeodfgoh);
} catch (Exception ex) {
Toast.makeText(MainActivity.this, ex.toString(), Toast.LENGTH_LONG);
}
}
}
@Override
public void onFailure(Call<DirectionsResponse> …Run Code Online (Sandbox Code Playgroud) 我正在遵循https://docs.mapbox.com/help/tutorials/android-navigation-sdk/上的 MabBox 教程来制作一个使用其基本元素的简单导航片段。
我已经知道 MapBox 需要在膨胀视图之前实例化,因为我之前在另一个片段上进行过测试,以测试该片段是 TabLayout 组件的一部分,但是,在这个组件中,只有一个 Activity 加载我所在的片段使用 SDK,在这种情况下,它会抛出与我之前修复的相同的错误,因为我将其放在膨胀布局之后。
出现的错误是这样的:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.parkingclientapplication, PID: 14257
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.parkingclientapplication/com.example.parkingclientapplication.activities.MapDirectionActivity}: android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class com.mapbox.mapboxsdk.maps.MapView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6541)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
Caused by: android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class …Run Code Online (Sandbox Code Playgroud) 如果已经回答,请提前道歉。我在网上或存储库中找不到任何指向我的问题的内容。
我有一个ArrayList<Position>固定我的线刺。
绘制时此显示很好 addPolyline
我想设置线条的样式,所以我切换到使用线条图层。然而。
这条线不再出现在靠近正确位置的任何地方。该地点位于英格兰坎布里亚郡,但取材于索马里海岸。
我试图在每次转换后输出坐标,它们都显示正常。我不知道如何检查source
Log.d("Tracing 1", route.toString())
val lineString = LineString.fromCoordinates(route)
Log.d("Tracing 2", lineString.coordinates.toString())
val feature = Feature.fromGeometry(lineString)
Log.d("Tracing 3", feature.geometry.coordinates.toString())
val featureCollection = FeatureCollection.fromFeatures(
arrayOf(feature))
val geoJsonSource: Source = GeoJsonSource("line-source", featureCollection)
mapboxMap.addSource(geoJsonSource)
val debugSource = mapboxMap.getSource("line-source") as GeoJsonSource
Log.d("Tracing 4", debugSource.toString())
val lineLayer = LineLayer("linelayer", "line-source")
lineLayer.setProperties(
PropertyFactory.lineDasharray(arrayOf(0.01f, 2f)),
PropertyFactory.lineCap(LINE_CAP_ROUND),
PropertyFactory.lineJoin(LINE_JOIN_ROUND),
PropertyFactory.lineWidth(5f),
PropertyFactory.lineColor(Color.parseColor("#e55e5e"))
)
mapboxMap.addLayer(lineLayer)
val cameraPosition = CameraPosition.Builder()
.target(LatLng(route[0].latitude, route[0].longitude))
.build()
mapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition))
Run Code Online (Sandbox Code Playgroud)
显示Logs 全部相同的日志 cat 输出在这里。
10-05 20:52:37.162 11449-11449/com.xxx.xxx D/Tracing …Run Code Online (Sandbox Code Playgroud) mapbox-android ×12
android ×11
mapbox ×8
kotlin ×3
java ×2
build.gradle ×1
geojson ×1
gradle ×1