Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Библиотеки

Ответ
 
Опции темы
Старый 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 Кб, 469 просмотров)

Последний раз редактировалось NeiroN, 23.02.2011 в 21:54.
(Offline)
 
Ответить с цитированием
Старый 23.02.2011, 18:50   #2
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Lib_location jsr179

Так сходу принципиальных косяков не видно, нужно компилить и проверять.
(Offline)
 
Ответить с цитированием
Старый 23.02.2011, 19:46   #3
NeiroN
AnyKey`щик
 
Аватар для NeiroN
 
Регистрация: 23.02.2011
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Lib_location jsr179

у меня сомнения на счет interface и инициализации LocationListener, автор выложивший здесь прогу по работе с jsr179 - использовал цикл, который сжирал память через бесконечно возрастающую переменную - поэтому я решил использовать стандартное средство обновления координат и состояния
(Offline)
 
Ответить с цитированием
Старый 23.02.2011, 20:52   #4
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Lib_location jsr179

Что-то я упустил этот interface...
Оно нормально компилируется? Я такие конструкции использовать не пробовал.
(Offline)
 
Ответить с цитированием
Старый 23.02.2011, 21:17   #5
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Lib_location jsr179

NeiroN, это не я тот Автор? Я вроде выкладывал здесь прогу такую. И у меня где-то там была утечка памяти. Но я так и не разобрался до конца где.
(Offline)
 
Ответить с цитированием
Старый 23.02.2011, 22:02   #6
NeiroN
AnyKey`щик
 
Аватар для NeiroN
 
Регистрация: 23.02.2011
Сообщений: 6
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Lib_location jsr179

да это вы, там с переменными намудрено - при первичном анализе заметно увеличение переменой time, также могут быть проблемы в классе net - не стал ковыряться - пердпочитаю обработку событий : верчению в цикле с ожиданием.

Либу поправил - можно тестить
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 20:04.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com