2012-05-23 58 views
1

我在我的应用中实现了反向地理编码,它正在工作,但有时会发生一个非常奇怪的问题。反向地理编码问题

的代码是

  List<Address> addresses = geo.getFromLocation(
        obj.getLatitude(), obj.getLongitude(), 1); 


      List<Address> address = geo.getFromLocationName(addresses.get(0).getLocality().getBytes() , 1); 


      Address location = address.get(0); 

在第一部分中,我得到在我的地方的地址对象。比我想恢复城市的通用坐标在我所在的位置,因为我不想存储我确切位置的坐标。

这是工作,但我遇到了一个很奇怪的问题!尝试使用假货应用程序的应用程序,我在“Ñuñoa”中设置自己的位置,第一个地址找到了正确的位置,但是当我尝试获取通用坐标时,我得到的不是智利,而是秘鲁的“Nunoa”! ! 这没有任何意义!为什么这个?

感谢您的帮助

+0

我解决了!当您使用android api并且只输入城市名称时,Google会检索结果中列出的第一个城市名称!我解决了它创建一个字符串,它是obj.getLocality()+“,”+ obj.getAdminArea()的串联。 – michoprogrammer

+0

可以发布你的完整代码吗? – swathi

回答

0

当然Swathi。

List<Address> addresses = geo.getFromLocation(msg_r.getLatitude(), 
       msg_r.getLongitude(), 1); 
     String geoL = addresses.get(0).getLocality() + ", " + addresses.get(0).getAdminArea() + ", " + addresses.get(0).getCountryCode(); 

       // reverse-reverseGeocoding 
       List<Address> address = geo.getFromLocationName(geoL, 1); 

       System.out.println("Where I am? " + geoL); 
       Address location = address.get(0); 

       // generic coordinate for the locality/city/town 
       location.getLatitude(); 
       location.getLongitude();