Hà Nội Mã Hóa Địa Lý Và Mã Hóa Địa Lý Đảo Ngược Với Android

Thảo luận trong 'Quảng cáo tổng hợp' bắt đầu bởi nerudite, 31/12/15.

  1. nerudite

    nerudite New Member

    Như đã đề cập ở bài Nhận biết vị trí được chạm bản đồ với màn hình cảm ứng trong Android, nếu bạn biết vĩ độ và kinh độ của một vị trí, bạn có thể tìm ra địa chỉ của nó bằng cách sử dụng một quá trình gọi là mã hóa địa lý đảo ngược. Google Mapstrong Android hỗ trợ thông qua các lớp Geocoder. Đoạn mã sau đây cho thấy làm thế nào bạn có thể lấy địa chỉ của một vị trí chỉ chạm vào sử dụng phương phápgetFromLocation() trong học lập trình android:

    import android.location.Address;

    import android.location.Geocoder;

    import java.util.Locale;

    import java.io.IOException;

    //...

    @Override

    public boolean onTouchEvent(MotionEven tevent,MapView mapView)

    {

    //---when user lifts his finger---

    if(event.getAction()==1){

    GeoPoint p=mapView.getProjection().fromPixels(

    (int)event.getX(),

    (int)event.getY());

    /*

    Toast.makeText(getBaseContext(),

    “Location:“+

    p.getLatitudeE6()/1E6+“,”+

    p.getLongitudeE6()/1E6,

    Toast.LENGTH_SHORT).show();

    */

    Geocoder geoCoder = newGeocoder(

    getBaseContext(), Locale.getDefault());

    try{

    List<Address> addresses = geoCoder.getFromLocation(

    p.getLatitudeE6() / 1E6,

    p.getLongitudeE6() / 1E6, 1);

    String add = “”;

    if(addresses.size() > 0)

    {

    for(inti=0; i<addresses.get(0).getMaxAddressLineIndex();

    i++)

    add += addresses.get(0).getAddressLine(i) + “\n”;

    }

    Toast.makeText(getBaseContext(), add, Toast.LENGTH_SHORT).show();

    }

    catch(IOException e) {

    e.printStackTrace();

    }

    return true;

    }

    return false;

    }

    }

    Các đối tượng Geocoder chuyển đổi các vĩ độ và kinh độ vào một địa chỉ bằng cách sử dụng phương pháp getFromLocation(). Khi địa chỉ thu được, bạn hiển thị nó bằng cách sử dụng các lớp Toast. Hình dưới đây cho thấy các ứng dụng hiển thị địa chỉ của một vị trí được chạm trên bản đồ.

    [​IMG]

    Nếu bạn biết địa chỉ của một địa điểm, nhưng muốn biết độ và vĩ độ của nó, bạn có thể làm điều đó thông qua mã hóa địa lý. Một lần nữa, bạn có thể sử dụng lớp Geocoder cho mục đích này. Các mã sau đây cho thấy làm thế nào bạn có thể tìm thấy vị trí chính xác của các tòa nhà Empire State bằng cách sử dụng phương phápgetFromLocationName():

    //---geo-coding---

    Geocoder geoCoder = newGeocoder(this, Locale.getDefault());

    try{

    List<Address> addresses = geoCoder.getFromLocationName(

    “empire state building”, 5);

    String add = “”;

    if(addresses.size() > 0) {

    p= new GeoPoint(

    (int) (addresses.get(0).getLatitude() * 1E6),

    (int) (addresses.get(0).getLongitude() * 1E6));

    mc.animateTo(p);

    mapView.invalidate();

    }

    } catch(IOException e) {

    e.printStackTrace();

    }

    Hình dưới đây cho thấy bản đồ điều hướng đến vị trí của tòa nhà Empire State.

    [​IMG]



    ------------------- || -------------------

    Trung tâm đào tạo hoc photoshop tai ha noi
     

Chia sẻ trang này

Đang tải...