Как получить координаты синей точки в картах Android v2

1

На карте Я хочу показать направление пути от моего местоположения до определенного места. Я уже реализовал логику рисования пути на карте, но у меня есть проблемы, определяющие мое текущее местоположение.

Я использую новый LocationClient для получения моего текущего местоположения, как описано в этой статье: http://developer.android.com/training/location/retrieve-current.html, и я где-то читал, что новый API карт v2 использует ту же технику для получения моего местоположения.

Во всяком случае, когда я рисую пути пути на карте от моего местоположения до нужного, начальная точка пути отличается от синей точки, которая отмечает мое текущее местоположение.

Синяя точка показывает правильную позицию, и моя реализация не делает. Итак, есть ли способ получить координаты маркера синей точки, что-то вроде map.getMyLocationMarker().getLocation() или мне нужно выяснить какой-то другой способ получить мое местоположение вручную?

ОБНОВИТЬ

Я забыл, что я оставил этот вопрос открытым, но вот мой ответ ниже.

Теги:
geolocation
google-maps-api-2

4 ответа

0
Лучший ответ

На самом деле это была действительно глупая ошибка.

Но вот ответ. Процедура, описанная в ссылке в вопросе, - это правильная вещь.

Моя проблема заключалась в том, что я сохранил извлеченные данные в новый ключ общих предпочтений, и я читал его со старого, где было сохранено неправильное местоположение. Да, это довольно глупо :)

Поэтому следуйте инструкциям на портале разработчиков Android и не будет ошибок.

  • 0
    Можете ли вы дать мне код? map.getMyLocation () не работает для меня
3
Location findme = mMap.getMyLocation();
        double latitude = findme.getLatitude();
        double longitude = findme.getLongitude();
        LatLng latLng = new LatLng(latitude, longitude);

Это даст вам широту и долготу вашего местоположения.

  • 0
    getMyLocation() возвращает getMyLocation() . Есть ли предпосылки перед вызовом этого метода?
  • 0
    @djandreski GoogleMap.setMyLocationEnabled требуется.
1

Поскольку метод googlemyMap.getMyLocation() устарел...

Лучшее простое решение, которое я нашел

Получение текущего местоположения и центра камеры на маркере. Редактор Android Studio видит, что есть ошибка, но когда вы его запускаете, с кодом не возникает проблем.

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
Location location = locationManager.getLastKnownLocation(locationManager.getBestProvider(criteria,false));
if (location != null)
{    mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 13));

LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        Criteria criteria = new Criteria();
        Location location = locationManager.getLastKnownLocation(locationManager.getBestProvider(criteria,false));

        if (location != null)
        {
            mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(location.getLatitude(), location.getLongitude()), 13));

            CameraPosition cameraPosition = new CameraPosition.Builder()
                    .target(new LatLng(location.getLatitude(), location.getLongitude()))      // Sets the center of the map to location user
                    .zoom(17)                   // Sets the zoom
                    .build();                   // Creates a CameraPosition from the builder
            mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
        }
        LatLng goztepe = new LatLng(location.getLatitude(), location.getLongitude());
        mMap.addMarker(new MarkerOptions().position(goztepe).title("Göz Göz GÖZTEPE"));

объяснил здесь.

0

Первоначальный ответ состоял в том, чтобы использовать setMyLocationChangeListener() в GoogleMap, чтобы получать уведомления об изменениях "голубой точки". Это теперь устарело.

Если вы можете создать образец проекта, который воспроизводит вашу проблему, возможно, вы захотите подать вопрос, связав этот проект. То, что вы делаете, является официальной заменой устаревших методов, и поэтому можно надеяться, что ваш код будет работать правильно. Если у вас есть проблема, и если вы думаете об этом, напишите ссылку на нее здесь, так как я хотел бы следить за ней.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню