Нашел интересную библиотеку
https://github.com/sinky/php-location-tracking-icloud по извлечению местоположений из iCloud(Aplle)
Принцип работы
В поле deviceID таблицы gpsdevices заносятся данные типа
[icloud_username]:[icloud_password]:[Id прибора в списке icloud, начиная с 0]
Из этой таблицы выбираются данные о приборах Apple(я в поле Title внес Apple
далее несколько модифицировал код gps.php
1.Выборка по всем приборам apple
2. Запрос к iCloud осуществляется со стороны MJ
3. Добавил в cron.
В gps.php есть следующий код
Код: Выделить всё
if ($device[$iD]['USER_ID']) {
$user=SQLSelectOne("SELECT * FROM users WHERE ID='".$device[$iD]['USER_ID']."'");
if ($user['LINKED_OBJECT']) {
setGlobal($user['LINKED_OBJECT'].'.Coordinates', $rec['LAT'].','.$rec['LON']);
setGlobal($user['LINKED_OBJECT'].'.CoordinatesUpdated', date('H:i'));
setGlobal($user['LINKED_OBJECT'].'.CoordinatesUpdatedTimestamp', time());
setGlobal($user['LINKED_OBJECT'].'.BattLevel', $rec['BATTLEVEL']);
setGlobal($user['LINKED_OBJECT'].'.Charging', $rec['CHARGING']);
$prev_log=SQLSelectOne("SELECT * FROM gpslog WHERE ID!='".$rec['ID']."' AND DEVICE_ID='".$device[$iD]['ID']."' ORDER BY ID DESC LIMIT 1");
if ($prev_log['ID']) {
$distance=calculateTheDistance ($rec['LAT'], $rec['LON'], $prev_log['LAT'], $prev_log['LON']);
if ($distance>100) {
//we're moving
//DebMes("Distance: ".$distance. " (point A: ".$rec['LAT'].":".$rec['LON']." point B: ".$prev_log['LAT'].":".$prev_log['LON'].")");
setGlobal($user['LINKED_OBJECT'].'.isMoving', 1);
clearTimeOut($user['LINKED_OBJECT'].'_moving');
setTimeOut($user['LINKED_OBJECT'].'_moving', "setGlobal('".$user['LINKED_OBJECT'].".isMoving', 0);", 15*60); // stopped after 15 minutes of inactivity
}
}
}
}
2. Хотелось бы добавить список типов приборов (Apple,Andoroid, WinMobile) при внесении информации о приборах
3. Как бы бы этот скрипт запускать через cycle.php c определенной периодичностью.
Спасибо