#android #google-maps #kotlin #huawei-mobile-services #huawei-map-kit
#Android #google-карты #kotlin #huawei-мобильные сервисы #huawei-map-kit
Вопрос:
я использую huawei map kit в своем приложении, я следую инструкциям, упомянутым в их документации..карта загружается и каждый раз просто перемещает меня в Кот-д’Ивуар .. я не понимаю, почему
мой код
private HuaweiMap hMap;
private MapView mMapView;
double lat;
double lng;
private static final String MAPVIEW_BUNDLE_KEY = "MapViewBundleKey";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
Log.i("TAG", "onCreate");
Intent i=getIntent();
double lat=i.getExtras().getDouble("lat");
double lng=i.getExtras().getDouble("lng");
mMapView = findViewById(R.id.mapView);
Bundle mapViewBundle = null;
if (savedInstanceState != null) {
mapViewBundle = savedInstanceState.getBundle(MAPVIEW_BUNDLE_KEY);
}
MapsInitializer.setApiKey("the api key");
mMapView.onCreate(mapViewBundle);
//get map instance
mMapView.getMapAsync(this);
}
@Override
public void onMapReady(HuaweiMap map) {
//get map instance in a callback method
Log.d("TAG", "onMapReady: ");
hMap = map;
hMap.getUiSettings().setZoomControlsEnabled(true);
hMap.getUiSettings().setZoomGesturesEnabled(true);
hMap.getUiSettings().setMyLocationButtonEnabled(true); //this button doesn't show on screen either
LatLng location = new LatLng(lat, lng);
hMap.addMarker(new MarkerOptions().position(location));
CameraPosition cameraPosition = new CameraPosition(location,8,2.2f,31.5f);
hMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
hMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
}
я использую карты Google в том же приложении (для телефонов, использующих gms) и использую почти тот же подход, и все отлично работает с картой Google..
пожалуйста, помогите
Комментарии:
1. Возможно, вы захотите взглянуть на это: github.com/franalma/MapsWrapper
Ответ №1:
Вопрос 1:
hMap.getUiSettings().setMyLocationButtonEnabled(true) не вступает в силу.
Прежде чем использовать hMap.getUiSettings().setMyLocationButtonEnabled(true), вам необходимо использовать hMap.setMyLocationEnabled(true), чтобы включить функцию определения местоположения на карте.
- Функция hMap.setMyLocationEnabled(true): определяет, следует ли использовать функцию определения местоположения на карте. (Значение по умолчанию — false.)
- Функция hMap.getUiSettings().setMyLocationButtonEnabled(true): устанавливает, отображать ли значок моего местоположения на карте. (Значение по умолчанию — true.)
Если для setMyLocationEnabled установлено значение false, значок моего местоположения отображаться не будет, а функция определения местоположения недоступна, независимо от того, установлен ли setMyLocationButtonEnabled. Поэтому рекомендуется использовать hMap.setMyLocationEnabled(true) для отображения значка моего местоположения.
Для получения дополнительной информации, пожалуйста, обратитесь к документам.
Вопрос 2:
Камера карты всегда перемещается в Кот-д’Ивуар.
Ваше использование правильное. Рекомендуется распечатать соответствующие долготы и широты, чтобы увидеть, остаются ли они неизменными.
Кроме того, класс moveCamera используется для непосредственного перемещения камеры, а класс animateCamera используется для перемещения камеры с помощью анимации. Вы можете использовать любой из классов для перемещения камеры.
Ответ №2:
Вы можете использовать animateCamera(), используя этот метод, мы можем анимировать перемещение камеры из текущего положения в положение, которое мы определили.
CameraPosition build = new CameraPosition.Builder()
.target(new LatLng(location.lat, location.lng))
.zoom(15)
.bearing(90)
.tilt(30)
.build();
CameraUpdate cameraUpdate = CameraUpdateFactory.newCameraPosition(build);
hMap.animateCamera(cameraUpdate);
Чтобы узнать больше о картах, посетите статьи