summaryrefslogblamecommitdiffstats
path: root/friendfinder/draw_user.c
blob: 2ed13f72f18f691912061425e491aa7851d1a387 (plain) (tree)
1
2
3
4
5
6
7
8
9

                 




                       

                               
                        


             
                     
 

                        








                                                         














                             

                                    



                         



                                                        
 
                                             
         

                                                                                                                        
                                                                                                                                        
                 
         
 


                        
                  

 

                                                                                                             
                                                                

                                                                         
                             

                                     
                                        
 

                                                                    









                                                                                           
                                                                                                                                                      
                                                                                                                                                                 
                                                                                       

                                                              
                                             






                                 
                                             



                      









                        
#include "math.h"

#include "Evas.h"
#include "Elementary.h"

#include "receiver.h"
#include "gui.h"
#include "util/projection.h"
#include "map/smart_map_priv.h"
#include "e_smart_map.h"

int _h= 600;
int _w = 450;
int _distance = 1000;

int active_map = 0;
double own_lat, own_lon;

Evas_Object *win, *map;

void init_draw_user(Evas_Object *_win, Evas_Object *_map)
{
	win = _win;
	map = _map;
}

void enable_map_bubbles()
{
	active_map = 1;
}

void disable_map_bubbles()
{
	active_map = 0;
}

void set_dist(int distance)
{
	_distance = distance;
}

void draw_user(struct position *pos)
{
	int e = NULL;
	int n = NULL;
	int own_e = NULL;
	int own_n = NULL;
	
	double old_lat, old_lon, sender_lat, sender_lon;
	sender_lat = atof(pos->lat);
	sender_lon = atof(pos->lon);

	if (sender_lat > 0 && sender_lon > 0)
	{
		if (active_map == 1 && test_distance(sender_lat, sender_lon, e, n, own_lat, own_lon, own_e, own_n) == 1)
		{
			e_smart_map_overlay_set_bubble(map, "routing", pos->nick, pos->nick, sender_lat, sender_lon, 0xffffffff);	
		}
	}

	free(pos->lat);
	free(pos->lon);
	free(pos->nick);
	free(pos);
}

int test_distance(double lat, double lon, int e, int n, double own_lat, double own_lon, int own_e, int own_n)
{	
	project_latlon(lat, lon,  &e, &n, PROJECTION_UTM);	
	project_latlon(own_lat, own_lon, &own_e, &own_n, PROJECTION_UTM);

/*	printf("e %i \n", e);
	printf("own_e %i \n", own_e);
	printf("n %i \n", n);
	printf("own_n %i \n", own_n); */

	if (e != NULL && n !=NULL && own_n != NULL && own_e != NULL)
	{
		double x = sqrt(((e - own_e) * (e - own_e)) + ((n - own_n) * (n - own_n)));
/*
		printf("e %f \n", e);
		printf("own_e %f \n", own_e);
		printf("n %f \n", n);
		printf("own_n %f \n", own_n);
		printf("e - own_e %f \n", e - own_e);
		printf("n - own_n %f \n", n - own_n);
		printf("(e - own_e) * (e - own_e) %f \n", (e - own_e) * (e - own_e));
		printf("(n - own_n) * (n - own_n) %f \n", (n - own_n) * (n - own_n));
		printf("((e - own_e) * (e - own_e)) + ((n - own_n) * (n - own_n)) %f \n", ((e - own_e) * (e - own_e)) + ((n - own_n) * (n - own_n))); 
		printf("sqrt(((e - own_e) * (e - own_e)) + ((n - own_n) * (n - own_n))) %f \n", sqrt(((e - own_e) * (e - own_e)) + ((n - own_n) * (n - own_n))));
		printf("e - own_e %i || n - own_n %i \n", (e - own_e), (n - own_n)); */
		printf("x: %f distance: %i \n", x, _distance);
	
		if (x <= _distance && x >= 0)
		{
			return 1;
		}
		else return 0;
	}
}

void set_own_position(double lat, double lon)
{		
	own_lat = lat;
	own_lon = lon;
}

double get_current_lat()
{
	return own_lat;
}	

double get_current_lon()
{
	return own_lon;
}