Показать сообщение отдельно
Старый 23.02.2011, 17:05   #1
NeiroN
AnyKey`щик
 
Аватар для NeiroN
 
Регистрация: 23.02.2011
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Lib_location: Определение местоположения по GPS jsr179

Так как Java знаю не очень - выкладываю вначале исходник для проверки.
Для написания либы я использовал доки по javax.microedition.location


public static void init(int interval, int timeout)
procedure init(Interval, Timeout :integer); - инициализация GPS
     Interval - интервал обновления координат секунд
     Timeout - таймаут получения ответа секунд

public static int get_state()
function get_state():integer; - возвращает состояние

public static int is_location_valid()
function is_location_valid():integer; - проверка текущих координат
     1 - хорошие,
     0 - плохие

public static float get_speed()
function get_speed():float; - теущая скорость (единицы измерения?)

public static float get_course()
function get_course():float; - направление движения в градусах

public static long get_time()
function get_time():LongInt; - время в которое было выполнено измерение милисекунд.

public static String get_Altitude()
function get_Altitude():String; - высота над уровнем моря в метрах.

public static String Latitude()
function get_Latitude():String; - Широта в десятичном формате

public static String Longitude()
function get_Longitude():String; - Долгота в десятичном формате

public static String get_Latitude()
function get_Latitude():String; - Широта в формате "ГРАД:МИН:СЕК.МСЕК"

public static String get_Longitude()
function get_Longitude():String; - Долгота в формате "ГРАД:МИН:СЕК.МСЕК"

public static String get_distance_to(String lon, String lat)
function get_distance_to(lon, lat:String):String; - растояние от текущей точки до заданной
    lon - Долгота в формате "ГРАД:МИН:СЕК.МСЕК"
    lat - Широта в формате "ГРАД:МИН:СЕК.МСЕК"

public static String get_azimuth_to(String lon, String lat)
function get_azimuth_to(lon, lat:String):String; - азимут от текущей точки до заданной - в градусах
    lon - Долгота в формате "ГРАД:МИН:СЕК.МСЕК"
    lat - Широта в формате "ГРАД:МИН:СЕК.МСЕК"
class Lib_location 
{
    public static 
LocationProvider provider;
    public static 
Location loc;
    public static 
int State;
    private class 
MyLocationListener implements LocationListener
    
{
        public 
void locationUpdated(LocationProvider providerLocation location)
        {
        if (
location.isValid())    Lib_location.this.loc location;
        }
        public 
void providerStateChanged(LocationProvider providerint newState)
        {
        
Lib_location.this.State newState;
        }
    }
    
    public 
Lib_location()
    {
    
//хз чего тут написать
    
    
    
}
    
    public 
void init(int intervalint timeout)
    {
    try
    {
        
Criteria criteria = new Criteria();
        
criteria.setPreferredResponseTime(timeout*100);
        
criteria.setHorizontalAccuracy(1000);
        
criteria.setVerticalAccuracy(1000);
        
criteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_LOW);
        
provider LocationProvider.getInstance(criteria);
        
provider.setLocationListener(new MyLocationListener(), intervaltimeout, -1);
        
State provider.getState();
        
loc provider.getLocation(timeout);
    }catch(
Exception e) {}
    }

    public static 
int get_state() {
        return 
State;
    }
    
    public static 
int is_location_valid()
    {
        if(
loc.isValid()){return 1;}else{return 0;}
    }

    public static 
float get_speed() {
        return 
loc.getSpeed();
    }

    public static 
float get_course()
    {
        return 
loc.getCourse();
    }

    public static 
long get_time()
    {
        return 
loc.getTimestamp();
    }

    public static 
String get_Altitude()
    {
        return 
Double.toString(loc.getQualifiedCoordinates().getAltitude());
    }
    
    public static 
String Latitude()
    {
        return 
Double.toString(loc.getQualifiedCoordinates().getLatitude());
    }

    public static 
String Longitude()
    {
        return 
Double.toString(loc.getQualifiedCoordinates().getLongitude());
    }
    
    public static 
String get_Latitude()
    {
        return 
Coordinates.convert(loc.getQualifiedCoordinates().getLatitude(), Coordinates.DD_MM_SS);
    }

    public static 
String get_Longitude()
    {
        return 
Coordinates.convert(loc.getQualifiedCoordinates().getLongitude(), Coordinates.DD_MM_SS);
    }

    public static 
String get_distance_to(String lonString lat)
    {
        return 
Double.toString(loc.getQualifiedCoordinates().distance(new Coordinates(Coordinates.convert(lat), Coordinates.convert(lon), loc.getQualifiedCoordinates().getAltitude())));
    }

    public static 
String get_azimuth_to(String lonString lat)
    {
        return 
Double.toString(loc.getQualifiedCoordinates().azimuthTo(new Coordinates(Coordinates.convert(lat), Coordinates.convert(lon), loc.getQualifiedCoordinates().getAltitude())));
    }


Теперь оно хотя бы компилируется
Осталось накатать тестовый пример, проверить работает или нет и вынести функции конвертора Coordinates.convert(....)
Вложения
Тип файла: zip Lib_location.zip (2.8 Кб, 651 просмотров)

Последний раз редактировалось NeiroN, 23.02.2011 в 21:54.
(Offline)
 
Ответить с цитированием