我有以下问题:我写了一个函数来确定作为字符串参数传递的街道的确切位置:
private GeoPoint LocationToGeoPointParser(String address) throws IOException
{
Geocoder geoCoder = new Geocoder(this.context,Locale.ENGLISH);
List<Address> addr = null;
addr = geoCoder.getFromLocationName(address, 1);
double la = addr.get(0).getLatitude();
double lo = addr.get(0).getLongitude();
Double longitude = addr.get(0).getLongitude()*1E6;
Double latitude = addr.get(0).getLatitude()*1E6;
return new GeoPoint(latitude.intValue(),longitude.intValue());
//return new GeoPoint(73,32);
}如果我以这种方式使用函数,当地图加载时,一切都会非常慢。如果我注释地理编码代码并使用return new GeoPoint(73,32),它可以正常工作。有人能解释一下为什么地理编码会减慢我的应用程序吗?谢谢!:)
发布于 2011-07-28 19:26:02
地理编码器类需要一个未包含在核心android框架中的后端服务。如果平台中没有后端服务,则地理编码器查询方法将返回一个空列表。
使用Handler或AsyncTask等线程来调用后台,然后更改UI
发布于 2011-07-28 19:26:59
我还没有使用过Android API,但我想地理编码将调用某种类型的google web服务,它执行地理编码并返回结果。由于这涉及到网络通信,而getFromLocationName()方法似乎是阻塞的,因此遇到延迟并不是不合理的,也许在移动互联网连接中更是如此。如果您快速连续地调用您的方法,则会有更大的延迟空间。
当然,这是假设我是正确的,并且地理编码是在某个服务器上完成的。
https://stackoverflow.com/questions/6858069
复制相似问题