Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use MapView in android using google map V2?

I want to show a map in on of my activity.

In google map V1 we use -

 <com.google.android.maps.MapView         android:id="@+id/mapview"         android:layout_width="match_parent"         android:layout_height="match_parent"         android:apiKey="@string/api_map_key"         android:clickable="true"         android:enabled="true" /> 

and extend the activity by using MapActivity class.

In Versing 2 it uses Fragment instead of mapview and have to extend activity by FragmentActivity instead normal Activity. ex-

<fragment             android:id="@+id/map"             android:layout_width="match_parent"             android:layout_height="match_parent"             class="com.google.android.gms.maps.SupportMapFragment" /> 

Now Can I use Same way to create mapview instead of Fragment using version 2 .()

Can anyone use MapView using V2?

like image 825
Aniket Bhosale Avatar asked May 14 '13 06:05

Aniket Bhosale


People also ask

How do I enable Google Maps API v2?

Click on the “APIs & auth” menu on the left, and from the submenu select APIs. From the list of APIs that appear, scroll down and ensure that Google Maps Android API v2 is set to “On”.

What is mapview Android Studio?

A View which displays a map (with data obtained from the Google Maps service). When focused, it will capture keypresses and touch gestures to move the map.


2 Answers

yes you can use MapView in v2... for further details you can get help from this

https://gist.github.com/joshdholtz/4522551


SomeFragment.java

public class SomeFragment extends Fragment implements OnMapReadyCallback{       MapView mapView;     GoogleMap map;       @Override     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {         View v = inflater.inflate(R.layout.some_layout, container, false);           // Gets the MapView from the XML layout and creates it         mapView = (MapView) v.findViewById(R.id.mapview);         mapView.onCreate(savedInstanceState);                mapView.getMapAsync(this);                    return v;     }      @Override    public void onMapReady(GoogleMap googleMap) {        map = googleMap;        map.getUiSettings().setMyLocationButtonEnabled(false);        map.setMyLocationEnabled(true);        /*        //in old Api Needs to call MapsInitializer before doing any CameraUpdateFactory call         try {             MapsInitializer.initialize(this.getActivity());         } catch (GooglePlayServicesNotAvailableException e) {             e.printStackTrace();         }         */                  // Updates the location and zoom of the MapView         /*CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(43.1, -87.9), 10);         map.animateCamera(cameraUpdate);*/         map.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(43.1, -87.9)));      }      @Override     public void onResume() {         mapView.onResume();         super.onResume();     }       @Override     public void onPause() {         super.onPause();         mapView.onPause();     }       @Override     public void onDestroy() {         super.onDestroy();         mapView.onDestroy();     }       @Override     public void onLowMemory() {         super.onLowMemory();         mapView.onLowMemory();     }   } 

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.example"     android:versionCode="1"     android:versionName="1.0" >          <uses-sdk         android:minSdkVersion="8"         android:targetSdkVersion="15" />          <uses-permission android:name="android.permission.INTERNET"/>     <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>          <uses-feature         android:glEsVersion="0x00020000"         android:required="true"/>          <permission         android:name="com.example.permission.MAPS_RECEIVE"         android:protectionLevel="signature"/>     <uses-permission android:name="com.example.permission.MAPS_RECEIVE"/>          <application         android:icon="@drawable/ic_launcher"         android:label="@string/app_name"         android:theme="@style/AppTheme" >                  <meta-data             android:name="com.google.android.maps.v2.API_KEY"             android:value="your_key"/>                  <activity             android:name=".HomeActivity"             android:label="@string/app_name" >             <intent-filter>                 <action android:name="android.intent.action.MAIN" />                 <category android:name="android.intent.category.LAUNCHER" />             </intent-filter>         </activity>          </application>   </manifest> 

some_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="fill_parent"     android:layout_height="fill_parent" >          <com.google.android.gms.maps.MapView android:id="@+id/mapview"         android:layout_width="fill_parent"          android:layout_height="fill_parent" />   </LinearLayout> 
like image 165
Naveed Ali Avatar answered Sep 29 '22 01:09

Naveed Ali


More complete sample from here and here.

Or you can check out my layout sample. p.s no need to put API key in the map view.

<?xml version="1.0" encoding="utf-8"?>  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"               android:orientation="vertical"               android:layout_width="match_parent"               android:layout_height="match_parent">      <com.google.android.gms.maps.MapView             android:id="@+id/map_view"             android:layout_width="match_parent"             android:layout_height="match_parent"             android:layout_weight="2"             />      <ListView android:id="@+id/nearby_lv"               android:layout_width="match_parent"               android:layout_height="match_parent"               android:background="@color/white"               android:layout_weight="1"             />  </LinearLayout> 
like image 42
Robert Avatar answered Sep 29 '22 02:09

Robert