diff options
-rw-r--r-- | navit/navit/android.c | 22 | ||||
-rw-r--r-- | navit/navit/search.c | 39 |
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)); } } |