परिचय
यह ट्यूटोरियल दिखाता है कि Google Maps SDK और Location API का उपयोग करके Android ऐप में वर्तमान लोकेशन कैसे दिखाएं। हम मैप पर मार्कर लगाएंगे और कैमरा को उपयोगकर्ता की लोकेशन पर केंद्रित करेंगे।
आवश्यक चरण
चरण 1: नया प्रोजेक्ट बनाएं और डिपेंडेंसी जोड़ें
Android Studio में File → New Project → Google Maps Activity टेम्पलेट चुनें (आसान सेटअप के लिए)। या मैन्युअली build.gradle (Module: app) में जोड़ें:
dependencies {
implementation 'com.google.android.gms:play-services-maps:18.2.0'
implementation 'com.google.android.gms:play-services-location:21.0.1'
}
चरण 2: लेआउट फ़ाइल (res/layout/activity_maps.xml)
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MapsActivity" />
चरण 3: मैप्स एक्टिविटी (src/MapsActivity.java)
import androidx.fragment.app.FragmentActivity;
import android.os.Bundle;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
// हार्डकोडेड लोकेशन (चेन्नई, भारत) - वास्तविक ऐप में GPS से प्राप्त करें
LatLng myCurrentLocation = new LatLng(13.0827, 80.2707);
// मार्कर जोड़ें
mMap.addMarker(new MarkerOptions()
.position(myCurrentLocation)
.title("यह मेरी वर्तमान लोकेशन है"));
// कैमरा मूव करें
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(myCurrentLocation, 15f));
}
}
चरण 4: API Key कॉन्फ़िगर करें (res/values/strings.xml)
<resources>
<string name="app_name">Location Demo</string>
<string name="title_activity_maps">Map</string>
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR_API_KEY_HERE</string>
</resources>
महत्वपूर्ण: YOUR_API_KEY_HERE को अपने Google Cloud Console से प्राप्त Maps SDK API Key से बदलें।
चरण 5: मैनिफेस्ट फ़ाइल (AndroidManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="app.com.sample">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<activity
android:name=".MapsActivity"
android:label="@string/title_activity_maps">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
ऐप चलाएं
डिवाइस कनेक्ट करें, Run क्लिक करें। मैप खुलेगा और चेन्नई पर मार्कर के साथ केंद्रित होगा।

वास्तविक GPS लोकेशन प्राप्त करें (महत्वपूर्ण)
उपरोक्त कोड में लोकेशन हार्डकोडेड है। वास्तविक ऐप में FusedLocationProviderClient उपयोग करें:
import com.google.android.gms.location.FusedLocationProviderClient;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.tasks.OnSuccessListener;
public class MapsActivity extends FragmentActivity implements OnMapReadyCallback {
private FusedLocationProviderClient fusedLocationClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
// ... मैप सेटअप
}
@Override
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
getCurrentLocation();
}
private void getCurrentLocation() {
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 1001);
return;
}
fusedLocationClient.getLastLocation()
.addOnSuccessListener(this, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
if (location != null) {
LatLng current = new LatLng(location.getLatitude(), location.getLongitude());
mMap.addMarker(new MarkerOptions().position(current).title("मेरी लोकेशन"));
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(current, 15f));
}
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == 1001 && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
getCurrentLocation();
}
}
}
महत्वपूर्ण बिंदु
- API Key - Google Cloud Console → APIs & Services → Credentials → Create API Key → Maps SDK for Android इनेबल करें।
- परमिशन - `ACCESS_FINE_LOCATION` (सटीक) और `ACCESS_COARSE_LOCATION` (अनुमानित)।
- रनटाइम परमिशन - Android 6.0+ में उपयोगकर्ता से रनटाइम पर पूछें।
- FusedLocationProviderClient - बैटरी-कुशल, उच्च-सटीक लोकेशन के लिए अनुशंसित।
- एमुलेटर टेस्टिंग - Extended Controls → Location से मॉक लोकेशन सेट करें।