summaryrefslogtreecommitdiffstats
path: root/friendfinder/draw_user.c
blob: 2ed13f72f18f691912061425e491aa7851d1a387 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#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;
}