- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试在我的 mapbox map 中启用一个位置。但是,行 mapboxMap.setMyLocationEnabled(true);
失败并且 Android Studio 给出“无法解析方法 setMyLocationEnabled(boolean)”。
我在我的 Gradle 中使用 MapBox 版本 6.0.1(最新):
//
compile ('com.mapbox.mapboxsdk:mapbox-android-sdk:6.0.1@aar') { // Map BOX
transitive=true
}
当我切换到版本 5.1.3(我在之前制作的应用程序中使用过)时,Android Studio 检测到该方法,但在运行时应用程序抛出以下异常:android.view.InflateException:二进制 XML 文件第 0 行:错误膨胀类 com.mapbox.mapboxsdk.maps.MapView
希望在这方面得到一些帮助。相关代码如下,谢谢!
这是 Activity 中的相关代码:
mapView = (MapView) findViewById(R.id.map);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(MapboxMap mapboxMap) {
// Set map style
mapboxMap.setStyleUrl(Style.MAPBOX_STREETS);
// Set the camera's starting position
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(new LatLng(32.1622,34.8338)) // set the camera's center position on the first coordinate of the tour
.zoom(14) // set the camera's zoom level
.tilt(0) // set the camera's tilt
.build();
// Move the camera to that position
mapboxMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
// Set user location
mapboxMap.setMyLocationEnabled(true);
//Set MyLocation Button
//userLocationFAB(DrivingActivity.get, mapboxMap);
// Add route line
//mapboxMap.addPolyline(getRoute());
// // Add markers
// ArrayList<MarkerOptions> markers = getMarkers();
//
// for (int i=0 ; i<markers.size() ; i++) {
// mapboxMap.addMarker(markers.get(i));
// }
}
});
}
这是来自 XML 文件的代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="36dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Score:"
android:layout_centerInParent="true"
android:id="@+id/driving_window_txt"
android:textStyle="bold"
android:layout_margin="10dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0000000"
android:layout_below="@id/driving_window_txt"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:id="@+id/score_counter"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Distance: 0"
android:layout_below="@id/score_counter"
android:layout_centerHorizontal="true"
android:id="@+id/total_distance"/>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.mapbox.mapboxsdk.maps.MapView
android:layout_height="match_parent"
android:layout_width="match_parent"
android:id="@+id/map"/>
<!-- Implementation of find my location button -->
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="20dp"
android:layout_marginRight="20dp"
android:src="@android:drawable/ic_menu_mylocation"
app:borderWidth="0dp"
app:elevation="6dp"
app:pressedTranslationZ="12dp"
app:fabSize="normal"
android:id="@+id/fab_location"/>
</RelativeLayout>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
最佳答案
@Hey mickey 检查这个,如何获取当前位置:
mapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(MapboxMap mapboxMap) {
mapboxmap = mapboxMap;
mapboxMap.setOnMapClickListener(DetailDirectionFragment.this);
mapboxMap.getUiSettings().setZoomControlsEnabled(true);
initLocationEngine();
}
});
@SuppressWarnings( {"MissingPermission"})
private void initLocationEngine() {
locationEngine = new LocationEngineProvider(activity).obtainBestLocationEngineAvailable();
locationEngine.setPriority(HIGH_ACCURACY);
locationEngine.setInterval(0);
locationEngine.setFastestInterval(1000);
locationEngine.addLocationEngineListener(this);
locationEngine.activate();
if (locationEngine.getLastLocation() != null) {
Location lastLocation = locationEngine.getLastLocation();
onLocationChanged(lastLocation);
currentLocation = Point.fromLngLat(lastLocation.getLongitude(), lastLocation.getLatitude());
updateLocation(lastLocation.getLongitude(), lastLocation.getLatitude());
}
}
@Override
public void onLocationChanged(Location location) {
currentLocation = Point.fromLngLat(location.getLongitude(), location.getLatitude());
Log.e("currentlocation",location.getLatitude()+"lat"+location.getLongitude()+"lng");
onLocationFound(location);
}
@SuppressWarnings( {"MissingPermission"})
@Override
public void onConnected() {
locationEngine.requestLocationUpdates();
}
private void onLocationFound(Location location) {
if (!locationFound) {
animateCamera(new LatLng(location.getLatitude(), location.getLongitude()));
MarkerViewOptions markerViewOptions = new MarkerViewOptions()
.position(new LatLng(location.getLatitude(), location.getLongitude()));
currentMarker = mapboxmap.addMarker(markerViewOptions);
locationFound = true;
}
}
private void animateCamera(LatLng point) {
mapboxmap.animateCamera(CameraUpdateFactory.newLatLngZoom(point, DEFAULT_CAMERA_ZOOM), CAMERA_ANIMATION_DURATION);
}
检查 this关联。
关于android - Mapbox 'setMyLocationEnabled' 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50048184/
我正在尝试在Android上制作一个应用程序,它允许我查看谷歌地图上两点之间的距离,距离点是我当前所在的位置,另一个点是谷歌地图上的标记。 我已经成功使用setMyLocationEnabled(tr
我使用以下行来确保我的 map 显示设备的当前位置和一个将相机置于该位置中心的按钮 mMap.setMyLocationEnabled(true); 这是非常标准的东西,但这意味着该应用程序会不断触发
我正在学习一个教程,我的应用基本上可以正常工作,除了一个小细节。我有一个选项菜单来演示诸如将 map 显示为卫星 View 、缩放到特定位置等内容。 本教程有两个菜单选项,如下所示,有效地需要按显示的
我想让我的 map 在打开 MapActivity 时聚焦在我的当前位置。我对特定行有问题: mMap.setMyLocationEnabled(true); Call requires permi
我正在尝试在我的 mapbox map 中启用一个位置。但是,行 mapboxMap.setMyLocationEnabled(true); 失败并且 Android Studio 给出“无法解析方法
在 Android 上使用 Google Maps V2 时,当我调用函数时: googleMap.setMyLocationEnabled(true); 它在 map 的右上角给出当前位置的按钮。我
在我的项目中,我使用了Google Maps Activity,并使用setMyLocationEnabled(this);方法来获取用户的当前位置。当我尝试从该位置获取纬度和经度时,它会抛出一个错误
我刚刚开始开发一个 android 项目,并且正在使用 Google Map API。 我可以在我的应用程序上获取 map ,但是当我尝试使用 map.setMyLocationEnabled(tru
我正在使用此代码: setMyLocationEnabled(true) 为了让谷歌检测我的位置,但它的响应速度极慢,并且每 5-10 秒更新一次 - 这非常慢,尤其是在车里。 我是否必须设定一些标准
我在我的 Android 应用程序中使用 Google map 。我需要将 map 重新定位到客户的当前位置。我使用了以下语句 - map.setmylocationenabled(true);
我正在使用谷歌地图 V2,我需要显示自定义图像按钮点击以获取带有蓝点的当前位置并且不显示 setMyLocationEnabled 按钮。并且这个方法已经是 false,但是显示了当前位置但是不显示蓝
我正在设置: map.setMyLocationEnabled(true) 但我想知道这到底是做什么的。我所知道的: 我在 map 右上角有一个“定位我”按钮 我在 map 上看到代表我当前位置的蓝色
我们能否在 OSMDroid 上启用“GotoMyLocation”按钮,就像 GoogleMap 上的 mMap.setMyLocationEnabled(true); 一样? 我在MapView类
我正在使用来自新的 Android API 23 的权限更新我的代码。如果我想显示用户的位置,我只需要 map.setMyLocationEnabled(true)。如果我有权限,我可以看到用户的位置
我做了一个代码。在这段代码中,当我点击 map 时,点击的点上会有一个标记。 这是我的代码 public class MapsActivity extends FragmentActivity imp
我是 Android 开发新手。我的学校实验室之一是我需要获取用户位置。我正在关注老师给我们的链接:http://www.techotopia.com/index.php/Working_with_t
我正在努力做到这一点,当我加载我的地图 Activity 时,会出现一个“我的位置”按钮。这是我的代码,没有出现使我的 Activity 放大到我当前位置的按钮。我需要更改我的代码中的哪些内容才能
我遇到了问题。即使我声明了所有权限,我的程序也会出现 SecurityException。这是 MapsActivity 类: public class MapsActivity extends Fr
我正在尝试在 map 顶部获取当前位置图标。但是,当我运行该应用程序时, map 看起来像; 另一种情况是我写这行的时候; mGoogleMap.setMyLocationEnabled(true)
大家好,请帮助我。我不知道该怎么办 我也完成了android studio给出的建议 最佳答案 getMap() 已弃用。使用 getMapAsync() 如下所示。 MapFragment mapF
我是一名优秀的程序员,十分优秀!