Should I use MapView or MapFragment

AndroidGoogle MapsAndroid MapviewGoogle Maps-Android-Api-2Mapfragment

Android Problem Overview


I am not sure whether I should be using MapView or stick to using a MapFragment. My application is an app that finds the nearest set of places that are closest to you. I want to be able to add locations, display details of a marker when I press a marker and when the user moves along the map I want to be able to get the coordinates of the center of the map and display the nearest locations within a defined radius. Would I be at a disadvantage if I continue to use MapFragments or should I switch over to MapView while I still have the chance?

Android Solutions


Solution 1 - Android

First of all, soon the MapView and Google Maps API V1 will stop being supported and won't receive any new updates. And soon all the support will go away.

Secondly, MapFragment may be a little bit less flexible right now, but the map presented, manipulated a looks much better. And I guess that it's functionality will improve with time.

So I would definitely continue to use MapFragments.

UPDATE: As @Brian White pointed out in the comments, today there is a MapView in Google API V2, and you should use it when you want to embed a map in a fragment. That way you will avoid cascading fragments when you don't have to.

Solution 2 - Android

MapFragment

  • Use it if you want to add a map into Activity class (not fragment because it will create a nested fragment and it´s a mess).
  • Use SupportMapFragment if you want to support just android versions lower than v12.

MapView

  • Use it if you are going to add a map into a fragment. (you need to update each lifecicle to MapView).

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJohnathan AuView Question on Stackoverflow
Solution 1 - AndroidEmil AdzView Answer on Stackoverflow
Solution 2 - AndroidKing of MassesView Answer on Stackoverflow