diff options
-rw-r--r-- | lib/Travel/Status/DE/IRIS/Stations.pm | 240 |
1 files changed, 124 insertions, 116 deletions
diff --git a/lib/Travel/Status/DE/IRIS/Stations.pm b/lib/Travel/Status/DE/IRIS/Stations.pm index 54245ca..86719cb 100644 --- a/lib/Travel/Status/DE/IRIS/Stations.pm +++ b/lib/Travel/Status/DE/IRIS/Stations.pm @@ -1375,94 +1375,95 @@ my @stations = ( 'EDKK', 'Dortmund Knappschaftskrankenhaus', 8001517, 7.537458, 51.518768 ], - [ 'EDMB', 'Dortmund Möllerbrücke', 8001518, 7.452197, 51.507118 ], - [ 'EDWH', 'Dortmund Signal Iduna Park', 8001522, 7.457327, 51.490743 ], - [ 'EDST', 'Dortmund Stadthaus', 8001520, 7.468764, 51.507828 ], - [ 'EDTP', 'Dortmund Tierpark', 8001521, 7.462102, 51.478014 ], - [ 'EDUV', 'Dortmund Universität', 8004419, 7.41764, 51.492604 ], - [ 'EDW', 'Dortmund West', 8003946, 7.438938, 51.509652 ], - [ 'EDAP', 'Dortmund-Aplerbeck', 8001523, 7.551286, 51.490173 ], - [ 'EDAU', 'Dortmund-Aplerbeck Süd', 8001524, 7.549674, 51.484604 ], - [ 'EDAM', 'Dortmund-Asseln Mitte', 8001526, 7.583839, 51.526219 ], - [ 'EDBA', 'Dortmund-Barop', 8001527, 7.431322, 51.477108 ], - [ 'EDBH', 'Dortmund-Bövinghausen', 8001528, 7.327409, 51.519314 ], - [ 'EDBK', 'Dortmund-Brackel', 8001529, 7.550052, 51.520802 ], - [ 'EDD', 'Dortmund-Derne', 8001530, 7.528553, 51.567542 ], - [ 'EDDP', 'Dortmund-Dorstfeld', 8000081, 7.424864, 51.509376 ], - [ 'EDDS', 'Dortmund-Dorstfeld Süd', 8004230, 7.420017, 51.500632 ], - [ 'EDGM', 'Dortmund-Germania', 8001540, 7.363434, 51.497868 ], - [ 'EDH', 'Dortmund-Hörde', 8000961, 7.499229, 51.488015 ], - [ 'EDOH', 'Dortmund-Huckarde', 8001505, 7.402353, 51.532623 ], - [ 'EDHU', 'Dortmund-Huckarde Nord', 8001532, 7.415165, 51.533721 ], - [ 'EDKD', 'Dortmund-Kirchderne', 8001533, 7.510105, 51.547075 ], - [ 'EDKH', 'Dortmund-Kirchhörde', 8001534, 7.457849, 51.464305 ], - [ 'EDK', 'Dortmund-Kley', 8004269, 7.365373, 51.489503 ], - [ 'EDKO', 'Dortmund-Körne', 8001535, 7.514958, 51.513245 ], - [ 'EDWK', 'Dortmund-Körne West', 8003916, 7.502409, 51.509939 ], - [ 'EDKR', 'Dortmund-Kruckel', 8001536, 7.41516, 51.458201 ], - [ 'EDKU', 'Dortmund-Kurl', 8001537, 7.585291, 51.556979 ], - [ 'EDLH', 'Dortmund-Löttringhausen', 8001538, 7.447077, 51.451887 ], - [ 'EDLS', 'Dortmund-Lütgendortmund', 8001516, 7.333968, 51.500544 ], - [ 'EDLN', 'Dortmund-Lütgendortmund Nord', 8001539, 7.342401, 51.508523 ], - [ 'EDMR', 'Dortmund-Marten', 8001541, 7.37425, 51.514459 ], - [ 'EDMS', 'Dortmund-Marten Süd', 8001542, 7.38757, 51.507859 ], - [ 'EDMG', 'Dortmund-Mengede', 8001543, 7.374374, 51.570345 ], - [ 'EDOO', 'Dortmund-Nette/Oestrich', 8001519, 7.377731, 51.561495 ], - [ 'EDOP', 'Dortmund-Oespel', 8004288, 7.383854, 51.488407 ], - [ 'EDRA', 'Dortmund-Rahm', 8001544, 7.395364, 51.52581 ], - [ 'EDSH', 'Dortmund-Scharnhorst', 8001515, 7.536519, 51.538427 ], - [ 'EDSO', 'Dortmund-Sölde', 8001545, 7.588494, 51.495146 ], - [ 'EDSM', 'Dortmund-Somborn', 8001549, 7.349832, 51.495791 ], - [ 'EDOF', 'Dortmund-Westerfilde', 8001525, 7.380213, 51.548334 ], - [ 'EDWI', 'Dortmund-Wickede', 8001546, 7.62466, 51.53393 ], - [ 'EDWW', 'Dortmund-Wickede West', 8003936, 7.607215, 51.529455 ], - [ 'EDOL', 'Dortmund-Wischlingen', 8001531, 7.412711, 51.519108 ], - [ 'ADO', 'Dorum(Weserm)', 8001547, 8.575801, 53.688743 ], - [ 'HDVD', 'Dörverden', 8001489, 9.246334, 52.846407 ], - [ 'WDOW', 'Dossow(Prign)', 8011408, 12.520886, 53.121209 ], - [ 'NDM', 'Dottenheim', 8001548, 10.522573, 49.547496 ], - [ 'TDOD', 'Dotternhausen-Dormettingen', 8029358, 8.781119, 48.228455 ], - [ 'BDF', 'Drahnsdorf', 8011409, 13.58125, 51.915391 ], - [ 'LDRG', 'Drahtzug', 8017005, 11.124636, 51.663447 ], - [ 'BDR', 'Drebkau', 8011414, 14.22313, 51.655084 ], - [ 'LDAH', 'Drei Annen Hohne', 8017006, 10.726766, 51.770116 ], - [ 'FBUS', 'Dreieich-Buchschlag', 8001236, 8.661204, 50.022113 ], # fixed DS100 - [ 'FDCH', 'Dreieich-Dreieichenhain', 8001554, 8.708693, 49.998468 ], - [ 'FGOZ', 'Dreieich-Götzenhain', 8002315, 8.731266, 49.994502 ], - [ 'FOFF', 'Dreieich-Offenthal', 8004653, 8.74964, 49.981851 ], - [ 'FSPO', 'Dreieich-Sprendlingen', 8005636, 8.68874, 50.015201 ], - [ 'FWED', 'Dreieich-Weibelfeld', 8079151, 8.700922, 50.007084 ], - [ 'FOHS', 'Dreikirchen', 8004538, 7.958384, 50.449865 ], - [ 'LDD', 'Dreileben-Drackenstedt', 8011415, 11.341559, 52.143852 ], - [ 'EDRS', 'Drensteinfurt', 8001558, 7.733609, 51.799158 ], - [ 'DBPL', 'Dresden Bischofsplatz', 8011416, 13.746003, 51.072597 ], - [ 'DKTF', 'Dresden Flughafen', 8011399, 13.765993, 51.124665 ], - [ 'DHFR', 'Dresden Freiberger Straße', 8011431, 13.71959, 51.047977 ], - [ 'DGRS', 'Dresden Grenzstraße', 8011417, 13.777737, 51.128298 ], - [ 'DH', 'Dresden Hbf', 8010085, 13.732035, 51.040563 ], - [ 'DIG', 'Dresden Industriegelände', 8011418, 13.762772, 51.087456 ], - [ 'DM', 'Dresden Mitte', 8013444, 13.724109, 51.056168 ], - [ 'DCT', 'Dresden-Cotta', 8011419, 13.683298, 51.062157 ], - [ 'DD', 'Dresden-Dobritz', 8011420, 13.808477, 51.011614 ], - [ 'DF', 'Dresden-Friedrichstadt', 8013475, 13.708151, 51.056034 ], - [ 'DKE', 'Dresden-Kemnitz', 8011421, 13.668919, 51.073084 ], - [ 'DKT', 'Dresden-Klotzsche', 8010088, 13.78911, 51.114667 ], - [ 'DN', 'Dresden-Neustadt', 8010089, 13.740701, 51.065899 ], - [ 'DNSH', 'Dresden-Niedersedlitz', 8011422, 13.828399, 50.999654 ], - [ 'DPS', 'Dresden-Pieschen', 8011423, 13.725527, 51.081859 ], - [ 'DPL', 'Dresden-Plauen', 8013476, 13.703559, 51.030083 ], - [ 'DRK', 'Dresden-Reick', 8011424, 13.790514, 51.021317 ], - [ 'DSTT', 'Dresden-Stetzsch', 8011425, 13.650869, 51.080848 ], - [ 'DSTH', 'Dresden-Strehlen', 8011426, 13.761861, 51.030677 ], - [ 'DTR', 'Dresden-Trachau', 8011427, 13.705948, 51.089306 ], - [ 'DZSW', 'Dresden-Zschachwitz', 8011428, 13.84493, 50.989652 ], - [ 'HDRY', 'Dreye', 8001561, 8.871103, 53.018425 ], - [ 'LDM', 'Drohndorf-Mehringen', 8011433, 11.515648, 51.721692 ], - [ 'WDU', 'Ducherow', 8011438, 13.796021, 53.766135 ], - [ 'KDUK', 'Duckterath', 8001566, 7.103496, 50.984815 ], - [ 'SDUW', 'Dudweiler', 8001570, 7.027351, 49.277299 ], - [ 'KDUL', 'Dülken', 8001571, 6.33793, 51.257149 ], - [ 'EDULH', 'Dülmen', 8000083, 7.295765, 51.827676 ], + [ 'EDMB', 'Dortmund Möllerbrücke', 8001518, 7.452197, 51.507118 ], + [ 'EDWH', 'Dortmund Signal Iduna Park', 8001522, 7.457327, 51.490743 ], + [ 'EDST', 'Dortmund Stadthaus', 8001520, 7.468764, 51.507828 ], + [ 'EDTP', 'Dortmund Tierpark', 8001521, 7.462102, 51.478014 ], + [ 'EDUV', 'Dortmund Universität', 8004419, 7.41764, 51.492604 ], + [ 'EDW', 'Dortmund West', 8003946, 7.438938, 51.509652 ], + [ 'EDAP', 'Dortmund-Aplerbeck', 8001523, 7.551286, 51.490173 ], + [ 'EDAU', 'Dortmund-Aplerbeck Süd', 8001524, 7.549674, 51.484604 ], + [ 'EDAM', 'Dortmund-Asseln Mitte', 8001526, 7.583839, 51.526219 ], + [ 'EDBA', 'Dortmund-Barop', 8001527, 7.431322, 51.477108 ], + [ 'EDBH', 'Dortmund-Bövinghausen', 8001528, 7.327409, 51.519314 ], + [ 'EDBK', 'Dortmund-Brackel', 8001529, 7.550052, 51.520802 ], + [ 'EDD', 'Dortmund-Derne', 8001530, 7.528553, 51.567542 ], + [ 'EDDP', 'Dortmund-Dorstfeld', 8000081, 7.424864, 51.509376 ], + [ 'EDDS', 'Dortmund-Dorstfeld Süd', 8004230, 7.420017, 51.500632 ], + [ 'EDGM', 'Dortmund-Germania', 8001540, 7.363434, 51.497868 ], + [ 'EDH', 'Dortmund-Hörde', 8000961, 7.499229, 51.488015 ], + [ 'EDOH', 'Dortmund-Huckarde', 8001505, 7.402353, 51.532623 ], + [ 'EDHU', 'Dortmund-Huckarde Nord', 8001532, 7.415165, 51.533721 ], + [ 'EDKD', 'Dortmund-Kirchderne', 8001533, 7.510105, 51.547075 ], + [ 'EDKH', 'Dortmund-Kirchhörde', 8001534, 7.457849, 51.464305 ], + [ 'EDK', 'Dortmund-Kley', 8004269, 7.365373, 51.489503 ], + [ 'EDKO', 'Dortmund-Körne', 8001535, 7.514958, 51.513245 ], + [ 'EDWK', 'Dortmund-Körne West', 8003916, 7.502409, 51.509939 ], + [ 'EDKR', 'Dortmund-Kruckel', 8001536, 7.41516, 51.458201 ], + [ 'EDKU', 'Dortmund-Kurl', 8001537, 7.585291, 51.556979 ], + [ 'EDLH', 'Dortmund-Löttringhausen', 8001538, 7.447077, 51.451887 ], + [ 'EDLS', 'Dortmund-Lütgendortmund', 8001516, 7.333968, 51.500544 ], + [ 'EDLN', 'Dortmund-Lütgendortmund Nord', 8001539, 7.342401, 51.508523 ], + [ 'EDMR', 'Dortmund-Marten', 8001541, 7.37425, 51.514459 ], + [ 'EDMS', 'Dortmund-Marten Süd', 8001542, 7.38757, 51.507859 ], + [ 'EDMG', 'Dortmund-Mengede', 8001543, 7.374374, 51.570345 ], + [ 'EDOO', 'Dortmund-Nette/Oestrich', 8001519, 7.377731, 51.561495 ], + [ 'EDOP', 'Dortmund-Oespel', 8004288, 7.383854, 51.488407 ], + [ 'EDRA', 'Dortmund-Rahm', 8001544, 7.395364, 51.52581 ], + [ 'EDSH', 'Dortmund-Scharnhorst', 8001515, 7.536519, 51.538427 ], + [ 'EDSO', 'Dortmund-Sölde', 8001545, 7.588494, 51.495146 ], + [ 'EDSM', 'Dortmund-Somborn', 8001549, 7.349832, 51.495791 ], + [ 'EDOF', 'Dortmund-Westerfilde', 8001525, 7.380213, 51.548334 ], + [ 'EDWI', 'Dortmund-Wickede', 8001546, 7.62466, 51.53393 ], + [ 'EDWW', 'Dortmund-Wickede West', 8003936, 7.607215, 51.529455 ], + [ 'EDOL', 'Dortmund-Wischlingen', 8001531, 7.412711, 51.519108 ], + [ 'ADO', 'Dorum(Weserm)', 8001547, 8.575801, 53.688743 ], + [ 'HDVD', 'Dörverden', 8001489, 9.246334, 52.846407 ], + [ 'WDOW', 'Dossow(Prign)', 8011408, 12.520886, 53.121209 ], + [ 'NDM', 'Dottenheim', 8001548, 10.522573, 49.547496 ], + [ 'TDOD', 'Dotternhausen-Dormettingen', 8029358, 8.781119, 48.228455 ], + [ 'BDF', 'Drahnsdorf', 8011409, 13.58125, 51.915391 ], + [ 'LDRG', 'Drahtzug', 8017005, 11.124636, 51.663447 ], + [ 'BDR', 'Drebkau', 8011414, 14.22313, 51.655084 ], + [ 'LDAH', 'Drei Annen Hohne', 8017006, 10.726766, 51.770116 ], + [ 'FBUS', 'Dreieich-Buchschlag', 8001236, 8.661204, 50.022113 ] + , # fixed DS100 + [ 'FDCH', 'Dreieich-Dreieichenhain', 8001554, 8.708693, 49.998468 ], + [ 'FGOZ', 'Dreieich-Götzenhain', 8002315, 8.731266, 49.994502 ], + [ 'FOFF', 'Dreieich-Offenthal', 8004653, 8.74964, 49.981851 ], + [ 'FSPO', 'Dreieich-Sprendlingen', 8005636, 8.68874, 50.015201 ], + [ 'FWED', 'Dreieich-Weibelfeld', 8079151, 8.700922, 50.007084 ], + [ 'FOHS', 'Dreikirchen', 8004538, 7.958384, 50.449865 ], + [ 'LDD', 'Dreileben-Drackenstedt', 8011415, 11.341559, 52.143852 ], + [ 'EDRS', 'Drensteinfurt', 8001558, 7.733609, 51.799158 ], + [ 'DBPL', 'Dresden Bischofsplatz', 8011416, 13.746003, 51.072597 ], + [ 'DKTF', 'Dresden Flughafen', 8011399, 13.765993, 51.124665 ], + [ 'DHFR', 'Dresden Freiberger Straße', 8011431, 13.71959, 51.047977 ], + [ 'DGRS', 'Dresden Grenzstraße', 8011417, 13.777737, 51.128298 ], + [ 'DH', 'Dresden Hbf', 8010085, 13.732035, 51.040563 ], + [ 'DIG', 'Dresden Industriegelände', 8011418, 13.762772, 51.087456 ], + [ 'DM', 'Dresden Mitte', 8013444, 13.724109, 51.056168 ], + [ 'DCT', 'Dresden-Cotta', 8011419, 13.683298, 51.062157 ], + [ 'DD', 'Dresden-Dobritz', 8011420, 13.808477, 51.011614 ], + [ 'DF', 'Dresden-Friedrichstadt', 8013475, 13.708151, 51.056034 ], + [ 'DKE', 'Dresden-Kemnitz', 8011421, 13.668919, 51.073084 ], + [ 'DKT', 'Dresden-Klotzsche', 8010088, 13.78911, 51.114667 ], + [ 'DN', 'Dresden-Neustadt', 8010089, 13.740701, 51.065899 ], + [ 'DNSH', 'Dresden-Niedersedlitz', 8011422, 13.828399, 50.999654 ], + [ 'DPS', 'Dresden-Pieschen', 8011423, 13.725527, 51.081859 ], + [ 'DPL', 'Dresden-Plauen', 8013476, 13.703559, 51.030083 ], + [ 'DRK', 'Dresden-Reick', 8011424, 13.790514, 51.021317 ], + [ 'DSTT', 'Dresden-Stetzsch', 8011425, 13.650869, 51.080848 ], + [ 'DSTH', 'Dresden-Strehlen', 8011426, 13.761861, 51.030677 ], + [ 'DTR', 'Dresden-Trachau', 8011427, 13.705948, 51.089306 ], + [ 'DZSW', 'Dresden-Zschachwitz', 8011428, 13.84493, 50.989652 ], + [ 'HDRY', 'Dreye', 8001561, 8.871103, 53.018425 ], + [ 'LDM', 'Drohndorf-Mehringen', 8011433, 11.515648, 51.721692 ], + [ 'WDU', 'Ducherow', 8011438, 13.796021, 53.766135 ], + [ 'KDUK', 'Duckterath', 8001566, 7.103496, 50.984815 ], + [ 'SDUW', 'Dudweiler', 8001570, 7.027351, 49.277299 ], + [ 'KDUL', 'Dülken', 8001571, 6.33793, 51.257149 ], + [ 'EDULH', 'Dülmen', 8000083, 7.295765, 51.827676 ], [ 'KDN', 'Düren', 8000084, 6.482451, 50.809517 ], # fixed DS100 [ 'KDNS', 'Düren Annakirmesplatz', 8007818, 6.474259, 50.796237 ], [ 'KDNG', 'Düren Im Großen Tal', 8007836, 6.47431, 50.83302 ], @@ -2526,30 +2527,30 @@ my @stations = ( [ 'APB', 'Hamburg-Poppenbüttel', 8004862, 10.094034, 53.652183 ], [ 'ARAL', 'Hamburg-Rahlstedt', 8002558, 10.154396, 53.604857 ], [ 'ARI', 'Hamburg-Rissen', 8005106, 9.757057, 53.583216 ], - [ 'AHROO', 'Hamburg-Rothenburgsort', 8005191, 10.043953, 53.538476 ], - [ 'ASLS', 'Hamburg-Schnelsen', 8007045, 9.906616, 53.634124 ], - [ 'ASTL', 'Hamburg-Stellingen', 8002559, 9.918336, 53.589843 ], - [ 'ASST', 'Hamburg-Sternschanze', 8070146, 9.967204, 53.563719 ], - [ 'ASDF', 'Hamburg-Sülldorf', 8005785, 9.797519, 53.581122 ], - [ 'ATK', 'Hamburg-Tiefstack', 8005870, 10.065591, 53.531225 ], - [ 'AOW', 'Hamburg-Tonndorf', 8006197, 10.12305, 53.586385 ], - [ 'AVLS', 'Hamburg-Veddel', 8006062, 10.013313, 53.521703 ], - [ 'AWN', 'Hamburg-Wandsbek', 8002560, 10.077224, 53.569971 ], - [ 'AWBS', 'Hamburg-Wellingsbüttel', 8006319, 10.082825, 53.641327 ], - [ 'AWFS', 'Hamburg-Wilhelmsburg', 8002561, 10.007006, 53.498936 ], - [ 'HHAE', 'Hämelerwald', 8002499, 10.110601, 52.354704 ], - [ 'HHM', 'Hameln', 8000148, 9.375906, 52.10185 ], - [ 'LHMT', 'Hämerten', 8011796, 11.97177, 52.599024 ], - [ 'EHM', 'Hamm(Westf)', 8000149, 7.807821, 51.678078 ], - [ 'AHAM', 'Hammah', 8002565, 9.368728, 53.612143 ], - [ 'NHG', 'Hammelburg', 8002567, 9.882966, 50.120041 ], - [ 'NHGO', 'Hammelburg Ost', 8002568, 9.902111, 50.115889 ], - [ 'WHAM', 'Hammelspring', 8011815, 13.435744, 53.070228 ], - [ 'MHAU', 'Hammerau', 8002570, 12.946134, 47.795883 ], - [ 'RHST', 'Hammerstein', 8070419, 7.644148, 47.690295 ], - [ 'DHUW', 'Hammerunterwiesenthal', 8011817, 13.008722, 50.441091 ], - [ 'EHK', 'Hamminkeln', 8002571, 6.601745, 51.735104 ], - [ 'FH', 'Hanau Hbf', 8000150, 8.929, 50.120953 ], # fixed DS100 + [ 'AHROO', 'Hamburg-Rothenburgsort', 8005191, 10.043953, 53.538476 ], + [ 'ASLS', 'Hamburg-Schnelsen', 8007045, 9.906616, 53.634124 ], + [ 'ASTL', 'Hamburg-Stellingen', 8002559, 9.918336, 53.589843 ], + [ 'ASST', 'Hamburg-Sternschanze', 8070146, 9.967204, 53.563719 ], + [ 'ASDF', 'Hamburg-Sülldorf', 8005785, 9.797519, 53.581122 ], + [ 'ATK', 'Hamburg-Tiefstack', 8005870, 10.065591, 53.531225 ], + [ 'AOW', 'Hamburg-Tonndorf', 8006197, 10.12305, 53.586385 ], + [ 'AVLS', 'Hamburg-Veddel', 8006062, 10.013313, 53.521703 ], + [ 'AWN', 'Hamburg-Wandsbek', 8002560, 10.077224, 53.569971 ], + [ 'AWBS', 'Hamburg-Wellingsbüttel', 8006319, 10.082825, 53.641327 ], + [ 'AWFS', 'Hamburg-Wilhelmsburg', 8002561, 10.007006, 53.498936 ], + [ 'HHAE', 'Hämelerwald', 8002499, 10.110601, 52.354704 ], + [ 'HHM', 'Hameln', 8000148, 9.375906, 52.10185 ], + [ 'LHMT', 'Hämerten', 8011796, 11.97177, 52.599024 ], + [ 'EHM', 'Hamm(Westf)', 8000149, 7.807821, 51.678078 ], + [ 'AHAM', 'Hammah', 8002565, 9.368728, 53.612143 ], + [ 'NHG', 'Hammelburg', 8002567, 9.882966, 50.120041 ], + [ 'NHGO', 'Hammelburg Ost', 8002568, 9.902111, 50.115889 ], + [ 'WHAM', 'Hammelspring', 8011815, 13.435744, 53.070228 ], + [ 'MHAU', 'Hammerau', 8002570, 12.946134, 47.795883 ], + [ 'RHST', 'Hammerstein', 8070419, 7.644148, 47.690295 ], + [ 'DHUW', 'Hammerunterwiesenthal', 8011817, 13.008722, 50.441091 ], + [ 'EHK', 'Hamminkeln', 8002571, 6.601745, 51.735104 ], + [ 'FH', 'Hanau Hbf', 8000150, 8.929, 50.120953 ], # fixed DS100 [ 'FKAH', 'Hanau Klein-Auheim', 8003311, 8.934288, 50.100734 ], [ 'FHN', 'Hanau Nord', 8002572, 8.925848, 50.141433 ], [ 'FHW', 'Hanau West', 8002573, 8.908818, 50.131949 ], @@ -8493,7 +8494,7 @@ sub get_station { } sub get_stations_by_location { - my ($lon, $lat, $num_matches) = @_; + my ( $lon, $lat, $num_matches ) = @_; $num_matches //= 10; @@ -8502,12 +8503,19 @@ sub get_stations_by_location { # we only use geolocations inside germany. # For these, this fast preprocessing step will let through all # coordinates inside a 60km radius (and a bunch which are farther out) - my @candidates = grep { $#{$_} >= 4 and abs($_->[3] - $lon) < 1 and abs($_->[4] - $lat) < 1 } @stations; - my @distances = map { $geo->distance('kilometer', $lon, $lat, $_->[3], $_->[4]) } @candidates; + my @candidates = grep { + $#{$_} >= 4 + and abs( $_->[3] - $lon ) < 1 + and abs( $_->[4] - $lat ) + < 1 + } @stations; + my @distances + = map { $geo->distance( 'kilometer', $lon, $lat, $_->[3], $_->[4] ) } + @candidates; my @station_map = pairwise { [ $a, $b ] } @candidates, @distances; @station_map = sort { $a->[1] <=> $b->[1] } @station_map; - splice(@station_map, 10); + splice( @station_map, 10 ); return @station_map; } |