Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android में वर्तमान स्थान की अक्षांश और देशांतर कैसे प्राप्त करें?

Android में GPS से वर्तमान लोकेशन (अक्षांश/देशांतर) प्राप्त करने का गाइड

यह ट्यूटोरियल दिखाता है कि कैसे LocationManager, रनटाइम परमिशन और GPS प्रोवाइडर का उपयोग करके डिवाइस की वर्तमान लोकेशन प्राप्त की जाए।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं।

चरण 2: लेआउट फ़ाइल में कोड जोड़ें

res/layout/activity_main.xml में:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".MainActivity">
    <TextView
        android:id="@+id/showLocation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Location"
        android:textSize="24sp" />
    <Button
        android:id="@+id/btnGetLocation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Get Location" />
</LinearLayout>

चरण 3: MainActivity.java में कोड जोड़ें

src/MainActivity.java में:

import android.Manifest;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationManager;
import android.provider.Settings;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private static final int REQUEST_LOCATION = 1;
    Button btnGetLocation;
    TextView showLocation;
    LocationManager locationManager;
    String latitude, longitude;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ActivityCompat.requestPermissions(this,
            new String[] {Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION);
        showLocation = findViewById(R.id.showLocation);
        btnGetLocation = findViewById(R.id.btnGetLocation);
        btnGetLocation.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
                if (!locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
                    onGPS();
                } else {
                    getLocation();
                }
            }
        });
    }

    private void onGPS() {
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("Enable GPS").setCancelable(false)
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    startActivity(new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS));
                }
            }).setNegativeButton("No", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });
        final AlertDialog alertDialog = builder.create();
        alertDialog.show();
    }

    private void getLocation() {
        if (ActivityCompat.checkSelfPermission(MainActivity.this,
                Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
            ActivityCompat.checkSelfPermission(MainActivity.this,
                Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this,
                new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, REQUEST_LOCATION);
        } else {
            Location locationGPS = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
            if (locationGPS != null) {
                double lat = locationGPS.getLatitude();
                double longi = locationGPS.getLongitude();
                latitude = String.valueOf(lat);
                longitude = String.valueOf(longi);
                showLocation.setText("Your Location: " + "\n" + "Latitude: " + latitude + "\n" + "Longitude: " + longitude);
            } else {
                Toast.makeText(this, "Unable to find location.", Toast.LENGTH_SHORT).show();
            }
        }
    }
}

चरण 4: 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">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

महत्वपूर्ण नोट्स

  • Android 6.0+ (API 23+) में रनटाइम परमिशन आवश्यक है
  • GPS प्रोवाइडर सक्षम नहीं होने पर सेटिंग्स खोलने का विकल्प दें
  • getLastKnownLocation() null लौटा सकता है अगर हालिया लोकेशन न हो
  • उत्पादन ऐप्स के लिए FusedLocationProviderClient (Google Play Services) का उपयोग करने की सलाह दी जाती है

ऐप चलाएं

डिवाइस कनेक्ट करें, Run आइकन पर क्लिक करें, "Get Location" बटन दबाएं और लोकेशन देखें।

  1. एंड्रॉइड में एड्रेस से लैटीट्यूड और लॉन्गिट्यूड कैसे प्राप्त करें? (जियोकोडिंग) एंड्रॉइड में एड्रेस से लैटीट्यूड और लॉन्गिट्यूड कैसे प्राप्त करें? (जियोकोडिंग)

    एंड्रॉइड में Geocoder का उपयोग करके एड्रेस से लैटीट्यूड/लॉन्गिट्यूड प्राप्त करना Geocoding = एड्रेस (स्ट्रिंग) → लैटीट्यूड/लॉन्गिट्यूड (निर्देशांक)। एंड्रॉइड में android.location.Geocoder क्लास यह काम करती है। इसके लिए **इंटरनेट** और **लोकेशन परमिशन** चाहिए। चरण 1: नया प्रोजेक्ट बनाएं Android Studi

  1. Android में अक्षांश और देशांतर से पूरा पता कैसे प्राप्त करें? Android में अक्षांश और देशांतर से पूरा पता कैसे प्राप्त करें?

    Android में Latitude/Longitude से पूरा पता प्राप्त करने का गाइड यह ट्यूटोरियल दिखाता है कि कैसे Android ऐप में GPS निर्देशांक (अक्षांश और देशांतर) का उपयोग करके पूरा भौतिक पता प्राप्त किया जाए। हम Geocoder क्लास का उपयोग करेंगे। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनकर

  1. Python का उपयोग करके किसी शहर की लॉन्गिट्यूड और लैटिट्यूड कैसे प्राप्त करें? Python का उपयोग करके किसी शहर की लॉन्गिट्यूड और लैटिट्यूड कैसे प्राप्त करें?

    किसी शहर की लॉन्गिट्यूड और लैटिट्यूड प्राप्त करने के लिए, हम geopy मॉड्यूल का उपयोग करेंगे। geopy पतों, शहरों, देशों आदि के निर्देशांक का पता लगाने के लिए थर्ड-पार्टी जियोकॉडर्स और अन्य डेटा स्रोतों का उपयोग करता है।सबसे पहले, सुनिश्चित करें कि geopy मॉड्यूल इंस्टॉल है:pip install geopyनिम्नलिखित उद