Moje pytanie brzmi, czy ktoś wie, jak ustawić mapy Google, aby otworzyć zarówno moją lokalizację, jak i powiększony widok?
Obecnie główny widok otwiera się na Afrykę, całkowicie pomniejszony.
Tak więc szukałem już od kilku dni i wszystko, co mogę znaleźć, to:
1) Nie możesz animować dwóch rzeczy (takich jak powiększenie i przejście do mojej lokalizacji) na jednej mapie Google? Jeśli więc zdołam wymyślić, jak ustawić powiększenie, zanim ustawię animację, ten problem zostałby rozwiązany. Zwykle jest to problem, możesz zmienić jeden, ale nie oba.
2) Znalazłem inne klasy, które mogą być przydatne, ale nie ma pomocy, jak skonfigurować kod, aby klasa mogła manipulować mapą google.
To jest kod, którego trzymałem się do tej pory, niektóre działają, inne nie. Niektóre, które pomyślałem, mogą się później przydać.
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;
}
}
źródło
Możliwa jest zmiana lokalizacji, powiększenia, namiaru i pochylenia wszystko za jednym razem. Możliwe jest również ustawienie czasu trwania
animateCamera()
połączenia.Spójrz na dokumenty tutaj:
https://developers.google.com/maps/documentation/android/views?hl=en-US#moving_the_camera
źródło
to jest proste rozwiązanie na Twoje pytanie
źródło
Spróbuj w ten sposób -
}
źródło
Możesz także ustawić oba parametry, takie jak,
Spowoduje to zlokalizowanie mapy w określonej pozycji i powiększenie. Używam tego podczas konfigurowania mojej mapy.
źródło
To późna odpowiedź, ale myślę, że to pomoże. Użyj tej metody:
Użyj tej metody po załadowaniu mapy. Twoje zdrowie!
źródło
Najprostszym sposobem jest użycie CancelableCallback. Powinieneś sprawdzić, czy pierwsza akcja została zakończona, a następnie wywołać drugą:
źródło
Odpowiedź @ CommonsWare tak naprawdę nie działa. Okazało się, że to działa poprawnie:
źródło
1.Dodaj do układu kod xml do wyświetlania map.
2. Włącz interfejs Google Maps api, a następnie pobierz miejsce klucza API, które znajduje się poniżej.
3. Dodaj ten kod w oncreate.
4. Dodaj ten kod po oncreate. następnie uzyskaj dostęp do bieżącej lokalizacji z umieszczonym w niej znacznikiem
źródło
Nie możesz animować dwóch rzeczy (takich jak powiększanie i przechodzenie do mojej lokalizacji) na jednej mapie Google.
Więc użyj ruchu i animacji kamery, aby powiększyć
źródło
źródło