-
Notifications
You must be signed in to change notification settings - Fork 3
/
Position2GoogelMaps.php
81 lines (59 loc) · 2.16 KB
/
Position2GoogelMaps.php
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
<?php
declare(strict_types=1);
// Beispiel zur Datestellung der GPS-Ќoordinaten mit Hilfe von GooleMaps (siehe https://github.com/demel42/IPSymconGoogleMaps.git)
// in dem Script verwendete Objekt-ID's durch die eigenen ID's ersetzen
// allgemeine Angaben zur Karte
$map = [];
$map['zoom'] = 20;
$map['size'] = '640x640';
$map['scale'] = 1;
$map['maptype'] = 'satellite';
$map['restrict_points'] = false; // Anzahl der Punkte beschränken auf die zulässige Größe der URL
$map['skip_points'] = 1; // nur jeden x'ten Punkt ausgeben, GoogleMap interpoliert
// aktuelle Position
$markers = [];
$marker_points = [];
$point = [
'lat' => GetValueFloat(17701 /*[Rasenmäher\Automower\letzter Breitengrad]*/),
'lng' => GetValueFloat(40825 /*[Rasenmäher\Automower\letzter Längengrad]*/),
];
$marker_points[0] = $point;
$activity_label = ['E', 'D', 'G', 'L', 'P', 'F', 'R', 'M', 'S'];
$activity = GetValueInteger(30160 /*[Rasenmäher\Automower\Aktivität]*/) - 2;
if ($activity < 0 || $activity >= count($activity_label)) {
$activity = 0;
}
$label = $activity_label[$activity];
$markers[] = [
'color' => 'green',
'label' => $label,
'points' => $marker_points,
];
$map['markers'] = $markers;
// Fahrten der letzten 3 Tage
$paths = [];
$paths_color = ['0xFF4040', '0x7B68EE', '0x00FF00'];
$dt = new DateTime(date('d.m.Y 00:00:00', time()));
$now = (int) $dt->format('U');
for ($i = 2; $i >= 0; $i--) {
$from = $now - ($i * 24 * 60 * 60);
$until = $from + (24 * 60 * 60) - 1;
$values = AC_GetLoggedValues(17849 /*[Archive]*/, 54501 /*[Rasenmäher\Automower\Position]*/, $from, $until, 0);
$points = [];
foreach ($values as $value) {
$pos = json_decode($value['Value'], true);
$points[] = [
'lat' => $pos['latitude'],
'lng' => $pos['longitude'],
];
}
$paths[] = [
'color' => $paths_color[$i],
'weight' => 2,
'points' => $points,
];
}
$map['paths'] = $paths;
$url = GoogleMaps_GenerateStaticMap(44269 /*[GoogleMaps]*/, json_encode($map));
$html = '<img width="500", height="500" src="' . $url . '" />';
SetValueString(12495 /*[GoogleMaps\Karte (static/day)]*/, $html);