问题描述
我在这里使用 map android sdk 来获取用户的当前位置,但是在一些真实的设备中,例如小米、红米,oppo Map 在初始加载时没有完全加载。
我正在尝试使用此处的地图 API 获取用户的当前位置,并基于手势控制我正在尝试在此处的地图上实现重定位功能。
它显示蓝色空屏幕。
private void GetLocation() {
Log.d(TAG,"GetLocation Enter");
progressDialog.show();
assert mapFragment != null;
mapFragment.init(new OnEngineInitListener() {
@Override
public void onEngineInitializationCompleted(OnEngineInitListener.Error error) {
if (error == OnEngineInitListener.Error.NONE) {
map = mapFragment.getMap();
assert map != null;
map.setZoomLevel((map.getMaxZoomLevel() + map.getMinZoomLevel()) / 1.2);
positioningManager = PositioningManager.getInstance();
PositioningManager.OnPositionChangedListener mapPositionHandler = new PositioningManager.OnPositionChangedListener() {
@Override
public void onPositionUpdated(PositioningManager.LocationMethod method,GeoPosition position,boolean isMapMatched) {
// GeoCoordinate currentPosition = position.getCoordinate();
Log.e(TAG,"onPositionUpdated: " + "coming...");
geoPosition = position.getCoordinate();
progressDialog.cancel();
Log.d(TAG,"inside getting position"+String.valueOf(position.getCoordinate()));
activateSpeedLimitFragment(position.getCoordinate());
startPositioningManager();
startNavigationManager();
progressDialog.cancel();
}
@Override
public void onPositionFixChanged(PositioningManager.LocationMethod method,PositioningManager.LocationStatus status) {
Log.e(TAG,"currentPosition: " + status);
progressDialog.cancel();
}
};
try {
positioningManager.addListener(new WeakReference<>(mapPositionHandler));
if(!positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK)) {
Log.e(TAG,"PositioningManager.start: Failed to start...");
}
} catch (Exception e) {
Log.e(TAG,"Caught: " + e.getMessage());
}
try {
if (geoPosition !=null) {
map.setCenter(new GeoCoordinate(geoPosition),Map.Animation.NONE);
}else {
map.setCenter(new GeoCoordinate(latitude,longitude),Map.Animation.NONE);
}
}catch (Exception e){
Log.e(TAG,"Caught: " + e.getMessage());
}
map.getPositionIndicator().setVisible(true);
Image image_indicator = new Image();
try {
image_indicator.setimageResource(R.drawable.navigator);
map.getPositionIndicator().setMarker(image_indicator);
Objects.requireNonNull(mapFragment.getMapGesture()).addOnGestureListener(new MyOnGestureListener(),false);
} catch (IOException e) {
e.printstacktrace();
}
}else {
progressDialog.cancel();
Log.d(TAG,"OnEngineInitListener_error"+error.getDetails());
}
Log.d(TAG,"comingBelow");
MapTrafficLayer traffic = map.getMapTrafficLayer();
map.setLandmarksVisible(true);
traffic.setdisplayFilter(TrafficEvent.Severity.norMAL);
map.setTrafficinfovisible(true);
map.setFleetFeaturesVisible(EnumSet.of(Map.FleetFeature.TRUCK_RESTRICTIONS));
}
});
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)