创建Android位置对象

时间:2011-02-09 13:48:04

标签: android location

我使用Geocoder类通过使用以下代码获取多个位置对象:

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
   List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 3);
   Address[] addresses_array = new Address[addresses.size()];

    addresses.toArray(addresses_array);
    for( int i = 0; i < addresses_array.length; i++ ){
       //create location object here
       locOBJ.setLatitude(LATITUDE);
       locOBJ.setLongitude(LONGITUDE);
    }

另外,在forloop中,我试图通过动态创建位置对象来添加到数组中;

如何创建空白位置对象?

2 个答案:

答案 0 :(得分:38)

假设您引用android.location.Location,请使用构造函数,该构造函数接受提供程序字符串并将其设置为您想要的任何内容。

答案 1 :(得分:4)

这不是它的目的,如果你想在谷歌地图上绘制东西,你可能想要查看GeoPoint类。处理Map OverlayItem对象时,必须使用GeoPoint类。您打算如何处理Location对象?你也应该在线程或AsyncTask中进行getFromLocation调用,因为它正在进行远程服务器调用。

使用GeoPoint类。

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 3);
int size = addresses.size();
GeoPoint gp[] = new GeoPoint[size];
for(int i = 0; i<size; i++) {
   Address addr = addresses.get(i);
   gp[i] = new GeoPoint(addr.getLatitude()*1000000, 
                        address.getLongitude()*1000000);
}

值为* 1000000,因为GeoPoint需要E6值。还要意识到,如果没有匹配,则数组的长度可以为0。