This repository has been archived on 2025-07-13. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
open-heraklion-bus/modules/libher/libstops.php
2016-02-21 14:31:47 +02:00

64 lines
1.5 KiB
PHP

<?php
function StopLoc($stp){
$dom = new DOMDocument();
@$dom->loadHtml(DownloadStopInfo($stp));
$xpath = new DomXPath($dom);
$loc = $xpath->query('//div[@class="loc"]')[0]->nodeValue;
$loc = explode(',',$loc);
return $loc;
}
function ExtractStopIDs(){
global $routes;
$genStops = array();
foreach ($routes as $route){
foreach ($route['stops'] as $dir){
foreach ($dir as $stp){
array_push($genStops,$stp);
}
}
}
return uniqueStops($genStops);
}
function GetStops(){
$GenStops = array();
$GenStops_keys = array('id', 'name', 'lat', 'lon');
foreach (ExtractStopIDs() as $stp){
$GenStops_values = array();
$loc = StopLoc($stp);
$GenStops_values = array($stp, DownloadStopName($stp), $loc[0], $loc[1]);
array_push($GenStops, array_combine($GenStops_keys, $GenStops_values));
}
usort($GenStops, function($a,$b){
return strcmp($a['name'], $b['name']);
});
return $GenStops;
}
function uniqueStops($list){
$unique = array();
foreach ($list as $stop){
if (foundStop($unique,$stop) == false){
array_push($unique, $stop);
}
}
sort($unique);
return $unique;
}
function foundStop($haystack,$needle){
foreach ($haystack as $l){
if ($l == $needle){
return true;
}
}
return false;
}
?>