Debido a que recibí muchos correos pidiendo este tutorial, decidí darme un tiempo y darles la mano con eso y una vez mas demostrarles que nos es difícil todo lo contrario, desde que las api key de google map son fáciles de obtener se ha vuelto menos tedioso, sin mas rodeos empezamos.
PASO 1: Debemos ir a nuestro builde.gradle y agregar esta librería.
dependencies { compile 'com.google.android.gms:play-services:7.5.0' }
PASO 2: En nuestro AndroidManifest.xml hay que agregar algunos permisos, por lo general son tres pero recomiendo que pongan todos los que les voy a dejar, por temas de configuración y etc de cosas que le hacen a celular y a la hora de correr les bloquea algo y con esto nos aseguramos de que funcione.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.androidmorefast.pc.appcoordenadafragmentmap"> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.google.android.geo.API_KEY" android:value="Aqui tu api key" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" /> </application> </manifest>
Observen en nuestro AndroidManifest la siguiente linea después de cerrar</activity>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.google.android.geo.API_KEY" android:value="Aquí tu Api KEY" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" />
Busquen donde dice tu Api Key es donde ustedes deben poner la suya.
PASO 3: Debemos de crear nuestro MapFragment. Aquí vamos a crear un map fragment para mostrar el mapa y un textview para mostrar las coordenadas
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/tap_text" android:layout_width="match_parent" android:layout_height="wrap_content"/> <fragment android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" class="com.google.android.gms.maps.SupportMapFragment"/> </LinearLayout>
PASO 5: Debemos crear el código en nuestro MainActivity.java
public class MainActivity extends FragmentActivity implements GoogleMap.OnMapClickListener, GoogleMap.OnMapLongClickListener { private GoogleMap mMap; private TextView mTapTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); comprobacionesMapa(); mTapTextView = (TextView) findViewById(R.id.tap_text); } private void configurarMapa() { mMap.setOnMapClickListener(this); mMap.setOnMapLongClickListener(this); } @Override public void onMapClick(LatLng punto) { mTapTextView.setText("Punto marcado=" + punto); } @Override public void onMapLongClick(LatLng punto) { mTapTextView.setText("Punto, presionado=" + punto); } private void comprobacionesMapa() { // Hacer una comprobación nula para confirmar que ya no hemos instanciado el mapa. if (mMap == null) { // Intenta obtener el mapa desde el SupportMapFragment. mMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)) .getMap(); // Comprueba si hemos tenido éxito en la obtención del mapa. if (mMap != null) { configurarMapa(); } } } }
Y con eso hemos terminado. Si tiene problemas sigue la guia en Video:
Hola soy Alex Céspedes fundador de ANDROFAST, programo algunas cosas por diversión, me gusta aprender cosas nuevas y estoy pendiente de todo lo que tenga que ver con tecnología. Este blog lo cree para todas las personas que tengan dificultades en la programación, para ser sincero nunca fui bueno y reprobé algunos cursos de programación, pero mis ganas de aprender pudieron más. SI YO PUEDO TU PUEDES ANIMO!
Buenas tardes me gustaria saber como llamar desde un fragment a un mapa, o si se puede hacer.
***Archivo xml***
***Archivo java**
public class Map extends AppCompatActivity {
GoogleMap map;
ArrayList markerPoints;
double latI;
double longI;
String dirC;
String tez;
…
Lea sobre fragment dinámico y estáticos, le sera muy revelador se lo aseguro.
Entonces lo podre meter dentro de un fragment dinámico sin problemas, es que estoy dibujando rutas en el mapa desde la clase javaÑ:
public class Map extends FragmentActivity {
GoogleMap map;
ArrayList markerPoints;
double latI;
double longI;
String dirC;
String tez;
fragment
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="fill_parent"
class="com.google.android.gms.maps.SupportMapFragment"
Interesante, quizás mas adelante hagamos un tutorial al respecto, solo que andamos algo ocupados por el momento.