我在我的片段中加载Mapbox,该片段将在从DrawerLayout中单击时启动。
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.map_fragment, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
bindUI(getView()); mapView = view.findViewById(R.id.mapView);
mapView.onCreate(savedInstanceState);
mapView.getMapAsync(map -> {
mapboxMap = map;
setUpMap();
});
}
@Override
public void onStart() {
super.onStart();
mapView.onStart();
}
@Override
public void onStop() {
super.onStop();
mapView.onStop();
}
@Override
public void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override
public void onResume() {
super.onResume();
mapView.onResume();
}
@Override
public void onPause() {
super.onPause();
mapView.onPause();
}
@Override
public void onLowMemory() {
super.onLowMemory();
mapView.onLowMemory();
}
@Override
public void onDestroyView() {
super.onDestroyView();
mapView.onDestroy();
}
@Override
public void onSaveInstanceState(@NonNull Bundle outState) {
super.onSaveInstanceState(outState);
mapView.onSaveInstanceState(outState);
}
这是我在代码片段中使用Mapbox加载地图时使用的代码。每当我改变抽屉布局的片段时,一个黑屏闪烁,然后地图就被加载了。
如果我加载的是其他片段,而不是Map fragment,它可以很好地工作。
提前感谢
发布于 2020-07-03 06:30:25
这在本地是不可能的,但是你可以根据mapBox的文档做一个变通方法。
请参阅THIS DOC: Troubleshoot raster image with black background
为什么会出现黑色背景:显示的黑色背景是光栅图像中不包含任何数据的部分。通常,光栅图像是像素的矩形网格。当您处理不是矩形的数据时,网格中有一些像素不包含任何数据。这些像素表示为NoData值,表示缺少数据。上载到Mapbox Studio的GeoTIFF将显示为JPEG,以节省空间并快速加载地图。由于JPEG不能显示透明度,因此NoData值显示为黑色。
在Mapbox Studio,中不能更改NoData值的外观,但有两种策略可以在Mapbox Studio之外解决该问题。首先,您可以使用JPEG JS来检索而不是。如果这不起作用,你可以使用Rasterio对原始图像进行编辑。
发布于 2018-05-08 23:37:09
你可以放置一个带有“地图正在加载...”的TextView。在Mapbox地图上并在onMapReady之后将其隐藏,例如:
@Override
public void onMapReady(MapboxMap mapboxMap) {
mapLoadingOverview.postDelayed(new Runnable() {
public void run() {
mapLoadingOverview.setVisibility(View.GONE);
}
}, 1000);
}
xml
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<com.mapbox.mapboxsdk.maps.MapView
android:id="@+id/mapboxMapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
mapbox:mapbox_cameraTargetLat="53.873900"
mapbox:mapbox_cameraTargetLng="10.683876"
mapbox:mapbox_cameraZoom="15"
mapbox:mapbox_styleUrl="@string/mapbox_style_light" />
<TextView
android:id="@+id/mapLoadingOverview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/subwhite"
android:text="@string/mapOverlayText"
android:gravity="center"
android:textColor="@color/maincolor"
android:textSize="@dimen/mapOverlayTextSize"
android:visibility="visible" />
</FrameLayout>
https://stackoverflow.com/questions/50094790
复制相似问题