MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / export_kml

Method export_kml

wardriving.py:1063–1148  ·  view source on GitHub ↗

Export session to KML format for Google Earth.

(self)

Source from the content-addressed store, hash-verified

1061 v2 = after['speed_kmh']
1062 if v1 is not None and v2 is not None and (v1 + v2) > 0:
1063 f = (2 * v1 * f_time + (v2 - v1) * f_time * f_time) / (v1 + v2)
1064 f = max(0.0, min(1.0, f))
1065 else:
1066 f = f_time
1067 lat = before['latitude'] + (after['latitude'] - before['latitude']) * f
1068 lon = before['longitude'] + (after['longitude'] - before['longitude']) * f
1069 alt = None
1070 if before['altitude'] is not None and after['altitude'] is not None:
1071 alt = before['altitude'] + (after['altitude'] - before['altitude']) * f
1072 return (lat, lon, alt)
1073 cand = before if (before and (epoch - before['timestamp']) <= max_gap_seconds) else None
1074 if cand is None and after and (after['timestamp'] - epoch) <= max_gap_seconds:
1075 cand = after
1076 if cand:
1077 return (cand['latitude'], cand['longitude'], cand['altitude'])
1078 return None
1079
1080 rows = conn.execute(
1081 "SELECT bssid, first_seen FROM networks "
1082 "WHERE best_lat IS NULL OR best_lon IS NULL"
1083 ).fetchall()
1084 for r in rows:
1085 pos = _pos_at(_parse_iso(r['first_seen']))
1086 if pos:
1087 conn.execute(
1088 "UPDATE networks SET "
1089 "latitude = COALESCE(latitude, ?), "
1090 "longitude = COALESCE(longitude, ?), "
1091 "altitude = COALESCE(altitude, ?), "
1092 "best_lat = ?, best_lon = ?, "
1093 "gps_backfilled = 1 WHERE bssid = ?",
1094 (pos[0], pos[1], pos[2], pos[0], pos[1], r['bssid'])
1095 )
1096 result['wifi'] += 1
1097
1098 try:
1099 rows = conn.execute(
1100 "SELECT mac, first_seen FROM bluetooth_devices "
1101 "WHERE latitude IS NULL OR longitude IS NULL"
1102 ).fetchall()
1103 for r in rows:
1104 pos = _pos_at(_parse_iso(r['first_seen']))
1105 if pos:
1106 conn.execute(
1107 "UPDATE bluetooth_devices SET "
1108 "latitude = ?, longitude = ?, "
1109 "altitude = COALESCE(altitude, ?), "
1110 "best_lat = COALESCE(best_lat, ?), "
1111 "best_lon = COALESCE(best_lon, ?), "
1112 "gps_backfilled = 1 WHERE mac = ?",
1113 (pos[0], pos[1], pos[2], pos[0], pos[1], r['mac'])
1114 )
1115 result['bluetooth'] += 1
1116 except sqlite3.OperationalError:
1117 pass
1118
1119 try:
1120 rows = conn.execute(

Callers 1

wardriving_exportFunction · 0.95

Calls 7

appendMethod · 0.80
errorMethod · 0.80
extendMethod · 0.80
connectMethod · 0.45
fetchallMethod · 0.45
executeMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected