summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--navit/navit/android.c22
-rw-r--r--navit/navit/search.c39
2 files changed, 31 insertions, 30 deletions
diff --git a/navit/navit/android.c b/navit/navit/android.c
index fe7c9a41e..d0d164218 100644
--- a/navit/navit/android.c
+++ b/navit/navit/android.c
@@ -483,7 +483,7 @@ Java_org_navitproject_navit_NavitGraphics_CallbackSearchResultList( JNIEnv* env,
struct attr attr;
while((res=search_list_get_result(gp->sl)))
{
- dbg(0,"**** aaa8");
+ //dbg(0,"**** aaa8");
if (item_attr_get(&res->town->itemt, attr_label, &attr))
{
dbg(0,"***search result C=%s T=%s",res->country->iso2,attr.u.str);
@@ -528,25 +528,13 @@ Java_org_navitproject_navit_NavitGraphics_CallbackSearchResultList( JNIEnv* env,
// set to first element
ret=g_list_first(ret);
// iterate thru the list
- dbg(0,"ret=%p\n",ret);
+ //dbg(0,"ret=%p\n",ret);
while (ret)
{
- res=ret->data;
- dbg(0,"result list iterate %s\n",res->street->name);
-
- // coords of result
- struct coord_geo g;
- struct coord c;
- c.x=res->street->common.c->x;
- c.y=res->street->common.c->y;
- transform_to_geo(res->street->common.c->pro, &c, &g);
- dbg(0,"g=%f %f\n",g.lat,g.lng);
-
+ //dbg(0,"result list iterate %s\n",ret->data);
// return all the results to java
- const char *buffer;
// return a string like: "16.766:48.76:full address name is at the end"
- sprintf(buffer,"%f:%f:%s",g.lat, g.lng, res->street->name);
- js2 = (*env)->NewStringUTF(env, buffer);
+ js2 = (*env)->NewStringUTF(env, ret->data);
(*env)->CallVoidMethod(env, thiz, aMethodID, js2);
(*env)->DeleteLocalRef(env, js2);
@@ -554,7 +542,7 @@ Java_org_navitproject_navit_NavitGraphics_CallbackSearchResultList( JNIEnv* env,
}
// free the memory
g_list_free(ret);
- dbg(0,"ret=%p\n",ret);
+ //dbg(0,"ret=%p\n",ret);
if (gp4->sl)
{
diff --git a/navit/navit/search.c b/navit/navit/search.c
index f50d48739..e238e9bde 100644
--- a/navit/navit/search.c
+++ b/navit/navit/search.c
@@ -867,26 +867,29 @@ search_address_housenumber(GList *result_list, struct search_list *sl, GList *ph
GList *tmp=phrases;
int count=0;
struct attr attr;
+ struct coord_geo g;
+ struct coord c;
attr.type=attr_street_name;
while (slr=search_list_get_result(sl))
{
//dbg(0,"%p %p\n",slr->country,slr->town);
//dbg(0,"%p\n",slr->street);
dbg(0,"###### Result without housenumber: country=%s country_name=%s town=%s street=%s\n",slr->country->iso2,slr->country->name,slr->town->common.town_name,slr->street->name);
- result_list=g_list_prepend(result_list,slr);
// coords of result
- /*
- struct pcoord *pc=slr->street->common.c;
- struct coord_geo g;
- struct coord c;
- c.x=pc->x;
- c.y=pc->y;
- dbg(0,"1 pc=%d %d\n",pc->x,pc->y);
- transform_to_geo(pc->pro, &c, &g);
- dbg(0,"2 c=%d %d\n",c.x,c.y);
- dbg(0,"3 pc=%d %d\n",pc->x,pc->y);
- */
+ c.x=slr->street->common.c->x;
+ c.y=slr->street->common.c->y;
+ transform_to_geo(slr->street->common.c->pro, &c, &g);
+ //dbg(0,"g=%f %f\n",g.lat,g.lng);
+
+ //dbg(0,"xx1");
+ // return a string like: "16.766:-48.76:full address name is at the end"
+ char buffer[400];
+ // ca. 9 chars : ca. 9 chars : max. 100 max. 100 max. 100 chars -> this sould be max. about 320 chars long
+ sprintf(&buffer,"%f:%f:%.101s, %.101s, %.101s",g.lat,g.lng,slr->country->name,slr->town->common.town_name,slr->street->name);
+ dbg(0,"sprintf ok");
+ result_list=g_list_prepend(result_list,g_strdup(buffer));
+ //dbg(0,"xx3");
count++;
}
@@ -904,8 +907,18 @@ search_address_housenumber(GList *result_list, struct search_list *sl, GList *ph
search_list_search(sl, &attr, partial);
while (slr=search_list_get_result(sl))
{
+ // coords of result
+ c.x=slr->street->common.c->x;
+ c.y=slr->street->common.c->y;
+ transform_to_geo(slr->street->common.c->pro, &c, &g);
+ //dbg(0,"g=%f %f\n",g.lat,g.lng);
+
dbg(0,"###### Result with housenumber: %s %s(%s) %s %s\n",slr->house_number->common.postal,slr->house_number->common.town_name, slr->house_number->common.district_name,slr->street->name,slr->house_number->house_number);
- result_list=g_list_prepend(result_list,slr);
+ // return a string like: "16.766:48.76:full address name is at the end"
+ char buffer[400];
+ // ca. 9 chars : ca. 9 chars : max. 100 max. 100 max. 100 max. 15 chars -> this sould be max. about 335 chars long
+ sprintf(&buffer,"%f:%f:%.101s, %.101s, %.101s %.15s",g.lat,g.lng,slr->country->name,slr->town->common.town_name,slr->street->name,slr->house_number->house_number);
+ result_list=g_list_prepend(result_list,g_strdup(buffer));
}
}