Geocoder不能通过getfromlocationName工作

时间:2011-01-24 09:25:25

标签: java google-geocoder

我的代码如下:

Geocoder geocoder = new Geocoder(this,Locale.UK );
         List<Address> addresses = null;
         Toast.makeText(displaybyName.this, "country: before " , Toast.LENGTH_SHORT).show(); 
   try {
    Toast.makeText(displaybyName.this, "country: before " , Toast.LENGTH_SHORT).show(); 

    addresses = geocoder.getFromLocationName( 
      "Camden", 1);

    if (addresses.size() > 0) {

           geopoint = new GeoPoint(
                         (int) (addresses.get(0).getLatitude() * 1E6), 
                         (int) (addresses.get(0).getLongitude() * 1E6));

           //Animating on display

           mapcontroller.animateTo(geopoint);
           mapcontroller.setZoom(5); 
           mapview.invalidate();
          } 


   } catch (IOException io) {
    // TODO Auto-generated catch block
    Toast.makeText(displaybyName.this, "Connection Error", Toast.LENGTH_SHORT).show();
   }

   if (addresses.size() > 0) {

          geopoint = new GeoPoint(
                        (int) (addresses.get(0).getLatitude() * 1E6), 
                        (int) (addresses.get(0).getLongitude() * 1E6));

          //Animating on display

          mapcontroller.animateTo(geopoint);
          mapcontroller.setZoom(5); 
          mapview.invalidate();
         } 

然而,该应用每次都会崩溃。地理编码器没有返回任何纬度/长度。

代码是否有任何问题... plz plz advise。

2 个答案:

答案 0 :(得分:1)

仔细检查

addresses = geocoder.getFromLocationName("Camden", 1);

返回的内容不是null - 否则:以下行会引发NullPointerException


进一步阅读

答案 1 :(得分:0)

有Android版本的问题,因为地理编码器没有核心的Android框架,但这对新旧版本如1.6,2.0和API级别15的工作正常尝试这些首先它肯定会工作但仍然坚持只是试试你的 使用JSON自己的地理编码器类。