-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathScriptForMatlabUser.m
175 lines (143 loc) · 6.17 KB
/
ScriptForMatlabUser.m
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% MATLAB script for generating map of UPC, UPV, etc. based on your private
% Ingress GDPR Data.
%
% Denpendencies:
% * https://www.mathworks.com/matlabcentral/fileexchange/27627-zoharby-plot_google_map
% * https://www.mathworks.com/matlabcentral/fileexchange/65234-adclose-mars2wgs
% * https://www.mathworks.com/matlabcentral/fileexchange/23629-export_fig
%
% Author: https://github.com/chouj 2018.10.01
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
s=input('Input path of the folder where game_log.tsv is stored: ','s');
while exist(s, 'dir')~=7
s=input('Folder does not exist. Re-enter: ','s');
end
while exist(fullfile(s,'game_log.tsv'))~=2
s=input('game_log.tsv not found. Re-enter: ','s');
end
% read game_log.tsv into workspace
[time,lat,lon,event,response,comment] = textread(fullfile(s,'game_log.tsv'),'%s%s%s%s%s%s','headerlines',1,'delimiter','\t');
%%%%%%%%%%%%%%%%%%%%%%%%%%% UPV green %%%%%%%%%%%%%%%%%%%%%%%%%
n=0;
for i=1:length(time);
if strcmp(lat{i},'None')==0
% Pearl River Delta
if str2num(lat{i})>21.5&str2num(lat{i})<23.5&str2num(lon{i})>112&str2num(lon{i})<115
if strcmp(event{i},'hacked friendly portal')==1 | strcmp(event{i},'created link')==1 |...
strcmp(event{i},'mod deployed')==1 | strcmp(event{i},'resonator deployed')==1 |...
strcmp(event{i},'hacked enemy portal')==1 | strcmp(event{i},'resonator upgraded')==1
n=n+1;
londata(n)=str2num(lon{i});
latdata(n)=str2num(lat{i});
end
end
end
end
[clon,ialon,iblon]=unique(londata,'stable');
[clat,ialat,iblat]=unique(latdata,'stable');
index=union(ialat,ialon);
lonunique=londata(index);latunique=latdata(index); % duplicate checking
% coordinates transform
[latuniqueChina,lonuniqueChina]=wgs2gcj(latunique,lonunique);
f=figure;
plot(lonuniqueChina, latuniqueChina, '.g','MarkerSize',9) ;
hold on
clear londata latdata clon ialon iblon clat ialat iblat index lonunique latunique lonuniqueChina latuniqueChina
%%%%%%%%%%%%%%%%%%%%%%%%%%% fire XMP red %%%%%%%%%%%%%%%%%%%%%%%%%
n=0;
for i=1:length(time);
if strcmp(lat{i},'None')==0
% Pearl River Delta
if str2num(lat{i})>21.5&str2num(lat{i})<23.5&str2num(lon{i})>112&str2num(lon{i})<115
if strcmp(event{i},'fired weapon')==1
n=n+1;
londata(n)=str2num(lon{i});
latdata(n)=str2num(lat{i});
end
end
end
end
[clon,ialon,iblon]=unique(londata,'stable');
[clat,ialat,iblat]=unique(latdata,'stable');
index=union(ialat,ialon);
lonunique=londata(index);latunique=latdata(index); % duplicate checking
% coordinates transform
[latuniqueChina,lonuniqueChina]=wgs2gcj(latunique,lonunique);
plot(lonuniqueChina, latuniqueChina, '.r','MarkerSize',1.5) ;
clear londata latdata clon ialon iblon clat ialat iblat index lonunique latunique lonuniqueChina latuniqueChina
%%%%%%%%%%%%%%%%%%%%%%%%%%% login cyan %%%%%%%%%%%%%%%%%%%%%%%%%
n=0;
for i=1:length(time);
if strcmp(lat{i},'None')==0
% Pearl River Delta
if str2num(lat{i})>21.5&str2num(lat{i})<23.5&str2num(lon{i})>112&str2num(lon{i})<115
if strcmp(event{i},'login')==1
n=n+1;
londata(n)=str2num(lon{i});
latdata(n)=str2num(lat{i});
end
end
end
end
[clon,ialon,iblon]=unique(londata,'stable');
[clat,ialat,iblat]=unique(latdata,'stable');
index=union(ialat,ialon);
lonunique=londata(index);latunique=latdata(index); % duplicate checking
% coordinates transform
[latuniqueChina,lonuniqueChina]=wgs2gcj(latunique,lonunique);
plot(lonuniqueChina, latuniqueChina, '.c','MarkerSize',1.5) ;
clear londata latdata clon ialon iblon clat ialat iblat index lonunique latunique lonuniqueChina latuniqueChina
%%%%%%%%%%%%%%%%%%%%%%%%%%% UPC blue %%%%%%%%%%%%%%%%%%%%%%%%%
n=0;
for i=1:length(time);
if strcmp(lat{i},'None')==0
% Pearl River Delta
if str2num(lat{i})>21.5&str2num(lat{i})<23.5&str2num(lon{i})>112&str2num(lon{i})<115
if strcmp(event{i},'captured portal')==1 % Portal Captured
n=n+1;
londata(n)=str2num(lon{i});
latdata(n)=str2num(lat{i});
end
end
end
end
[clon,ialon,iblon]=unique(londata,'stable');
[clat,ialat,iblat]=unique(latdata,'stable');
index=union(ialat,ialon);
lonunique=londata(index);latunique=latdata(index); % duplicate checking
% write into a kml file
% filename = 'test_v2.kml';
% kmlwritepoint(filename, latunique, lonunique);
% coordinates transform
[latuniqueChina,lonuniqueChina]=wgs2gcj(latunique,lonunique);
plot(lonuniqueChina, latuniqueChina, '.b','MarkerSize',10) ;
clear londata latdata clon ialon iblon clat ialat iblat index lonunique latunique lonuniqueChina latuniqueChina
%%%%%%%%%%%%%%%%%%%%%%%%%%% dropped item yellow %%%%%%%%%%%%%%%%%%%%%%%%%
n=0;
for i=1:length(time);
if strcmp(lat{i},'None')==0
% Pearl River Delta
if str2num(lat{i})>21.5&str2num(lat{i})<23.5&str2num(lon{i})>112&str2num(lon{i})<115
if strcmp(event{i},'dropped item')==1
n=n+1;
londata(n)=str2num(lon{i});
latdata(n)=str2num(lat{i});
end
end
end
end
[clon,ialon,iblon]=unique(londata,'stable');
[clat,ialat,iblat]=unique(latdata,'stable');
index=union(ialat,ialon);
lonunique=londata(index);latunique=latdata(index); % duplicate checking
% coordinates transform
[latuniqueChina,lonuniqueChina]=wgs2gcj(latunique,lonunique);
plot(lonuniqueChina, latuniqueChina, '.y','MarkerSize',1.5) ;
clear londata latdata clon ialon iblon clat ialat iblat index lonunique latunique lonuniqueChina latuniqueChina
% add background of google map
plot_google_map('maptype', 'roadmap');
zoomHandle = zoom;
set(zoomHandle, 'ActionPostCallback', @update_google_map);
legend('Only UPV','Fired weapon','Login','UPC','Dropped item');
% export_fig f:\test_v1 -png -r300 -q111 -transparent