簡體   English   中英

Java Geocoding-將經緯度轉換為地址

[英]Java Geocoding - convert latitude and longitude into an address

對於我的Android應用程序,我需要當前汽車所在城市的名稱。

我具有經度和緯度,並希望將其與地址解析器一起轉換,並希望獲得城市。

我閱讀了一些文章,但是由於我是新來的,所以我不知道任何線索。

請誰能幫我怎么做?

編輯:

我不在我的應用程序中使用此地理編碼。 我想在Java Web服務中使用它,我想必須通過HTTPRequest使用它,對嗎? 以及google api url。

您正在尋找的是Reverse Geocoding

Geocoder類應該可以幫助您完成所需的工作(從此處獲取 ):

public static void getAddressFromLocation(
        final Location location, final Context context, final Handler handler) {
    Thread thread = new Thread() {
        @Override public void run() {
            Geocoder geocoder = new Geocoder(context, Locale.getDefault());   
            String result = null;
            try {
                List<Address> list = geocoder.getFromLocation(
                        location.getLatitude(), location.getLongitude(), 1);
                if (list != null && list.size() > 0) {
                    Address address = list.get(0);
                    // sending back first address line and locality
                    result = address.getAddressLine(0) + ", " + address.getLocality();
                }
            } catch (IOException e) {
                Log.e(TAG, "Impossible to connect to Geocoder", e);
            } finally {
                Message msg = Message.obtain();
                msg.setTarget(handler);
                if (result != null) {
                    msg.what = 1;
                    Bundle bundle = new Bundle();
                    bundle.putString("address", result);
                    msg.setData(bundle);
                } else 
                    msg.what = 0;
                msg.sendToTarget();
            }
        }
    };
    thread.start();
}

編輯:根據您的評論,然后,不,您不能在常規Java Web服務上使用Geocoder類。 話雖這么說,但還有其他選擇。 谷歌地理編碼API通常是一個不錯的起點,也就是說,它們似乎有局限性

另外,您可以看一下Nominatim ,它是一種開源的反向地理編碼服務,盡管與Google的服務相比似乎有所限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM