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

एंड्रॉइड में कोटलिन का उपयोग करके एड्रेस से लैटीट्यूड और लॉन्गिट्यूड कैसे प्राप्त करें

एंड्रॉइड में कोटलिन का उपयोग करके एड्रेस से लैटीट्यूड/लॉन्गिट्यूड प्राप्त करना

यह उदाहरण दर्शाता है कि एंड्रॉइड में कोटलिन का उपयोग करके एड्रेस से लैटीट्यूड और लॉन्गिट्यूड कैसे प्राप्त किया जाए।

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

एंड्रॉइड स्टूडियो में एक नया प्रोजेक्ट बनाएं: File → New Project पर जाएं और सभी आवश्यक विवरण भरकर नया प्रोजेक्ट बनाएं।

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

res/layout/activity_main.xml में निम्नलिखित कोड जोड़ें:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:padding="8dp"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textViewAddress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:text="एड्रेस दर्ज करें: "
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/editTextAddress"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toEndOf="@+id/textViewAddress"
        android:singleLine="true"
        android:text="" />

    <Button
        android:id="@+id/addressButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textViewAddress"
        android:layout_marginTop="50dp"
        android:layout_toEndOf="@+id/textViewAddress"
        android:text="लैट/लॉन्ग दिखाएं" />

    <TextView
        android:id="@+id/latLongTV"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toEndOf="@+id/textViewAddress"
        android:text=""
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="@android:color/background_dark" />

</RelativeLayout>

चरण 3 - MainActivity.kt में कोड जोड़ें

import android.os.Bundle
import android.os.Handler
import android.os.Message
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    private lateinit var addressButton: Button
    private lateinit var textViewAddress: TextView
    lateinit var textViewLatLong: TextView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"
        textViewAddress = findViewById(R.id.textViewAddress)
        textViewLatLong = findViewById(R.id.latLongTV)
        addressButton = findViewById(R.id.addressButton)

        addressButton.setOnClickListener {
            val editText = findViewById<EditText>(R.id.editTextAddress)
            val address = editText.text.toString()
            val locationAddress = GeoCodingLocation()
            locationAddress.getAddressFromLocation(address, applicationContext, GeoCoderHandler(this))
        }
    }

    companion object {
        private class GeoCoderHandler(private val mainActivity: MainActivity) : Handler() {
            override fun handleMessage(message: Message) {
                val locationAddress: String? = when (message.what) {
                    1 -> {
                        val bundle = message.data
                        bundle.getString("address")
                    }
                    else -> null
                }
                mainActivity.textViewLatLong.text = locationAddress
            }
        }
    }
}

चरण 4 - GeoCodingLocation.kt क्लास बनाएं

import android.content.Context
import android.location.Address
import android.location.Geocoder
import android.os.Bundle
import android.os.Handler
import android.os.Message
import android.util.Log
import java.io.IOException
import java.util.*

class GeoCodingLocation {
    private val TAG = "GeoCodeLocation"

    fun getAddressFromLocation(locationAddress: String, context: Context, handler: Handler) {
        val thread = object : Thread() {
            override fun run() {
                val geoCoder = Geocoder(context, Locale.getDefault())
                var result: String? = null
                try {
                    val addressList = geoCoder.getFromLocationName(locationAddress, 1)
                    if (addressList != null && addressList.size > 0) {
                        val address = addressList.get(0) as Address
                        val sb = StringBuilder()
                        sb.append(address.latitude).append("\n")
                        sb.append(address.longitude).append("\n")
                        result = sb.toString()
                    }
                } catch (e: IOException) {
                    Log.e(TAG, "Unable to connect to GeoCoder", e)
                } finally {
                    val message = Message.obtain()
                    message.target = handler
                    message.what = 1
                    val bundle = Bundle()
                    result = ("Address: $locationAddress" + "\n\nLatitude and Longitude: \n" + result)
                    bundle.putString("address", result)
                    message.data = bundle
                    message.sendToTarget()
                }
            }
        }
        thread.start()
    }
}

चरण 5 - AndroidManifest.xml में अनुमति और कोड जोड़ें

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.q11">
    <uses-permission android:name="android.permission.ACCESS_FINE_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>

ऐप चलाएं

अपने एंड्रॉइड डिवाइस को कंप्यूटर से कनेक्ट करें। एंड्रॉइड स्टूडियो में प्रोजेक्ट की एक्टिविटी फ़ाइल खोलें और टूलबार से Run आइकन पर क्लिक करें। अपना मोबाइल डिवाइस चुनें और डिवाइस पर डिफ़ॉल्ट स्क्रीन देखें।

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

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

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

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

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

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