Как я могу позволить Google Maps api v2 идти прямо к моему местоположению

Я настоящий новичок в Google Maps API, поэтому приветствую любую помощь. Что я хочу здесь видеть, так это то, что когда я открываю свое приложение, камера должна переместиться прямо в мое текущее местоположение и разместить синюю точку. Как мне это удается?

Я сделал пример кода, чтобы каждый мог его понять и при необходимости внедрить в свой код:

GoogleMap map = ((SupportMapFragment)  getSupportFragmentManager().findFragmentById(R.id.general_map)).getMap();
map.setMapType(GoogleMap.MAP_TYPE_HYBRID);

if( helper.isGPSEnabled() ){
    map.move... // move directly to my current position
}

Помоги пожалуйста...


person Emver    schedule 21.01.2013    source источник
comment
Где взять широту и долготу. Вы вставляете комментарий, который совершенно не помогает.   -  person Emver    schedule 22.01.2013


Ответы (2)


Вот что мне удалось заставить работать. Он отображает ваше текущее местоположение и ставит там маркер. Это для Google Maps API v2

private void setUpMap() {
    // Enable MyLocation Layer of Google Map
    googleMap.setMyLocationEnabled(true);

    // Get LocationManager object from System Service LOCATION_SERVICE
    LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);

    // Create a criteria object to retrieve provider
    Criteria criteria = new Criteria();

    // Get the name of the best provider
    String provider = locationManager.getBestProvider(criteria, true);

    // Get Current Location
    Location myLocation = locationManager.getLastKnownLocation(provider);

    //set map type
    googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);

    // Get latitude of the current location
    double latitude = myLocation.getLatitude();

    // Get longitude of the current location
    double longitude = myLocation.getLongitude();

    // Create a LatLng object for the current location
    LatLng latLng = new LatLng(latitude, longitude);      

    // Show the current location in Google Map        
    googleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));

    // Zoom in the Google Map
    googleMap.animateCamera(CameraUpdateFactory.zoomTo(20));
    googleMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title("You are here!"));
}
person user2307955    schedule 22.04.2013
comment
по Location myLocation = locationManager.getLastKnownLocation (поставщик); myLocation имеет значение null, есть идеи? - person ALi; 24.07.2013
comment
это не работает!! все, что я получаю, это: ресурсы сервисов Google Play не найдены. Проверьте конфигурацию вашего проекта, чтобы убедиться, что ресурсы включены. - person Dr. aNdRO; 24.09.2013

Вам нужно сначала определить пользователю его местонахождение. После этого вы указываете на карте свою широту и долготу. Также не забудьте установить уровень масштабирования для увеличения карты.

Чтобы определить, включен ли GPS:

Как найти не горит, если на устройстве Android включен GPS

Android - есть ли способ чтобы узнать, был ли включен или отключен GPS

Дополнительная информация о стратегиях определения местоположения:

http://developer.android.com/guide/topics/location/strategies.html

person Vince V.    schedule 21.01.2013