Improved www.ttss.krakow.pl
Jacek Kowalski
2017-04-13 547b8d3da48a42f520d7aeeb7cc8591f0026ca24
Simplify stops download using stopinfo/stops API method
1 files modified
30 ■■■■ changed files
stops/download_stops.php 30 ●●●● patch | view | raw | blame | history
stops/download_stops.php
@@ -1,32 +1,10 @@
<?php
if(php_sapi_name() !== 'cli') die();
$chars = 'aąbcćdeęfghijklłmnńoóprsśtuvwxyzżź0123456789';
$len = mb_strlen($chars, 'UTF-8');
$replacements = [
    '&Oacute;' => 'Ó',
    '&oacute;' => 'ó',
    '&Eacute;' => 'É',
    '&eacute;' => 'é',
];
$stops = [];
for($i = 0; $i < $len; $i++) {
    for($j = 0; $j < $len; $j++) {
        $char = mb_substr($chars, $i, 1, 'UTF-8').mb_substr($chars, $j, 1, 'UTF-8');
        $json = file_get_contents('http://www.ttss.krakow.pl/internetservice/services/lookup/autocomplete/json?query='.urlencode($char));
        $elements = json_decode($json, 1);
        foreach($elements as $element) {
            if($element['type'] == 'divider') continue;
            if($element['type'] == 'route') continue;
            if($element['type'] != 'stop') {
                throw new Exception('Unknown element: '.var_export($element, 1));
            }
            $stops[$element['id']] = strtr($element['name'], $replacements);
        }
    }
$json = file_get_contents('http://www.ttss.krakow.pl/internetservice/geoserviceDispatcher/services/stopinfo/stops?left=-648000000&bottom=-324000000&right=648000000&top=324000000');
$elements = json_decode($json, 1);
foreach($elements['stops'] as $element) {
    $stops[$element['shortName']] = $element['name'];
}
asort($stops);