2010-10-11 1 views
2

Так ежевика документация показывает следующий пример кода:Обратное геокодирование с использованием API-интерфейсов Blackberry 5.0 API?

import net.rim.device.api.lbs.*; 
import javax.microedition.location.*; 

public class myReverseGeocode 
{ 
    private Thread reverseGeocode; 

    public myReverseGeocode() 
    { 
     reverseGeocode = new Thread(thread); 
     reverseGeocode.setPriority(Thread.MIN_PRIORITY); 
     reverseGeocode.start(); 
    } 

    Runnable thread = new Runnable() 
    { 
     public void run() 
     { 
      AddressInfo addrInfo = null; 

      int latitude = (int)(45.423488 * 100000); 
      int longitude = (int)(-80.32480 * 100000); 

      try 
      { 
       Landmark[] results = Locator.reverseGeocode 
       (latitude, longitude, Locator.ADDRESS); 

       if (results != null && results.length > 0) 
        addrInfo = results[0].getAddressInfo(); 
      } 
      catch (LocatorException lex) 
      { 
      } 
     } 
    }; 
} 

Как использовать приведенный выше код для передачи в динамических долготы/широты в моем главном приложении?

ответ

2

Это просто базовый вопрос о java? Вы должны использовать ключевое слово «final», чтобы значения могли быть переданы в анонимный класс, удерживаемый локальной переменной «thread»

public myReverseGeocode(final double latArg, final double lonArg) 
{ 
    Runnable thread = new Runnable() 
    { 
     public void run() 
     { 
      AddressInfo addrInfo = null; 

      int latitude = (int)(latArg * 100000); 
      int longitude = (int)(lonArg * 100000); 

      try 
      { 
       Landmark[] results = Locator.reverseGeocode 
       (latitude, longitude, Locator.ADDRESS); 

       if (results != null && results.length > 0) 
        addrInfo = results[0].getAddressInfo(); 
      } 
      catch (LocatorException lex) 
      { 
      } 
     } 
    }; 
    reverseGeocode = new Thread(thread); 
    reverseGeocode.setPriority(Thread.MIN_PRIORITY); 
    reverseGeocode.start(); 

} 
+0

Спасибо Майкл. – jini

+0

Параметры latArg и lonArg по-прежнему не могут быть разрешены в run(). То есть они не передаются/недоступны в методе run runable. – jini

+0

какая ошибка вы получаете? –