summaryrefslogtreecommitdiff
path: root/navit/vehicle/android/vehicle_android.c
diff options
context:
space:
mode:
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2009-09-20 12:45:33 +0000
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>2009-09-20 12:45:33 +0000
commit6ba2da7b4aca008221ff6fa3fafe47371ac9da59 (patch)
tree82dffc354b74c1c767e53ebe7d49964d70d1a357 /navit/vehicle/android/vehicle_android.c
parent08e15be1e9c78dedd0a4335c9bd0331e356fd22d (diff)
downloadnavit-6ba2da7b4aca008221ff6fa3fafe47371ac9da59.tar.gz
Add:vehicle_android:Support for getting radius
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@2581 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/vehicle/android/vehicle_android.c')
-rw-r--r--navit/vehicle/android/vehicle_android.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/navit/vehicle/android/vehicle_android.c b/navit/vehicle/android/vehicle_android.c
index 228e1ee16..15f93a869 100644
--- a/navit/vehicle/android/vehicle_android.c
+++ b/navit/vehicle/android/vehicle_android.c
@@ -41,6 +41,7 @@ struct vehicle_priv {
double speed;
double direction;
double height;
+ double radius;
int fix_type;
time_t fix_time;
char fixiso8601[128];
@@ -52,7 +53,7 @@ struct vehicle_priv {
jclass NavitVehicleClass;
jobject NavitVehicle;
jclass LocationClass;
- jmethodID Location_getLatitude, Location_getLongitude, Location_getSpeed, Location_getBearing, Location_getAltitude, Location_getTime;
+ jmethodID Location_getLatitude, Location_getLongitude, Location_getSpeed, Location_getBearing, Location_getAltitude, Location_getTime, Location_getAccuracy;
};
/**
@@ -80,7 +81,6 @@ static int
vehicle_android_position_attr_get(struct vehicle_priv *priv,
enum attr_type type, struct attr *attr)
{
- struct attr * active=NULL;
dbg(1,"enter %s\n",attr_to_name(type));
switch (type) {
#if 0
@@ -97,6 +97,10 @@ vehicle_android_position_attr_get(struct vehicle_priv *priv,
case attr_position_direction:
attr->u.numd = &priv->direction;
break;
+ case attr_position_radius:
+ attr->u.numd = &priv->radius;
+ break;
+
#if 0
case attr_position_qual:
attr->u.num = priv->sats;
@@ -138,6 +142,7 @@ vehicle_android_callback(struct vehicle_priv *v, jobject location)
v->speed = (*jnienv)->CallFloatMethod(jnienv, location, v->Location_getSpeed)*3.6;
v->direction = (*jnienv)->CallFloatMethod(jnienv, location, v->Location_getBearing);
v->height = (*jnienv)->CallDoubleMethod(jnienv, location, v->Location_getAltitude);
+ v->radius = (*jnienv)->CallFloatMethod(jnienv, location, v->Location_getAccuracy);
tnow=(*jnienv)->CallLongMethod(jnienv, location, v->Location_getTime)/1000;
tm = gmtime(&tnow);
strftime(v->fixiso8601, sizeof(v->fixiso8601), "%Y-%m-%dT%TZ", tm);
@@ -165,6 +170,8 @@ vehicle_android_init(struct vehicle_priv *ret)
return 0;
if (!android_find_method(ret->LocationClass, "getTime", "()J", &ret->Location_getTime))
return 0;
+ if (!android_find_method(ret->LocationClass, "getAccuracy", "()F", &ret->Location_getAccuracy))
+ return 0;
if (!android_find_class_global("org/navitproject/navit/NavitVehicle", &ret->NavitVehicleClass))
return 0;
dbg(0,"at 3\n");