Ответ 1
используйте API Google. Вам просто нужно создать свою собственную MapActivity с MapView. Вот отличный учебник по API Google. Включая прием местоположения на пальцах. Надеюсь, это поможет.
Я пытаюсь вернуть местоположение, выбранное пользователем в приложении Google Maps для Android, но я не могу найти информацию о том, как достичь этой задачи.
Я создал намерение, чтобы открыть операцию GMaps, но пользователь не может выбрать точку на карте, и не активирует действие для моего приложения, когда оно закрыто.
Я использую startActiviyForResult
, так как я ожидаю результат от Activity.
используйте API Google. Вам просто нужно создать свою собственную MapActivity с MapView. Вот отличный учебник по API Google. Включая прием местоположения на пальцах. Надеюсь, это поможет.
Вы можете просто использовать PlacePicker вместо своей собственной MapActivity. Вам нужно будет добавить ссылку на библиотеку Служб Google Play в свой проект.
Просто startActivityForResult с намерением, предоставленным 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.
Слишком поздно ответить на ваш вопрос, но надеюсь, что это поможет кому-то с тем же требованием.
Для карт 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
Нет такой возможности - вы можете открывать только Карты с указанной позицией http://developer.android.com/guide/appendix/g-app-intents.html.
Вместо этого вы должны создать свою собственную активность с помощью MapView, используя Внешнюю библиотеку Карт.
hii вам нужно следовать этой ссылке. Просто пройдите через нее, надеюсь, что u получит решение для ура. http://mobiforge.com/developing/story/using-google-maps-android
Я думаю, вы ищете перетаскивание маркеров.
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) {}
});
то верните новое местоположение location.i.e mLocation.
Вы можете легко сделать это с помощью Mapbox Android SDK. У них хороший учебник:
Как создать средство выбора местоположения для вашего приложения! | MapBox
Необходимыми основными компонентами являются: