گرفتن کشور، استان و شهر کاربر با دادن طول و عرض جغرافیایی در B4A


گرفتن کشور، استان و شهر کاربر با دادن طول و عرض جغرافیایی در B4A
۱۸ اردیبهشت ۱۳۹۸
2383 بازدید
نویسنده:

گاهی اوقات پیش میاد که با استفاده از کتابخانه LocationManager و یا هر کتابخانه‌ی دیگه ای اقدام به دریافت طول و عرض جغرافیایی کاربر میکنیم و یا این اطلاعات رو از قبل داریم، با این تابع کاربردی با دادن این موقعیت نام کشور، استان و شهر کاربر رو دریافت میکنیم.

 

 

✅ استفاده

 

۱٫ تابع جاوای زیر رو به محیط کدنویسی تون اضافه و کتابخانه JavaObject رو تیک بزنید:

 

#if java
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import android.location.Address;
import android.location.Geocoder;
 
public List getinfo(double MyLat,double MyLong) throws IOException{
      Geocoder geocoder = new Geocoder(this, Locale.getDefault());
       List<Address> addresses = geocoder.getFromLocation(MyLat, MyLong, 1);
       String cityName = addresses.get(0).getAddressLine(0);
       String stateName = addresses.get(0).getAddressLine(1);
       String countryName = addresses.get(0).getAddressLine(2);
       List<String> l = new ArrayList<String>();
       l.add(cityName);
       l.add(stateName);
       l.add(countryName);
       return l;
    }
#End If

 


▶️ تابع بالا در زبان جاوا نیز قابل استفاده هست.


 

۲٫ دادن Lat و Long و چاپ اطلاعات:

 

 

Dim j As JavaObject
  j.InitializeContext
  Dim list1 As List=j.RunMethod("getinfo",Array(37.2213871,49.2916187))
  Log(list1.Get(0)) 'شهر
  Log(list1.Get(1)) 'استان
  Log(list1.Get(2)) 'کشور

 

 


آموزش برنامه نویسی اندروید

پژمان نیکروان
پژمان نیکروان

پژمان نیکروان هستم؛ مدیر وب سایت کافه توسعه، شروع فعالیتم به برنامه نویسی از سال 1392 بوده و هدف از ایجاد وبسایت اشتراک گذاری تجارب خودم و دیگر برنامه نویسان هست.

ارسال دیدگاه

می توانید از تگ های HTML نیز استفاده کنید :
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

دیدگاه های مطلب:
Profile Comment
jwd

با سلام من اجرا میکنم و این خطا رو دریافت میکنم
B4A Version: 9.30
Java Version: 8
Parsing code. (0.02s)
Building folders structure. (0.06s)
Compiling code. (0.17s)
Compiling layouts code. (0.06s)
Organizing libraries. (0.00s)
(Android Support Library)
Generating R file. (0.00s)
Compiling debugger engine code. (0.01s)
Compiling generated Java code. Error
B4A line: 91
End Sub
javac 1.8.0_74
src\b4a\example\select_city.java:610: error: not a statement
List<Address> addresses = geocoder.getFromLocation(MyLat, MyLong, 1);
^
۱ error

پاسخ دادن

12 مرداد 1398

    Profile Comment
    پژمان نیکروان

    سلام فکر میکنم که کد های جاوا رو داخل یک sub قرار دادید، بیرون sub قرار بدید. یعنی بعد از یکی از end sub هاتون توی کدنویسی.

    پاسخ دادن

    12 مرداد 1398

      Profile Comment
      jwd

      نه اقای نیکروان من خارج از ساب گذاشتم و خطا هم به قسمت end sub مربوط به Process_Globals هست

      پاسخ دادن

      13 مرداد 1398

        Profile Comment
        پژمان نیکروان

        کد ویرایش شد. بیزحمت تست کنید دیگه نباید موقع کامپایل خطا داشته باشید.

        پاسخ دادن

        13 مرداد 1398

          Profile Comment
          jwd

          بازم خطا میده اما موقع اجرا
          java.lang.reflect
          .InvocationTargetException
          at java.lang.reflect.Method
          .invokeNative(Native Method)
          at java.lang.reflect
          .Method.invoke(Method.java:515)…

          17 مرداد 1398

          Profile Comment
          پژمان نیکروان

          ممنون که پیگیر هستید، الان مجدداً تست شد مشکلی وجود نداشت.
          روی چه نسخه اندرویدی تست میکنید؟

          17 مرداد 1398

          Profile Comment
          jwd

          روی اندروید ۶

          18 مرداد 1398

          Profile Comment
          پژمان نیکروان

          به ایدی تلگرامی که در قسمت “درباره نویسنده” مشاهده میکنید پیام ارسال بفرمایید این مورد رو بررسی میکنیم.

          18 مرداد 1398