Получить выбранное местоположение из Google Maps - PullRequest
25 голосов
/ 13 декабря 2010

Я пытаюсь вернуть местоположение, выбранное пользователем в приложении Google Maps Android, но не могу найти информацию о том, как выполнить эту задачу.

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

Я использую startActiviyForResult, так как ожидаюрезультат обратно из действия.

Ответы [ 7 ]

44 голосов
/ 20 июня 2015

Вы можете просто использовать PlacePicker вместо реализации своей собственной MapActivity.Вам нужно будет добавить ссылку на библиотеку Google Play Services в ваш проект.

Просто запуститеActivityForResult с намерением, предоставленным PlacePicker.IntentBuilder

int PLACE_PICKER_REQUEST = 1;
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();

Context context = getApplicationContext();
startActivityForResult(builder.build(context), PLACE_PICKER_REQUEST);

, а затем получите результаты в onActivityResult

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == PLACE_PICKER_REQUEST) {
    if (resultCode == RESULT_OK) {
        Place place = PlacePicker.getPlace(data, this);
        String toastMsg = String.format("Place: %s", place.getName());
        Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();
    }
  }
}

Для получения более подробной информации см. https://developers.google.com/places/android/placepicker.

Слишком поздно, чтобы ответить на ваш вопрос, но надеюсь, что это поможет кому-то с таким же требованием.

16 голосов
/ 14 декабря 2010

использовать Google API.Вам просто нужно создать свой собственный MapActivity с MapView. Вот отличное руководство по API Google Включая получение местоположения касаниями пальцевНадеюсь, это поможет.

7 голосов
/ 28 ноября 2013

Для карт API V2 вы можете использовать onMapClickListener.

map.setOnMapClickListener(new GoogleMap.OnMapClickListener() {

        @Override
        public void onMapClick(LatLng point) {
            Toast.makeText(getApplicationContext(), point.toString(), Toast.LENGTH_SHORT).show();
        }
});

Подробнее: https://developers.google.com/maps/documentation/android/interactivity

5 голосов
/ 13 декабря 2010

Такой возможности нет - вы можете открыть Карты только с указанной позицией http://developer.android.com/guide/appendix/g-app-intents.html.

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

2 голосов
/ 20 марта 2014

Я думаю, вы ищете перетаскивание маркеров.

mMap.setMyLocationEnabled(true);
mLocation = mMap.getMyLocation();
mMap.addMarker(new MarkerOptions().position(new LatLng(mLocation.getLatitude(), mLocation.getLongitude())).draggable(true));
            mMap.setOnMarkerDragListener(new OnMarkerDragListener() {

                @Override
                public void onMarkerDrag(Marker marker) {

                }
                @Override
                public void onMarkerDragEnd(Marker marker) {
                    LatLng newLocation = marker.getPosition();
                    mLocation.setLatitude(newLocation.latitude);
                    mLocation.setLongitude(newLocation.longitude);
                    mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(mLocation.getLatitude(), mLocation.getLongitude()), 15.0f));

                }
                @Override
                public void onMarkerDragStart(Marker marker) {}

            });

, затем верните ваше новое местоположение. То есть, местоположение.

1 голос
/ 31 декабря 2016

Вы можете легко сделать это с помощью Mapbox Android SDK . У них есть хороший учебник:

Как создать средство выбора местоположения для вашего приложения! | MapBox

Основные необходимые компоненты:

  • Android ImageView для вывода.
  • Mapbox Android SDK Marker API.
  • Сервисы Mapbox Android для геокодирования.

Location picker

1 голос
/ 15 декабря 2010

hii Вам нужно перейти по этой ссылке. Просто пройдите по ней, надеюсь, вы получите свое решение. http://mobiforge.com/developing/story/using-google-maps-android

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...