Мне было интересно, могу ли я захватить пользовательский ввод на Google Maps. Например, если я нажму карту, появится флаг mark/flag, и если нажать кнопку «Сохранить», флаг/флаг будет сохранен в моей базе данных?google maps flagging как тип ввода android
-1
A
ответ
1
Вы можете добавить карту кликов слушателя, и поместить маркер на точку, что пользователь повернутой:
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
//save current location
latLng = point;
//remove previously placed Marker
if (marker != null) {
marker.remove();
}
//place marker where user just clicked
marker = mMap.addMarker(new MarkerOptions().position(point).title("Marker")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA)));
}
});
Затем вы можете добавить кнопку, и в кнопку мыши слушателем вы бы иметь свой код который сохраняет данные из текущего маркера в вашу базу данных.
код Полный класс:
public class MapsActivity extends AppCompatActivity {
private GoogleMap mMap;
private Button saveButton;
private LatLng latLng;
private Marker marker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
setUpMapIfNeeded();
saveButton = (Button) findViewById(R.id.saveButton);
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//check of user has placed a marker
if (latLng != null){
double lat = latLng.latitude;
double lon = latLng.longitude;
//save location data in database
//...................
Toast.makeText(MapsActivity.this, "Location Saved: " + lat + " " + lon, Toast.LENGTH_LONG).show();
}
}
});
}
@Override
protected void onResume() {
super.onResume();
setUpMapIfNeeded();
}
private void setUpMapIfNeeded() {
// Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
// Try to obtain the map from the SupportMapFragment.
mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
.getMap();
// Check if we were successful in obtaining the map.
if (mMap != null) {
setUpMap();
}
}
}
private void setUpMap() {
mMap.setMyLocationEnabled(true);
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
mMap.getUiSettings().setMapToolbarEnabled(false);
mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
//save current location
latLng = point;
//remove previously placed Marker
if (marker != null) {
marker.remove();
}
//place marker where user just clicked
marker = mMap.addMarker(new MarkerOptions().position(point).title("Marker")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA)));
}
});
}
}
activity_maps.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MapsActivity" >
<fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
<Button
android:id="@+id/saveButton"
android:text="Save Current Marker Position"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"/>
</RelativeLayout>
Результат после нажатия на карту, чтобы поместить маркер, а затем нажмите на кнопку Сохранить:
+0
Большое спасибо. это идея - это то, что мне нужно. :) Спасибо, сэр. – ErlAl
Смежные вопросы
- 1. Android: Google maps maps
- 2. Android, Google Maps Android api, расположение и тип карты
- 3. Android: автообновление Google Maps
- 4. Android studio google maps
- 5. Android-маркер Google Maps
- 6. Android Wear Google Maps
- 7. android google maps sqlite
- 8. android google maps issues
- 9. API Google Maps Android
- 10. Android Google Maps ищет места
- 11. google maps v2 android
- 12. Google Maps на Android
- 13. android google maps nullpointerexception
- 14. Android Google maps release
- 15. Google Maps Android LatLngBounds
- 16. Android Google Maps
- 17. Google maps в Android
- 18. Android: Google Maps
- 19. Android google maps v2
- 20. Android google maps «NoClassDefFound»
- 21. Row flagging in Python
- 22. Кластеризация пользовательских маркеров ввода (Google Maps x Android Studio)
- 23. Google Блочно обновлять Тип ввода
- 24. android google maps bar bar
- 25. Google Maps Text Overlay - Android
- 26. Google maps android custom images
- 27. Google Maps Водительский маршрут android
- 28. Предотвращение Google Maps от кражи ввода клавиатуры
- 29. Zoom google maps, используя диапазон ввода
- 30. Google Maps Heatmap Android Display
Вам нужно будет провести некоторое исследование в API Карт Google. Затем вернитесь сюда и спросите, как улучшить то, что вы узнали. – durbnpoisn
ok sir, спасибо за вход :) – ErlAl
Ваш вопрос немного широк, и запросы на учебные материалы не по теме, поэтому я удалил часть вашего сообщения. Я собирался дать вам ссылки на некоторые другие сообщения SO, однако я не нашел реального канонического ответа на это. Итак, я пошел вперед и разместил ответ относительно части карты вашего вопроса. Что касается функциональности базы данных, есть много других сообщений о SO, которые могут вам помочь. –