como obtener latitud y longitud de un map fragment

Obtener latitud y longitud de un map fragment

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:

 

A continuación el enlace de descarga:
     

4 comentarios en «como obtener latitud y longitud de un map fragment»

  1. Anónimo

    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;

  2. Anónimo

    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"

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

WhatsApp chat