我使用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中,我试图通过动态创建位置对象来添加到数组中;
如何创建空白位置对象?
答案 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。