Мой вопрос: кто-нибудь знает, как настроить карты Google, чтобы открыть как мое местоположение, так и увеличенное изображение?
В настоящее время основной вид открывается на Африку в полностью уменьшенном масштабе.
Итак, я искал уже несколько дней, и все, что я смог найти, это:
1) Вы не можете анимировать две вещи (например, увеличить масштаб и перейти к моему местоположению) на одной карте Google? Итак, если я смогу выяснить, как установить масштаб, прежде чем я установлю анимацию, эта проблема будет решена. Это, как правило, проблема, вы можете изменить одно, но не оба.
2) Я нашел другие классы, которые могут быть полезны, но нет никакой помощи в том, как настроить код, чтобы класс мог управлять картой Google.
Это код, за который я держусь до сих пор, некоторые работают, некоторые нет. Некоторые, как я думал, могут пригодиться позже.
package com.MYWEBSITE.www;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import android.content.Context;
import android.location.Criteria;
import android.location.Location;
import android.location.LocationManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
public class MainActivity extends FragmentActivity {
private GoogleMap map;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
map.setMyLocationEnabled(true);
//LocationSource a = (LocationSource) getSystemService(Context.LOCATION_SERVICE);
//LocationManager b = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
//map.setLocationSource(a);
Criteria criteria = new Criteria();
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
String provider = locationManager.getBestProvider(criteria, false);
Location location = locationManager.getLastKnownLocation(provider);
double lat = location.getLatitude();
double lng = location.getLongitude();
LatLng coordinate = new LatLng(lat, lng);
//CameraPosition.Builder x = CameraPosition.builder();
//x.target(coordinate);
//x.zoom(13);
//Projection proj = map.getProjection();
//Point focus = proj.toScreenLocation(coordinate);
//map.animateCamera(CameraUpdateFactory.newLatLng(coordinate));
map.animateCamera(CameraUpdateFactory.zoomBy(13));
//map.moveCamera(CameraUpdateFactory.newLatLng(coordinate));
////LatLngBounds bounds = mMap.getProjection().getVisibleRegion().latLngBounds;
}
}
Можно одновременно изменить местоположение, масштабирование, азимут и наклон. Также можно установить продолжительность
animateCamera()
разговора.Взгляните на документы здесь:
https://developers.google.com/maps/documentation/android/views?hl=en-US#moving_the_camera
источник
это простое решение для вашего вопроса
источник
Попробуйте так -
}
источник
Вы также можете установить оба параметра, например,
Это поместит вашу карту в определенное место и приблизит ее. Я использую это при настройке моей карты.
источник
Это поздний ответ, но я думаю, что это поможет. Используйте этот метод:
Используйте этот метод после загрузки карты. Ура!
источник
Самый простой способ сделать это - использовать CancelableCallback. Вы должны проверить выполнение первого действия и затем вызвать второе:
источник
Ответ @ CommonsWare на самом деле не работает. Я обнаружил, что это работает правильно:
источник
1. Добавьте в макет xml-код для отображения карт.
2. Включите API карт Google, затем получите ключ API, указанный ниже.
3. Добавьте этот код в oncreate.
4. Добавьте этот код после создания. затем получить доступ к текущему местоположению с маркером, размещенным в этом
источник
Вы не можете анимировать две вещи (например, увеличить масштаб и перейти к моему местоположению) на одной карте Google.
Поэтому используйте перемещение и анимацию камеры для увеличения
источник
источник