Я хочу отобразить карту в своем приложении для Android, которое направляет пользователя в 3D. Для этого я использую объект com.google.android.gms.maps.GoogleMap
. При обновлении положения GoogleMap
он центрируется в заданном положении. Я хочу, чтобы карта помещала предоставленную позицию на нижнее . Я нашел несколько примеров того, как это можно достичь. Это код, который я использую для обновления положения карты:Как я могу поместить камеру в нижней части экрана на наклонной карте в Android
private static final int ZOOM_LEVEL = 20;
private static final int TILT = 90;
private float bearing; // from censors
private MapView gMapView;
private void updatePosition(final LatLng pos){
GoogleMap map = gMapView.getMap();
Point p = map.getProjection().toScreenLocation(pos);
p.set(p.x, p.y - (gMapView.getHeight()/2));
LatLng target = map.getProjection().fromScreenLocation(p);
CameraPosition cap = new CameraPosition.Builder().target(target)
.bearing(bearing).tilt(TILT).zoom(ZOOM_LEVEL).build();
map.moveCamera(CameraUpdateFactory.newCameraPosition(cap));
}
Это прекрасно работает, если я не использую наклона, или если преобразование восстанавливается (как p.set(p.x, p.y + (gMapView.getHeight()/2));
), но при преобразовании центра в нижней части экран, подобный приведенному выше коду, позиционирование перескакивает назад и вперед между позициями.
Я нашел одно решение, что альтернативное решение, которое помещает камеру правильно:
CameraPosition cap = new CameraPosition.Builder().target(pos)
.bearing(bearing).tilt(TILT).zoom(ZOOM_LEVEL).build();
map.moveCamera(CameraUpdateFactory.newCameraPosition(cap));
map.moveCamera(CameraUpdateFactory.scrollBy(0, -gMapView.getHeight()/2));
Но это делает в два раза, в результате чего карта мерцать.
ли кто-нибудь есть решение о том, чтобы сделать наклонную карту с опорной точкой на нижней части экрана?
Если вы загрузите «скриншот», который лучше объяснить. Кроме того, пожалуйста, обратитесь к [здесь] (http://stackoverflow.com/questions/28951974/android-google-maps-api-v2-get-my-bearing-location/28953010#28953010), чтобы узнать, помогает ли это. – bjiang