From bd4651a77dc3b0e8bce98c37c7db7adb6005f862 Mon Sep 17 00:00:00 2001 From: Bertware Date: Sun, 25 Sep 2022 11:37:01 +0200 Subject: [PATCH 1/8] Use lead instead of title for disturbance texts --- .../be/hyperrail/android/viewgroup/RouteListItemLayout.java | 5 ----- .../hyperrail/opentransportdata/be/irail/IrailApiParser.java | 4 ++-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/Hyperrail/src/main/java/be/hyperrail/android/viewgroup/RouteListItemLayout.java b/Hyperrail/src/main/java/be/hyperrail/android/viewgroup/RouteListItemLayout.java index 842155ff..104e56d8 100644 --- a/Hyperrail/src/main/java/be/hyperrail/android/viewgroup/RouteListItemLayout.java +++ b/Hyperrail/src/main/java/be/hyperrail/android/viewgroup/RouteListItemLayout.java @@ -82,11 +82,6 @@ public RouteListItemLayout(Context context, @Nullable AttributeSet attrs, int de super(context, attrs, defStyleAttr); } - // TODO: use when API > 21 - /*public RouteListItemLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - }*/ - @Override protected void onFinishInflate() { super.onFinishInflate(); diff --git a/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/IrailApiParser.java b/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/IrailApiParser.java index 37669523..13f9fe74 100644 --- a/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/IrailApiParser.java +++ b/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/IrailApiParser.java @@ -306,13 +306,13 @@ private Message[] parseRouteAlerts(JSONObject routeObject) throws JSONException private Message parseMessage(JSONObject json) { try { - String header = json.getString("header"); + String lead = json.getString("lead"); String description = json.getString("description"); String link = ""; if (json.has("link")) { link = json.getString("link"); } - return new MessageImpl(header, description, link); + return new MessageImpl(lead, description, link); } catch (JSONException e) { log.severe("Failed to parse json message"); } From a1bb4917e4b12cf194aad3bb4246589ff4053904 Mon Sep 17 00:00:00 2001 From: Bertware Date: Sun, 25 Sep 2022 11:43:09 +0200 Subject: [PATCH 2/8] Fix indentation in settings menu --- Hyperrail/src/main/res/xml/pref_general.xml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Hyperrail/src/main/res/xml/pref_general.xml b/Hyperrail/src/main/res/xml/pref_general.xml index 8a9840db..145552f9 100644 --- a/Hyperrail/src/main/res/xml/pref_general.xml +++ b/Hyperrail/src/main/res/xml/pref_general.xml @@ -181,18 +181,17 @@ android:title="@string/pref_header_links" app:iconSpaceReserved="false"> - + + android:data="https://www.github.com/hyperrail/hyperrail-for-android/"/> - + + /> From c84bf74387cc2cf8ccb2ea93c37641597abb7656 Mon Sep 17 00:00:00 2001 From: Bertware Date: Sun, 25 Sep 2022 23:14:46 +0200 Subject: [PATCH 3/8] Fix widget not showing data on certain android versions --- Hyperrail/src/main/AndroidManifest.xml | 4 +- ...NextDeparturesRemoteViewsDataProvider.java | 44 +++++---- .../widget/NextDeparturesWidgetProvider.java | 90 ++++++++++++------- .../main/res/layout/widget_nextdepartures.xml | 2 +- .../src/main/res/xml/appwidget_provider.xml | 2 - 5 files changed, 79 insertions(+), 63 deletions(-) diff --git a/Hyperrail/src/main/AndroidManifest.xml b/Hyperrail/src/main/AndroidManifest.xml index 794e10f0..f4b58e93 100644 --- a/Hyperrail/src/main/AndroidManifest.xml +++ b/Hyperrail/src/main/AndroidManifest.xml @@ -31,9 +31,7 @@ + android:exported="true"> diff --git a/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesRemoteViewsDataProvider.java b/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesRemoteViewsDataProvider.java index 23eeb427..88aa60cc 100644 --- a/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesRemoteViewsDataProvider.java +++ b/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesRemoteViewsDataProvider.java @@ -31,14 +31,14 @@ import static android.appwidget.AppWidgetManager.EXTRA_APPWIDGET_ID; class NextDeparturesRemoteViewsDataProvider implements RemoteViewsService.RemoteViewsFactory { - private final Context mContext; - private final Intent mIntent; - private Liveboard mLiveboard; - private boolean mError; + private final Context context; + private final Intent creationIntent; + private Liveboard liveboard; + private boolean errorDuringUpdate = false; public NextDeparturesRemoteViewsDataProvider(Context applicationContext, Intent intent) { - mContext = applicationContext; - mIntent = intent; + context = applicationContext; + creationIntent = intent; } @Override @@ -47,10 +47,10 @@ public void onCreate() { } private void initLiveboard() { - String id = mContext.getSharedPreferences("widgets", 0).getString( - "NextDepartures:" + mIntent.getIntExtra(EXTRA_APPWIDGET_ID, 0), null); + String id = context.getSharedPreferences("widgets", 0).getString( + "NextDepartures:" + creationIntent.getIntExtra(EXTRA_APPWIDGET_ID, 0), null); if (id == null) { - this.mError = true; + this.errorDuringUpdate = true; return; } @@ -63,12 +63,12 @@ private void initLiveboard() { null ); } catch (StopLocationNotResolvedException e) { - this.mError = true; + this.errorDuringUpdate = true; return; } request.setCallback((data, tag) -> { Log.w("widgets", "Received iRail data..."); - NextDeparturesRemoteViewsDataProvider.this.mLiveboard = data; + NextDeparturesRemoteViewsDataProvider.this.liveboard = data; }, null, null); Log.w("widgets", "Requesting iRail data..."); OpenTransportApi.getDataProviderInstance().getLiveboard(request); @@ -92,23 +92,23 @@ public void onDestroy() { @Override public int getCount() { - if (mLiveboard == null) { + if (liveboard == null) { return 0; } - return mLiveboard.getStops().length; + return liveboard.getStops().length; } @Override public RemoteViews getViewAt(int position) { - if (mError) { - return new RemoteViews(mContext.getPackageName(), R.layout.widget_nextdepartures_error); + if (errorDuringUpdate) { + return new RemoteViews(context.getPackageName(), R.layout.widget_nextdepartures_error); } // Construct a remote views item based on the app widget item XML file, // and set the text based on the position. - RemoteViews rv = new RemoteViews(mContext.getPackageName(), R.layout.listview_liveboard_widget); - VehicleStop stop = mLiveboard.getStops()[position]; + RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.listview_liveboard_widget); + VehicleStop stop = liveboard.getStops()[position]; bindTimeAndDelays(rv, stop); @@ -122,7 +122,7 @@ public RemoteViews getViewAt(int position) { rv.setTextViewText(R.id.text_platform, "X"); rv.setTextViewText(R.id.text_train_status, - mContext.getString(R.string.status_cancelled)); + context.getString(R.string.status_cancelled)); rv.setViewVisibility(R.id.layout_train_status_container, View.VISIBLE); rv.setViewVisibility(R.id.container_occupancy, View.GONE); } else { @@ -131,7 +131,7 @@ public RemoteViews getViewAt(int position) { } rv.setBitmap(R.id.container_occupancy, "setImageDrawable", - ((BitmapDrawable) ContextCompat.getDrawable(mContext, + ((BitmapDrawable) ContextCompat.getDrawable(context, OccupancyHelper.getOccupancyDrawable( stop.getOccupancyLevel()) )).getBitmap() @@ -148,7 +148,7 @@ private void bindTimeAndDelays(RemoteViews rv, VehicleStop stop) { rv.setTextViewText(R.id.text_time1, df.print(stop.getDepartureTime())); if (stop.getDepartureDelay().getStandardSeconds() > 0) { rv.setTextViewText(R.id.text_delay1, - mContext.getString(R.string.delay, + context.getString(R.string.delay, stop.getDepartureDelay().getStandardMinutes())); rv.setTextViewText(R.id.text_delay_time, df.print(stop.getDelayedDepartureTime())); } else { @@ -160,7 +160,7 @@ private void bindTimeAndDelays(RemoteViews rv, VehicleStop stop) { rv.setTextViewText(R.id.text_time1, df.print(stop.getArrivalTime())); if (stop.getArrivalDelay().getStandardSeconds() > 0) { rv.setTextViewText(R.id.text_delay1, - mContext.getString(R.string.delay, + context.getString(R.string.delay, stop.getArrivalDelay().getStandardMinutes())); rv.setTextViewText(R.id.text_delay_time, df.print(stop.getDelayedArrivalTime())); } else { @@ -190,6 +190,4 @@ public boolean hasStableIds() { return true; } -//... include adapter-like methods here. See the StackView Widget sample. - } diff --git a/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesWidgetProvider.java b/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesWidgetProvider.java index 9c4a3eaf..46bed65e 100644 --- a/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesWidgetProvider.java +++ b/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesWidgetProvider.java @@ -12,7 +12,8 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; -import android.util.Log; +import android.net.Uri; +import android.os.Bundle; import android.widget.RemoteViews; import be.hyperrail.android.R; @@ -32,79 +33,94 @@ public class NextDeparturesWidgetProvider extends AppWidgetProvider { HyperRailLog log = HyperRailLog.getLogger(NextDeparturesWidgetProvider.class); public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { - prefs = context.getSharedPreferences("widgets", 0); // Perform this loop procedure for each App Widget that belongs to this provider for (int appWidgetId : appWidgetIds) { updateAppWidget(context, appWidgetManager, appWidgetId); } - super.onUpdate(context, appWidgetManager, appWidgetIds); } + private SharedPreferences getSharedPreferences(Context context) { + if (prefs == null) { + prefs = context.getSharedPreferences("widgets", 0); + } + return prefs; + } + private void updateAppWidget(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { - String id = this.prefs.getString("NextDepartures:" + appWidgetId, null); + log.debug("Updating widget " + appWidgetId); + String id = getSharedPreferences(context).getString("NextDepartures:" + appWidgetId, null); if (id == null) { - Log.w("widgets", "No station ID found for NextDepartures widget id: " + appWidgetId); + log.warning("No station ID found for NextDepartures widget id: " + appWidgetId); return; } - StopLocation mStation; + StopLocation station; try { - mStation = OpenTransportApi.getStopLocationProviderInstance().getStoplocationBySemanticId(id); + station = OpenTransportApi.getStopLocationProviderInstance().getStoplocationBySemanticId(id); } catch (StopLocationNotResolvedException searchException) { log.warning("Failed to lookup station URI for widget: " + id); log.logException(searchException); try { - mStation = OpenTransportApi.getStopLocationProviderInstance().getStoplocationByHafasId(id); + station = OpenTransportApi.getStopLocationProviderInstance().getStoplocationByHafasId(id); } catch (StopLocationNotResolvedException fallbackSearchException) { log.warning("Failed to lookup station ID for widget: " + id); log.logException(fallbackSearchException); - mStation = null; + station = null; } } - if (mStation == null) { - RemoteViews views = new RemoteViews(context.getPackageName(), - R.layout.widget_nextdepartures_error); - appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, android.R.id.list); - appWidgetManager.updateAppWidget(appWidgetId, views); + if (station == null) { + setErrorLayout(context, appWidgetManager, appWidgetId); return; } - // Set up the intent that starts the NextDeparturesWidgetService, which will - // provide the views for this collection. - Intent serviceIntent = new Intent(context, NextDeparturesWidgetService.class); - serviceIntent.putExtra(EXTRA_APPWIDGET_ID, appWidgetId); + updateAppWidgetData(context, appWidgetManager, appWidgetId, station); + } - // Create an Intent to launch ExampleActivity + private void updateAppWidgetData(Context context, AppWidgetManager appWidgetManager, + int appWidgetId, StopLocation station) { + // Create an Intent to launch LiveboardActivity Intent onClickIntent = LiveboardActivity.createIntent(context, - new LiveboardRequest(mStation, + new LiveboardRequest(station, QueryTimeDefinition.EQUAL_OR_LATER, LiveboardType.DEPARTURES, null)); - PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, onClickIntent, 0); + int flags; + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { + flags = PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE; + } else { + flags = PendingIntent.FLAG_UPDATE_CURRENT; + } + PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, onClickIntent, flags); // Get the layout for the App Widget and attach an on-click listener // to the button - RemoteViews views = new RemoteViews(context.getPackageName(), + RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget_nextdepartures); - views.setTextViewText(R.id.text_station, mStation.getLocalizedName()); - // Set up the RemoteViews object to use a RemoteViews adapter. - // This adapter connects - // to a RemoteViewsService through the specified intent. - // This is how you populate the data. - views.setRemoteAdapter(android.R.id.list, serviceIntent); - - // The empty view is displayed when the collection has no items. - // It should be in the same layout used to instantiate the RemoteViews - // object above. - views.setEmptyView(android.R.id.list, R.id.placeholder_no_data); + remoteViews.setTextViewText(R.id.text_station, station.getLocalizedName()); - views.setOnClickPendingIntent(R.id.binder, pendingIntent); + // Set up the intent that starts the NextDeparturesWidgetService, which will + // provide the views for this collection. + Intent serviceIntent = new Intent(context, NextDeparturesWidgetService.class); + serviceIntent.putExtra(EXTRA_APPWIDGET_ID, appWidgetId); + serviceIntent.setData(Uri.parse(serviceIntent.toUri(Intent.URI_INTENT_SCHEME))); + // Set up the RemoteViews object to use a RemoteViews adapter. + // This adapter connects to a RemoteViewsService through the specified intent. + remoteViews.setRemoteAdapter(android.R.id.list, serviceIntent); + remoteViews.setEmptyView(android.R.id.list, R.id.placeholder_no_data); + remoteViews.setOnClickPendingIntent(R.id.binder, pendingIntent); // Tell the AppWidgetManager to perform an update on the current app widget appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, android.R.id.list); + appWidgetManager.updateAppWidget(appWidgetId, remoteViews); + } + + private void setErrorLayout(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { + RemoteViews views = new RemoteViews(context.getPackageName(), + R.layout.widget_nextdepartures_error); + appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, android.R.id.list); appWidgetManager.updateAppWidget(appWidgetId, views); } @@ -113,6 +129,12 @@ public void onEnabled(Context context) { // Enter relevant functionality for when the first widget is created } + @Override + public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) { + super.onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions); + updateAppWidget(context, appWidgetManager, appWidgetId); + } + @Override public void onDisabled(Context context) { // Enter relevant functionality for when the last widget is disabled diff --git a/Hyperrail/src/main/res/layout/widget_nextdepartures.xml b/Hyperrail/src/main/res/layout/widget_nextdepartures.xml index aaac4cd7..b60c18cf 100644 --- a/Hyperrail/src/main/res/layout/widget_nextdepartures.xml +++ b/Hyperrail/src/main/res/layout/widget_nextdepartures.xml @@ -30,7 +30,7 @@ /> - Date: Wed, 28 Sep 2022 22:38:04 +0200 Subject: [PATCH 4/8] Make crash reporting opt-in instead of always-on --- Hyperrail/src/main/AndroidManifest.xml | 3 + .../java/be/hyperrail/android/Launcher.java | 22 +++-- .../android/activities/MainActivity.java | 11 ++- .../android/util/CrashlyticsOptInDialog.java | 87 +++++++++++++++++++ ...wDialogProvider.java => ReviewDialog.java} | 7 +- Hyperrail/src/main/res/values-fr/strings.xml | 6 ++ Hyperrail/src/main/res/values-nl/strings.xml | 6 ++ .../res/values-nl/strings_preferences.xml | 2 +- Hyperrail/src/main/res/values/strings.xml | 5 ++ .../main/res/values/strings_preferences.xml | 4 +- Hyperrail/src/main/res/xml/pref_general.xml | 7 ++ 11 files changed, 144 insertions(+), 16 deletions(-) create mode 100644 Hyperrail/src/main/java/be/hyperrail/android/util/CrashlyticsOptInDialog.java rename Hyperrail/src/main/java/be/hyperrail/android/util/{ReviewDialogProvider.java => ReviewDialog.java} (97%) diff --git a/Hyperrail/src/main/AndroidManifest.xml b/Hyperrail/src/main/AndroidManifest.xml index f4b58e93..22991d42 100644 --- a/Hyperrail/src/main/AndroidManifest.xml +++ b/Hyperrail/src/main/AndroidManifest.xml @@ -74,6 +74,9 @@ + = Build.VERSION_CODES.LOLLIPOP) { goToMarket.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | - Intent.FLAG_ACTIVITY_NEW_DOCUMENT | - Intent.FLAG_ACTIVITY_MULTIPLE_TASK); + Intent.FLAG_ACTIVITY_NEW_DOCUMENT | + Intent.FLAG_ACTIVITY_MULTIPLE_TASK); } try { diff --git a/Hyperrail/src/main/java/be/hyperrail/android/util/CrashlyticsOptInDialog.java b/Hyperrail/src/main/java/be/hyperrail/android/util/CrashlyticsOptInDialog.java new file mode 100644 index 00000000..5553085f --- /dev/null +++ b/Hyperrail/src/main/java/be/hyperrail/android/util/CrashlyticsOptInDialog.java @@ -0,0 +1,87 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +package be.hyperrail.android.util; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; + +import org.joda.time.DateTime; + +import be.hyperrail.android.R; +import be.hyperrail.android.logging.HyperRailLog; + +public class CrashlyticsOptInDialog { + + private static final String PREFERENCES_KEY_OPTIN_REPLIED = "crashreporting_optin_replied"; + private static final String PREFERENCES_CRASHLYTICS_ENABLED = "pref_crashlytics_enabled"; + + private static final HyperRailLog log = HyperRailLog.getLogger(CrashlyticsOptInDialog.class); + private static SharedPreferences sharedPreferences; + private static boolean hasOptedInOrOut; + + private CrashlyticsOptInDialog() { + // No public constructor + } + + public static void init(Context context) { + sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); + hasOptedInOrOut = sharedPreferences.getBoolean(PREFERENCES_KEY_OPTIN_REPLIED, false); + } + + + public static void showDialogOnce(Context context) { + if (!hasOptedInOrOut){ + showOptInDialog(context); + } + } + + private static void showOptInDialog(final Context context) { + AlertDialog.Builder builder = new AlertDialog.Builder(context); + + int titleId = R.string.crashlytics_dialog_title; + int messageId = R.string.crashlytics_dialog_message; + int disableButtonText = R.string.crashlytics_dialog_button_disable; + int enableButtonText = R.string.crashlytics_dialog_button_enable; + builder.setTitle(titleId); + builder.setMessage(messageId); + setDialogButtonActions(builder, enableButtonText, disableButtonText); + builder.show(); + } + + private static void setDialogButtonActions(AlertDialog.Builder builder, int enableButtonText, int disableButtonText) { + builder.setPositiveButton(enableButtonText, (dialog, which) -> { + optIn(); + setOptedInOrOut(); + }); + builder.setNegativeButton(disableButtonText, (dialog, which) -> { + optOut(); + setOptedInOrOut(); + }); + } + + private static void optIn() { + log.info("Storing opt-in from crashlytics"); + setPreference(PREFERENCES_CRASHLYTICS_ENABLED, true); + } + private static void optOut() { + log.info("Storing opt-out from crashlytics"); + setPreference(PREFERENCES_CRASHLYTICS_ENABLED, false); + } + + private static void setOptedInOrOut() { + setPreference(PREFERENCES_KEY_OPTIN_REPLIED, true); + } + + private static void setPreference(String preference, boolean value) { + if (sharedPreferences != null) { + sharedPreferences.edit().putBoolean(preference, value).apply(); + } + } + +} diff --git a/Hyperrail/src/main/java/be/hyperrail/android/util/ReviewDialogProvider.java b/Hyperrail/src/main/java/be/hyperrail/android/util/ReviewDialog.java similarity index 97% rename from Hyperrail/src/main/java/be/hyperrail/android/util/ReviewDialogProvider.java rename to Hyperrail/src/main/java/be/hyperrail/android/util/ReviewDialog.java index 8b04b8d5..60070193 100644 --- a/Hyperrail/src/main/java/be/hyperrail/android/util/ReviewDialogProvider.java +++ b/Hyperrail/src/main/java/be/hyperrail/android/util/ReviewDialog.java @@ -17,21 +17,22 @@ import org.joda.time.Duration; import be.hyperrail.android.R; +import be.hyperrail.android.activities.MainActivity; import be.hyperrail.android.logging.HyperRailLog; -public class ReviewDialogProvider { +public class ReviewDialog { private static final String PREFERENCES_KEY_DONT_SHOW_AGAIN = "rvd_dont_show_again"; private static final String PREFERENCES_KEY_FIRST_LAUNCH = "rvd_app_firstlaunch"; private static final String PREFERENCES_KEY_LAUNCH_COUNT = "rvd_app_launches"; - private static final HyperRailLog log = HyperRailLog.getLogger(ReviewDialogProvider.class); + private static final HyperRailLog log = HyperRailLog.getLogger(ReviewDialog.class); private static SharedPreferences sharedPreferences; private static int launches; private static long firstLaunch; - private ReviewDialogProvider() { + private ReviewDialog() { // No public constructor } diff --git a/Hyperrail/src/main/res/values-fr/strings.xml b/Hyperrail/src/main/res/values-fr/strings.xml index c33bc86e..a75c73b9 100644 --- a/Hyperrail/src/main/res/values-fr/strings.xml +++ b/Hyperrail/src/main/res/values-fr/strings.xml @@ -149,4 +149,10 @@ Départ annulé hier + Lorsque l\'application plante ou rencontre des problèmes, un rapport anonyme est créé via Crashlytics + Activer le rapport d\'incident + Afin de résoudre les problèmes potentiels avec l\'application, des rapports de plantage anonymes peuvent être téléchargés. Cela permet des corrections plus rapides en cas de problème. Voulez-vous activer cette fonctionnalité ? + Activer le rapport d\'incident + Activer + Maintenir désactivé diff --git a/Hyperrail/src/main/res/values-nl/strings.xml b/Hyperrail/src/main/res/values-nl/strings.xml index b585f725..05dfafbb 100644 --- a/Hyperrail/src/main/res/values-nl/strings.xml +++ b/Hyperrail/src/main/res/values-nl/strings.xml @@ -166,4 +166,10 @@ Tekeningen treincomposities door MLGTraffic Vertrek afgeschaft gisteren + Foutrapportering inschakelen + Wanneer de app crasht of problemen ondervind wordt een anoniem rapport gemaakt via Crashlytics + Foutrapportering inschakelen + Om mogelijke problemen met de app op te lossen, kunnen anonieme crashrapporten worden geüpload. Dit zorgt voor snellere oplossingen voor het geval er iets misgaat. Wil je deze functie inschakelen? + Inschakelen + Uitgeschakeld laten diff --git a/Hyperrail/src/main/res/values-nl/strings_preferences.xml b/Hyperrail/src/main/res/values-nl/strings_preferences.xml index 765a95bc..23c2e2c1 100644 --- a/Hyperrail/src/main/res/values-nl/strings_preferences.xml +++ b/Hyperrail/src/main/res/values-nl/strings_preferences.xml @@ -18,7 +18,7 @@ Kort op route tikken voor nieuw venster, lang tikken om uit te klappen Bekijk op github Links - Voorkeurstaal van stationsnamen + Voorkeurstaal stationsnamen Recenten / Favorieten / Kortbij diff --git a/Hyperrail/src/main/res/values/strings.xml b/Hyperrail/src/main/res/values/strings.xml index 2a05f9bb..3a68f127 100644 --- a/Hyperrail/src/main/res/values/strings.xml +++ b/Hyperrail/src/main/res/values/strings.xml @@ -151,6 +151,11 @@ Later No, thanks + Enable crash reporting + In order to fix potential issues with the app, anonymous crash reports can be uploaded. This allows for quicker fixes in case something goes wrong. Do you want to enable this feature? + Enable + Keep disabled + This train composition is not available at this time This train composition is unconfirmed and is subject to change Show train compositions diff --git a/Hyperrail/src/main/res/values/strings_preferences.xml b/Hyperrail/src/main/res/values/strings_preferences.xml index bec7ff2b..5de77764 100644 --- a/Hyperrail/src/main/res/values/strings_preferences.xml +++ b/Hyperrail/src/main/res/values/strings_preferences.xml @@ -20,7 +20,9 @@ Short tap route to open in new window, long tap to expand result in current window View on github Links - Station language + Station name language + Enable crash reporting + When the app crashes or has issues, an anonymous report is sent using Crashlytics @string/title_liveboard diff --git a/Hyperrail/src/main/res/xml/pref_general.xml b/Hyperrail/src/main/res/xml/pref_general.xml index 145552f9..d27aab82 100644 --- a/Hyperrail/src/main/res/xml/pref_general.xml +++ b/Hyperrail/src/main/res/xml/pref_general.xml @@ -28,6 +28,13 @@ android:title="@string/pref_stations_language" app:iconSpaceReserved="false"/> + + Date: Sat, 8 Oct 2022 12:31:40 +0200 Subject: [PATCH 5/8] Minor improvements to widget reliability --- .../searchresult/LiveboardActivity.java | 11 +++-- ...NextDeparturesRemoteViewsDataProvider.java | 47 ++++++++++++------ .../widget/NextDeparturesWidgetProvider.java | 49 +++++++++++-------- .../main/res/layout/widget_nextdepartures.xml | 3 +- 4 files changed, 69 insertions(+), 41 deletions(-) diff --git a/Hyperrail/src/main/java/be/hyperrail/android/activities/searchresult/LiveboardActivity.java b/Hyperrail/src/main/java/be/hyperrail/android/activities/searchresult/LiveboardActivity.java index 28cbf1da..398c4080 100644 --- a/Hyperrail/src/main/java/be/hyperrail/android/activities/searchresult/LiveboardActivity.java +++ b/Hyperrail/src/main/java/be/hyperrail/android/activities/searchresult/LiveboardActivity.java @@ -59,14 +59,17 @@ public static Intent createIntent(Context context, LiveboardRequest request) { i.putExtra("request", request); return i; } - - private Intent createShortcutIntent() { - Intent i = new Intent(this, LiveboardActivity.class); + public static Intent createShortcutIntent(Context context, String semanticStationId) { + Intent i = new Intent(context, LiveboardActivity.class); i.putExtra("shortcut", true); // this variable allows to detect launches from shortcuts - i.putExtra("station", mRequest.getStation().getSemanticId()); // shortcut intents should not contain application specific classes - only pass the station ID + i.putExtra("station", semanticStationId); // shortcut intents should not contain application specific classes - only pass the station ID return i; } + private Intent createShortcutIntent() { + return createShortcutIntent(this, mRequest.getStation().getSemanticId()); + } + @Override protected void onCreate(Bundle savedInstanceState) { diff --git a/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesRemoteViewsDataProvider.java b/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesRemoteViewsDataProvider.java index 88aa60cc..83d5a4e4 100644 --- a/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesRemoteViewsDataProvider.java +++ b/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesRemoteViewsDataProvider.java @@ -6,10 +6,13 @@ package be.hyperrail.android.widget; +import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.graphics.drawable.BitmapDrawable; + import androidx.core.content.ContextCompat; + import android.util.Log; import android.view.View; import android.widget.RemoteViews; @@ -19,6 +22,8 @@ import org.joda.time.format.DateTimeFormatter; import be.hyperrail.android.R; +import be.hyperrail.android.activities.searchresult.LiveboardActivity; +import be.hyperrail.android.logging.HyperRailLog; import be.hyperrail.opentransportdata.OpenTransportApi; import be.hyperrail.opentransportdata.common.contracts.QueryTimeDefinition; import be.hyperrail.opentransportdata.common.exceptions.StopLocationNotResolvedException; @@ -31,6 +36,7 @@ import static android.appwidget.AppWidgetManager.EXTRA_APPWIDGET_ID; class NextDeparturesRemoteViewsDataProvider implements RemoteViewsService.RemoteViewsFactory { + private static final HyperRailLog log = HyperRailLog.getLogger(NextDeparturesWidgetProvider.class); private final Context context; private final Intent creationIntent; private Liveboard liveboard; @@ -67,10 +73,10 @@ private void initLiveboard() { return; } request.setCallback((data, tag) -> { - Log.w("widgets", "Received iRail data..."); + log.info("Received iRail data..."); NextDeparturesRemoteViewsDataProvider.this.liveboard = data; }, null, null); - Log.w("widgets", "Requesting iRail data..."); + log.info("Requesting iRail data..."); OpenTransportApi.getDataProviderInstance().getLiveboard(request); try { @@ -95,12 +101,11 @@ public int getCount() { if (liveboard == null) { return 0; } - return liveboard.getStops().length; + return Math.min(liveboard.getStops().length, 20); } @Override public RemoteViews getViewAt(int position) { - if (errorDuringUpdate) { return new RemoteViews(context.getPackageName(), R.layout.widget_nextdepartures_error); } @@ -109,9 +114,21 @@ public RemoteViews getViewAt(int position) { // and set the text based on the position. RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.listview_liveboard_widget); VehicleStop stop = liveboard.getStops()[position]; - + Intent onClickIntent = LiveboardActivity.createIntent(context, + new LiveboardRequest(stop.getStopLocation(), + QueryTimeDefinition.EQUAL_OR_LATER, + LiveboardType.DEPARTURES, + null)); + + int flags; + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { + flags = PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE; + } else { + flags = PendingIntent.FLAG_UPDATE_CURRENT; + } + PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, onClickIntent, flags); bindTimeAndDelays(rv, stop); - + rv.setOnClickPendingIntent(R.id.binder, pendingIntent); rv.setTextViewText(R.id.text_destination, stop.getHeadsign()); rv.setTextViewText(R.id.text_train_number, stop.getVehicle().getNumber()); @@ -122,7 +139,7 @@ public RemoteViews getViewAt(int position) { rv.setTextViewText(R.id.text_platform, "X"); rv.setTextViewText(R.id.text_train_status, - context.getString(R.string.status_cancelled)); + context.getString(R.string.status_cancelled)); rv.setViewVisibility(R.id.layout_train_status_container, View.VISIBLE); rv.setViewVisibility(R.id.container_occupancy, View.GONE); } else { @@ -131,10 +148,10 @@ public RemoteViews getViewAt(int position) { } rv.setBitmap(R.id.container_occupancy, "setImageDrawable", - ((BitmapDrawable) ContextCompat.getDrawable(context, - OccupancyHelper.getOccupancyDrawable( - stop.getOccupancyLevel()) - )).getBitmap() + ((BitmapDrawable) ContextCompat.getDrawable(context, + OccupancyHelper.getOccupancyDrawable( + stop.getOccupancyLevel()) + )).getBitmap() ); // Return the remote views object. @@ -148,8 +165,8 @@ private void bindTimeAndDelays(RemoteViews rv, VehicleStop stop) { rv.setTextViewText(R.id.text_time1, df.print(stop.getDepartureTime())); if (stop.getDepartureDelay().getStandardSeconds() > 0) { rv.setTextViewText(R.id.text_delay1, - context.getString(R.string.delay, - stop.getDepartureDelay().getStandardMinutes())); + context.getString(R.string.delay, + stop.getDepartureDelay().getStandardMinutes())); rv.setTextViewText(R.id.text_delay_time, df.print(stop.getDelayedDepartureTime())); } else { rv.setTextViewText(R.id.text_delay1, ""); @@ -160,8 +177,8 @@ private void bindTimeAndDelays(RemoteViews rv, VehicleStop stop) { rv.setTextViewText(R.id.text_time1, df.print(stop.getArrivalTime())); if (stop.getArrivalDelay().getStandardSeconds() > 0) { rv.setTextViewText(R.id.text_delay1, - context.getString(R.string.delay, - stop.getArrivalDelay().getStandardMinutes())); + context.getString(R.string.delay, + stop.getArrivalDelay().getStandardMinutes())); rv.setTextViewText(R.id.text_delay_time, df.print(stop.getDelayedArrivalTime())); } else { rv.setTextViewText(R.id.text_delay1, ""); diff --git a/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesWidgetProvider.java b/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesWidgetProvider.java index 46bed65e..b66b9fc0 100644 --- a/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesWidgetProvider.java +++ b/Hyperrail/src/main/java/be/hyperrail/android/widget/NextDeparturesWidgetProvider.java @@ -20,17 +20,16 @@ import be.hyperrail.android.activities.searchresult.LiveboardActivity; import be.hyperrail.android.logging.HyperRailLog; import be.hyperrail.opentransportdata.OpenTransportApi; -import be.hyperrail.opentransportdata.common.contracts.QueryTimeDefinition; import be.hyperrail.opentransportdata.common.exceptions.StopLocationNotResolvedException; -import be.hyperrail.opentransportdata.common.models.LiveboardType; import be.hyperrail.opentransportdata.common.models.StopLocation; -import be.hyperrail.opentransportdata.common.requests.LiveboardRequest; import static android.appwidget.AppWidgetManager.EXTRA_APPWIDGET_ID; public class NextDeparturesWidgetProvider extends AppWidgetProvider { - SharedPreferences prefs; - HyperRailLog log = HyperRailLog.getLogger(NextDeparturesWidgetProvider.class); + private static final HyperRailLog log = HyperRailLog.getLogger(NextDeparturesWidgetProvider.class); + private static final String INTENT_EXTRA_STATION_ID = "stationId"; + private static final String INTENT_ACTION_LAUNCH_LIVEBOARD_VIEW = "launchLiveboardView"; + private SharedPreferences prefs; public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { // Perform this loop procedure for each App Widget that belongs to this provider @@ -81,20 +80,6 @@ private void updateAppWidget(Context context, AppWidgetManager appWidgetManager, private void updateAppWidgetData(Context context, AppWidgetManager appWidgetManager, int appWidgetId, StopLocation station) { - // Create an Intent to launch LiveboardActivity - Intent onClickIntent = LiveboardActivity.createIntent(context, - new LiveboardRequest(station, - QueryTimeDefinition.EQUAL_OR_LATER, - LiveboardType.DEPARTURES, - null)); - - int flags; - if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { - flags = PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE; - } else { - flags = PendingIntent.FLAG_UPDATE_CURRENT; - } - PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, onClickIntent, flags); // Get the layout for the App Widget and attach an on-click listener // to the button RemoteViews remoteViews = new RemoteViews(context.getPackageName(), @@ -110,13 +95,27 @@ private void updateAppWidgetData(Context context, AppWidgetManager appWidgetMana // This adapter connects to a RemoteViewsService through the specified intent. remoteViews.setRemoteAdapter(android.R.id.list, serviceIntent); remoteViews.setEmptyView(android.R.id.list, R.id.placeholder_no_data); - remoteViews.setOnClickPendingIntent(R.id.binder, pendingIntent); + remoteViews.setOnClickPendingIntent(R.id.binder, createOnClickIntent(context, station)); // Tell the AppWidgetManager to perform an update on the current app widget appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, android.R.id.list); appWidgetManager.updateAppWidget(appWidgetId, remoteViews); } + private PendingIntent createOnClickIntent(Context context, StopLocation station) { + Intent onClickIntent = new Intent(context, NextDeparturesWidgetProvider.class); + onClickIntent.setAction(INTENT_ACTION_LAUNCH_LIVEBOARD_VIEW); + onClickIntent.putExtra(INTENT_EXTRA_STATION_ID, station); + int flags; + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { + flags = PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE; + } else { + flags = PendingIntent.FLAG_UPDATE_CURRENT; + } + PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, onClickIntent, flags); + return pendingIntent; + } + private void setErrorLayout(Context context, AppWidgetManager appWidgetManager, int appWidgetId) { RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_nextdepartures_error); @@ -140,4 +139,14 @@ public void onDisabled(Context context) { // Enter relevant functionality for when the last widget is disabled } + @Override + public void onReceive(Context context, Intent intent) { + super.onReceive(context, intent); + if (intent.getAction().equals(INTENT_ACTION_LAUNCH_LIVEBOARD_VIEW)) { + String stationId = intent.getStringExtra(INTENT_EXTRA_STATION_ID); + Intent liveboardLaunchIntent = LiveboardActivity.createShortcutIntent(context, stationId); + liveboardLaunchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + context.startActivity(liveboardLaunchIntent); + } + } } \ No newline at end of file diff --git a/Hyperrail/src/main/res/layout/widget_nextdepartures.xml b/Hyperrail/src/main/res/layout/widget_nextdepartures.xml index b60c18cf..5a50ba85 100644 --- a/Hyperrail/src/main/res/layout/widget_nextdepartures.xml +++ b/Hyperrail/src/main/res/layout/widget_nextdepartures.xml @@ -29,7 +29,6 @@ android:background="@color/backgroundMaterialLight" /> - \ No newline at end of file From 582ac38496cbf4410731dd2de8181d21c9ba7d65 Mon Sep 17 00:00:00 2001 From: Bertware Date: Sat, 21 Jan 2023 20:54:02 +0100 Subject: [PATCH 6/8] Upgrade Gradle to 7.3.1 --- Hyperrail/build.gradle | 1 + Hyperrail/src/main/AndroidManifest.xml | 3 +-- OpenTransport/build.gradle | 1 + OpenTransport/src/main/AndroidManifest.xml | 3 +-- OpenTransport_be_experimental/build.gradle | 1 + OpenTransport_be_experimental/src/main/AndroidManifest.xml | 3 +-- build.gradle | 4 ++-- gradle/wrapper/gradle-wrapper.properties | 2 +- opentransport_be/build.gradle | 1 + opentransport_be/src/main/AndroidManifest.xml | 3 +-- 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Hyperrail/build.gradle b/Hyperrail/build.gradle index d4d525b1..7c6409a1 100644 --- a/Hyperrail/build.gradle +++ b/Hyperrail/build.gradle @@ -42,6 +42,7 @@ android { lint { abortOnError false } + namespace 'be.hyperrail.android' } dependencies { diff --git a/Hyperrail/src/main/AndroidManifest.xml b/Hyperrail/src/main/AndroidManifest.xml index 22991d42..4b26ab92 100644 --- a/Hyperrail/src/main/AndroidManifest.xml +++ b/Hyperrail/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ + xmlns:tools="http://schemas.android.com/tools"> diff --git a/OpenTransport/build.gradle b/OpenTransport/build.gradle index 6ce84ae2..51289351 100644 --- a/OpenTransport/build.gradle +++ b/OpenTransport/build.gradle @@ -32,6 +32,7 @@ android { lint { abortOnError false } + namespace 'be.hyperrail.opentransportdata' } dependencies { diff --git a/OpenTransport/src/main/AndroidManifest.xml b/OpenTransport/src/main/AndroidManifest.xml index 6c75d9e6..48e9a84c 100644 --- a/OpenTransport/src/main/AndroidManifest.xml +++ b/OpenTransport/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ - + diff --git a/OpenTransport_be_experimental/build.gradle b/OpenTransport_be_experimental/build.gradle index d3d7a7a9..b2899fd9 100644 --- a/OpenTransport_be_experimental/build.gradle +++ b/OpenTransport_be_experimental/build.gradle @@ -27,6 +27,7 @@ android { lint { abortOnError false } + namespace 'be.hyperrail.opentransportdata.be.experimental' } diff --git a/OpenTransport_be_experimental/src/main/AndroidManifest.xml b/OpenTransport_be_experimental/src/main/AndroidManifest.xml index 5d1ad6f5..d7546021 100644 --- a/OpenTransport_be_experimental/src/main/AndroidManifest.xml +++ b/OpenTransport_be_experimental/src/main/AndroidManifest.xml @@ -1,4 +1,3 @@ - + diff --git a/build.gradle b/build.gradle index 0e0aa5c9..cec569b5 100644 --- a/build.gradle +++ b/build.gradle @@ -7,8 +7,8 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:7.2.2' - classpath 'com.google.gms:google-services:4.3.14' + classpath 'com.android.tools.build:gradle:7.3.1' + classpath 'com.google.gms:google-services:4.3.15' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2' } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37ccd75e..2555e366 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip diff --git a/opentransport_be/build.gradle b/opentransport_be/build.gradle index 5a9fc637..c93fc55f 100644 --- a/opentransport_be/build.gradle +++ b/opentransport_be/build.gradle @@ -27,6 +27,7 @@ android { lint { abortOnError false } + namespace 'be.hyperrail.opentransportdata.be' } diff --git a/opentransport_be/src/main/AndroidManifest.xml b/opentransport_be/src/main/AndroidManifest.xml index bd0cf445..d7546021 100644 --- a/opentransport_be/src/main/AndroidManifest.xml +++ b/opentransport_be/src/main/AndroidManifest.xml @@ -1,4 +1,3 @@ - + From 8c487a0cb980f6d3c3a55275f0371840d6e1e228 Mon Sep 17 00:00:00 2001 From: Bertware Date: Mon, 6 Mar 2023 23:00:18 +0100 Subject: [PATCH 7/8] Improved support for AM/MR rolling stock --- .../be/irail/NmbsToMlgDessinsAdapter.java | 26 ++++++++++++++----- .../be/irail/VehicleCompositionParser.java | 6 ++--- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/NmbsToMlgDessinsAdapter.java b/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/NmbsToMlgDessinsAdapter.java index 99b2b182..c7ef4913 100644 --- a/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/NmbsToMlgDessinsAdapter.java +++ b/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/NmbsToMlgDessinsAdapter.java @@ -12,33 +12,42 @@ private NmbsToMlgDessinsAdapter() { } - static NmbsTrainType convert(String parentType, String subType, String orientation, int firstClassSeats) { + static NmbsTrainType convert(String parentType, String subType, String orientation, int firstClassSeats, int position) { + subType = subType.toUpperCase(); if (parentType.startsWith("HLE")) { return convertHle(parentType, subType, orientation); - } else if (parentType.startsWith("AM") || parentType.startsWith("MR") || parentType.startsWith("AR")) { + } else if (parentType.startsWith("AM") || parentType.startsWith("MR") || parentType.startsWith("AR") || parentType.startsWith("M08")) { return convertAm(parentType, subType, orientation, firstClassSeats); } else if (parentType.startsWith("I") || parentType.startsWith("M")) { - return convertCarriage(parentType, subType, orientation, firstClassSeats); + return convertCarriage(parentType, subType, orientation, firstClassSeats, position); } else { return new NmbsTrainType(parentType, subType, orientation); } } - private static NmbsTrainType convertCarriage(String parentType, String subType, String orientation, int firstClassSeats) { + private static NmbsTrainType convertCarriage(String parentType, String subType, String orientation, int firstClassSeats, int position) { String newParentType = parentType; String newSubType = subType; + String newOrientation = orientation; switch (parentType) { case "M4": switch (subType) { case "A": case "AU": + case "AYU": newSubType = "B_A"; break; case "AD": case "AUD": newSubType = "B_AD"; break; + case "ADU": case "ADX": + if (position <= 2) { + newOrientation = "R"; + } else { + newOrientation = "L"; + } newSubType = "B_ADX"; break; case "B": @@ -109,18 +118,20 @@ private static NmbsTrainType convertCarriage(String parentType, String subType, } break; } - return new NmbsTrainType(newParentType, newSubType, orientation); + return new NmbsTrainType(newParentType, newSubType, newOrientation); } private static NmbsTrainType convertAm(String parentType, String subType, String orientation, int firstClassSeats) { String newParentType = parentType; String newSubType = subType; - switch (parentType) { case "AM08": case "AM08M": + newParentType = "AM08"; switch (subType) { case "A": + newSubType = "A"; + break; case "C": newSubType = "0_C"; break; @@ -128,12 +139,13 @@ private static NmbsTrainType convertAm(String parentType, String subType, String newSubType = "0_B"; break; } - newParentType = "AM08"; break; case "AM08P": newParentType = "AM08"; switch (subType) { case "A": + newSubType = "A"; + break; case "C": newSubType = "5_C"; break; diff --git a/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/VehicleCompositionParser.java b/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/VehicleCompositionParser.java index 935c2b67..d98b614c 100644 --- a/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/VehicleCompositionParser.java +++ b/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/VehicleCompositionParser.java @@ -37,7 +37,7 @@ VehicleCompositionImpl parseVehicleComposition(Context appContext, JSONObject re boolean confirmed = !longestSegment.getJSONObject("composition").getString("source").equalsIgnoreCase("planning"); VehicleCompositionUnit[] vehicleCompositionUnits = new VehicleCompositionUnit[units.length()]; for (int i = 0; i < units.length(); i++) { - vehicleCompositionUnits[i] = parseVehicleCompositionUnit(appContext, units.getJSONObject(i)); + vehicleCompositionUnits[i] = parseVehicleCompositionUnit(appContext, units.getJSONObject(i), i); } return new VehicleCompositionImpl(vehicleCompositionUnits, confirmed); } @@ -58,7 +58,7 @@ private JSONObject getLongestComposition(JSONArray segmentsArray) throws JSONExc return longestSegment; } - private VehicleCompositionUnit parseVehicleCompositionUnit(Context appContext, JSONObject jsonObject) throws JSONException { + private VehicleCompositionUnit parseVehicleCompositionUnit(Context appContext, JSONObject jsonObject, int position) throws JSONException { String parentType = jsonObject.getJSONObject("materialType").getString("parent_type").toUpperCase(); String subType = jsonObject.getJSONObject("materialType").getString("sub_type").toUpperCase(); String orientation = jsonObject.getJSONObject("materialType").getString("orientation").substring(0, 1).toUpperCase(); @@ -70,7 +70,7 @@ private VehicleCompositionUnit parseVehicleCompositionUnit(Context appContext, J int numberOfFirstClassSeats = jsonObject.getInt("seatsFirstClass"); int numberOfSecondClassSeats = jsonObject.getInt("seatsSecondClass"); - NmbsTrainType trainType = NmbsToMlgDessinsAdapter.convert(parentType, subType, orientation, numberOfFirstClassSeats); + NmbsTrainType trainType = NmbsToMlgDessinsAdapter.convert(parentType, subType, orientation, numberOfFirstClassSeats, position); int resourceId = getResourceIdForTrain(appContext, trainType); return new VehicleCompositionUnitImpl(resourceId, publicFacingNumber, trainType.parentType, hasToilet, hasAirco, canPassToNextUnit, numberOfFirstClassSeats, numberOfSecondClassSeats); } From 57d97f03ef316f308f2667d382e647bc51c73926 Mon Sep 17 00:00:00 2001 From: Bertware Date: Sun, 3 Dec 2023 14:00:39 +0100 Subject: [PATCH 8/8] Update target SDK, data and dependencies --- Hyperrail/build.gradle | 25 +- build.gradle | 2 +- gradle.properties | 3 + gradle/wrapper/gradle-wrapper.properties | 2 +- .../be/irail/IrailStopsDatabase.java | 2 +- .../src/main/res/raw/stations.csv | 1238 +++++++++-------- 6 files changed, 640 insertions(+), 632 deletions(-) diff --git a/Hyperrail/build.gradle b/Hyperrail/build.gradle index 7c6409a1..8fcdc496 100644 --- a/Hyperrail/build.gradle +++ b/Hyperrail/build.gradle @@ -8,16 +8,15 @@ apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' apply plugin: 'com.google.firebase.crashlytics' -def VERSION_CODE = 57 -def VERSION_NAME = '1.3.3' +def VERSION_CODE = 58 +def VERSION_NAME = '1.3.4' android { - compileSdk 33 - buildToolsVersion '33.0.0' + compileSdk 34 defaultConfig { applicationId "be.hyperrail.android" minSdkVersion 21 - targetSdkVersion 33 + targetSdkVersion 34 versionCode VERSION_CODE versionName VERSION_NAME testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -47,26 +46,26 @@ android { dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.1.4' - implementation 'com.google.android.gms:play-services-maps:18.1.0' + implementation 'com.google.android.gms:play-services-maps:18.2.0' implementation fileTree(include: ['*.jar'], dir: 'libs') implementation 'com.android.volley:volley:1.2.1@aar' implementation 'joda-time:joda-time:2.11.0' implementation 'com.squareup.picasso:picasso:2.71828' - def lifecycle_version = "2.5.1" + def lifecycle_version = "2.6.2" // Force the same lifecycle-viewmodel for kotlin and java. implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" - implementation 'androidx.appcompat:appcompat:1.5.1' + implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.cardview:cardview:1.0.0' - implementation 'androidx.recyclerview:recyclerview:1.2.1' - implementation 'androidx.preference:preference:1.2.0' - implementation 'com.google.android.material:material:1.6.1' - implementation 'com.google.android.gms:play-services-location:20.0.0' - implementation 'com.google.firebase:firebase-crashlytics:18.2.13' + implementation 'androidx.recyclerview:recyclerview:1.3.2' + implementation 'androidx.preference:preference:1.2.1' + implementation 'com.google.android.material:material:1.10.0' + implementation 'com.google.android.gms:play-services-location:21.0.1' + implementation 'com.google.firebase:firebase-crashlytics:18.6.0' testImplementation 'junit:junit:4.13.2' testImplementation 'org.json:json:20220320' diff --git a/build.gradle b/build.gradle index cec569b5..bdd347fe 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.1' + classpath 'com.android.tools.build:gradle:8.2.0' classpath 'com.google.gms:google-services:4.3.15' classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.2' } diff --git a/gradle.properties b/gradle.properties index 962452d1..f5025489 100644 --- a/gradle.properties +++ b/gradle.properties @@ -9,7 +9,10 @@ # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. +android.defaults.buildfeatures.buildconfig=true android.enableJetifier=true +android.nonFinalResIds=false +android.nonTransitiveRClass=true android.useAndroidX=true org.gradle.jvmargs=-Xmx2048m diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2555e366..b599a1de 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-all.zip diff --git a/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/IrailStopsDatabase.java b/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/IrailStopsDatabase.java index 8fe241bb..d8b4baa7 100644 --- a/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/IrailStopsDatabase.java +++ b/opentransport_be/src/main/java/be/hyperrail/opentransportdata/be/irail/IrailStopsDatabase.java @@ -37,7 +37,7 @@ class IrailStopsDatabase extends SQLiteOpenHelper { private final Resources mResources; IrailStopsDatabase(Context context) { - super(context, "irail-stations.db", null, 2022050200); + super(context, "irail-stations.db", null, 2023120300); this.mResources = context.getResources(); } diff --git a/opentransport_be/src/main/res/raw/stations.csv b/opentransport_be/src/main/res/raw/stations.csv index 2aaa1976..7fdf2773 100644 --- a/opentransport_be/src/main/res/raw/stations.csv +++ b/opentransport_be/src/main/res/raw/stations.csv @@ -1,686 +1,692 @@ URI,name,alternative-fr,alternative-nl,alternative-de,alternative-en,country-code,longitude,latitude,avg_stop_times,official_transfer_time -http://irail.be/stations/NMBS/008015345,Aachen Hbf,Aix-la-Chapelle Hbf,Aken Hbf,,,de,6.105275,50.770832,30,300 -http://irail.be/stations/NMBS/008895000,Aalst,Alost,,,,be,4.039653,50.942813,142.859649,300 -http://irail.be/stations/NMBS/008895125,Aalst-Kerrebroek,Alost Kerrebroek,,,,be,4.024407,50.948377,7.307018,300 -http://irail.be/stations/NMBS/008891140,Aalter,,,,,be,3.447848,51.092295,186.412281,240 -http://irail.be/stations/NMBS/008833209,Aarschot,,,,,be,4.824043,50.984406,187.285088,240 -http://irail.be/stations/NMBS/008892288,Aarsele,,,,,be,3.418363,50.98446,40.934211,300 -http://irail.be/stations/NMBS/008886546,Acren,,Akren,,,be,3.847086,50.733095,37.561404,300 +http://irail.be/stations/NMBS/008400319,'s Hertogenbosch,,,,,nl,5.29427800,51.6904200,0.022857,300 +http://irail.be/stations/NMBS/008015345,Aachen Hbf,Aix-la-Chapelle Hbf,Aken Hbf,,,de,6.105275,50.770832,29.84,300 +http://irail.be/stations/NMBS/008895000,Aalst,Alost,,,,be,4.039653,50.942813,134.657143,300 +http://irail.be/stations/NMBS/008895125,Aalst-Kerrebroek,Alost Kerrebroek,,,,be,4.024407,50.948377,6.72,300 +http://irail.be/stations/NMBS/008891140,Aalter,,,,,be,3.447848,51.092295,188.16,240 +http://irail.be/stations/NMBS/008833209,Aarschot,,,,,be,4.824043,50.984406,190.84,240 +http://irail.be/stations/NMBS/008892288,Aarsele,,,,,be,3.418363,50.98446,39.485714,300 +http://irail.be/stations/NMBS/008886546,Acren,,Akren,,,be,3.847086,50.733095,36.811429,300 http://irail.be/stations/NMBS/008778127,Agde,,,,,fr,3.465800,43.317498,0, http://irail.be/stations/NMBS/008774176,Aime-la-Plagne,,,,,fr,6.648394,45.554202,0, -http://irail.be/stations/NMBS/008874583,Aiseau,,,,,be,4.584552,50.429529,115.885965,300 +http://irail.be/stations/NMBS/008874583,Aiseau,,,,,be,4.584552,50.429529,107.022857,300 http://irail.be/stations/NMBS/008731901,Aix-en-Provence TGV,,,,,fr,5.43333300,43.5333300,0, http://irail.be/stations/NMBS/008774164,Albertville,,,,,fr,6.383617,45.673624,0, -http://irail.be/stations/NMBS/008831039,Alken,,,,,be,5.292866,50.886837,39.552632,300 -http://irail.be/stations/NMBS/008843331,Amay,,,,,be,5.32049,50.546011,90.583333,300 -http://irail.be/stations/NMBS/008843323,Ampsin,,,,,be,5.289729,50.539215,90.583333,300 -http://irail.be/stations/NMBS/008400058,Amsterdam CS,,,,,nl,4.91666700,52.3500000,31.938596,300 -http://irail.be/stations/NMBS/008863404,Andenne,,,,,be,5.094699,50.496759,89.241228,300 -http://irail.be/stations/NMBS/008811940,Anderlecht,,,,,be,4.29180000,50.8179000,242.364035,300 -http://irail.be/stations/NMBS/008842002,Angleur,,,,,be,5.599695,50.613152,149.412281,300 -http://irail.be/stations/NMBS/008728685,Annappes,,,,,fr,3.15000000,50.6333330,3.460526,300 -http://irail.be/stations/NMBS/008841202,Ans,,,,,be,5.509704,50.661208,116.745614,300 -http://irail.be/stations/NMBS/008863818,Anseremme,,,,,be,4.90553,50.238023,27.824561,300 +http://irail.be/stations/NMBS/008831039,Alken,,,,,be,5.292866,50.886837,39.245714,300 +http://irail.be/stations/NMBS/008843331,Amay,,,,,be,5.32049,50.546011,90.977143,300 +http://irail.be/stations/NMBS/008843323,Ampsin,,,,,be,5.289729,50.539215,90.977143,300 +http://irail.be/stations/NMBS/008400058,Amsterdam CS,,,,,nl,4.91666700,52.3500000,31.474286,300 +http://irail.be/stations/NMBS/008863404,Andenne,,,,,be,5.094699,50.496759,88.885714,300 +http://irail.be/stations/NMBS/008811940,Anderlecht,,,,,be,4.29180000,50.8179000,236.937143,300 +http://irail.be/stations/NMBS/008842002,Angleur,,,,,be,5.599695,50.613152,150.897143,300 +http://irail.be/stations/NMBS/008728685,Annappes,,,,,fr,3.15000000,50.6333330,3.622857,300 +http://irail.be/stations/NMBS/008841202,Ans,,,,,be,5.509704,50.661208,116.234286,300 +http://irail.be/stations/NMBS/008863818,Anseremme,,,,,be,4.90553,50.238023,28.497143,300 http://irail.be/stations/NMBS/008775767,Antibes,,,,,fr,7.1201361,43.586618,0, -http://irail.be/stations/NMBS/008885522,Antoing,,,,,be,3.451309,50.569626,64.701754,300 -http://irail.be/stations/NMBS/008821121,Antwerpen-Berchem,Anvers-Berchem,,,Antwerp-Berchem,be,4.432221,51.19923,635.350877,300 -http://irail.be/stations/NMBS/008821006,Antwerpen-Centraal,Anvers-Central,,,Antwerp-Central,be,4.421101,51.2172,647.390351,300 -http://irail.be/stations/NMBS/008821030,Antwerpen-Dam,Anvers-Dam,Antwerpen-Dam,,,be,4.42623800,51.2319910,0.688596,300 +http://irail.be/stations/NMBS/008885522,Antoing,,,,,be,3.451309,50.569626,64.468571,300 +http://irail.be/stations/NMBS/008821121,Antwerpen-Berchem,Anvers-Berchem,,,Antwerp-Berchem,be,4.432221,51.19923,639.057143,300 +http://irail.be/stations/NMBS/008821006,Antwerpen-Centraal,Anvers-Central,,,Antwerp-Central,be,4.421101,51.2172,652.691429,300 +http://irail.be/stations/NMBS/008821030,Antwerpen-Dam,Anvers-Dam,Antwerpen-Dam,,,be,4.42623800,51.2319910,2.262857,300 http://irail.be/stations/NMBS/008821048,Antwerpen-Haven,Anvers-Haven,,,Antwerp-Haven,be,4.379086,51.289968,0, -http://irail.be/stations/NMBS/008821063,Antwerpen-Luchtbal,Anvers-Luchtbal,,,Antwerp-Luchtbal,be,4.425029,51.244132,148.986842,300 -http://irail.be/stations/NMBS/008821089,Antwerpen-Noorderdokken,Anvers-Noorderdokken,,,Antwerp-Noorderdokken,be,4.427906,51.261643,83.644737,240 -http://irail.be/stations/NMBS/008821022,Antwerpen-Oost,Anvers-Est,,,Antwerp-East,be,4.436392,51.207357,0.688596,300 -http://irail.be/stations/NMBS/008821196,Antwerpen-Zuid,Anvers-Sud,,,Antwerp-South,be,4.390259,51.197828,200.530702,300 -http://irail.be/stations/NMBS/008892734,Anzegem,,,,,be,3.495014,50.826385,84.894737,300 -http://irail.be/stations/NMBS/008895745,Appelterre,,,,,be,3.972108,50.813063,47.653509,300 -http://irail.be/stations/NMBS/008814472,Arcaden/Arcades,Arcades,Arcaden,Arcades,Arcaden,be,4.398333,50.809722,124.675439,300 -http://irail.be/stations/NMBS/008811759,Archennes,,Eerken,,,be,4.662444,50.754345,54.578947,300 -http://irail.be/stations/NMBS/008866001,Arlon,,Aarlen,Arel,,be,5.809971,49.68053,139.385965,120 +http://irail.be/stations/NMBS/008821063,Antwerpen-Luchtbal,Anvers-Luchtbal,,,Antwerp-Luchtbal,be,4.425029,51.244132,116.068571,300 +http://irail.be/stations/NMBS/008821089,Antwerpen-Noorderdokken,Anvers-Noorderdokken,,,Antwerp-Noorderdokken,be,4.427906,51.261643,75.64,240 +http://irail.be/stations/NMBS/008821022,Antwerpen-Oost,Anvers-Est,,,Antwerp-East,be,4.436392,51.207357,2.262857,300 +http://irail.be/stations/NMBS/008821196,Antwerpen-Zuid,Anvers-Sud,,,Antwerp-South,be,4.390259,51.197828,196.857143,300 +http://irail.be/stations/NMBS/008892734,Anzegem,,,,,be,3.495014,50.826385,83.971429,300 +http://irail.be/stations/NMBS/008895745,Appelterre,,,,,be,3.972108,50.813063,47.245714,300 +http://irail.be/stations/NMBS/008814472,Arcaden/Arcades,Arcades,Arcaden,Arcades,Arcaden,be,4.398333,50.809722,85.965714,300 +http://irail.be/stations/NMBS/008811759,Archennes,,Eerken,,,be,4.662444,50.754345,54.857143,300 +http://irail.be/stations/NMBS/008866001,Arlon,,Aarlen,Arel,,be,5.809971,49.68053,137.131429,120 http://irail.be/stations/NMBS/008734201,Arras,,,,,fr,2.78169000,50.2868300,0, -http://irail.be/stations/NMBS/008728686,Ascq,,,,,fr,3.166666,50.616666,29.469298,300 -http://irail.be/stations/NMBS/008812070,Asse,,,,,be,4.207985,50.906488,90.517544,300 -http://irail.be/stations/NMBS/008864931,Assesse,,,,,be,5.022839,50.368133,74.254386,300 -http://irail.be/stations/NMBS/008886009,Ath,,Aat,,,be,3.777429,50.626932,109.960526,300 -http://irail.be/stations/NMBS/008866605,Athus,,,Athem,,be,5.828947,49.563346,104.100877,300 -http://irail.be/stations/NMBS/008869047,Athus-Frontiere,,,,,be,5.82493200,49.5517490,111.144737,120 -http://irail.be/stations/NMBS/008866654,Aubange,,,,,be,5.79806,49.564093,29.736842,300 +http://irail.be/stations/NMBS/008728686,Ascq,,,,,fr,3.166666,50.616666,32.188571,300 +http://irail.be/stations/NMBS/008812070,Asse,,,,,be,4.207985,50.906488,88.6,300 +http://irail.be/stations/NMBS/008864931,Assesse,,,,,be,5.022839,50.368133,74.371429,300 +http://irail.be/stations/NMBS/008886009,Ath,,Aat,,,be,3.777429,50.626932,107.92,300 +http://irail.be/stations/NMBS/008866605,Athus,,,Athem,,be,5.828947,49.563346,65.308571,300 +http://irail.be/stations/NMBS/008869047,Athus-Frontiere,,,,,be,5.82493200,49.5517490,75.96,120 +http://irail.be/stations/NMBS/008866654,Aubange,,,,,be,5.79806,49.564093,13.188571,300 http://irail.be/stations/NMBS/008869088,Aubange-Frontiere-Luxembourg,,,,,be,5.82630700,49.5494550,0, -http://irail.be/stations/NMBS/008729560,Aulnoye-Aymeries,,,,,fr,3.84341300,50.1974400,3.903509,300 -http://irail.be/stations/NMBS/008874716,Auvelais,,,,,be,4.630532,50.449197,115.885965,300 +http://irail.be/stations/NMBS/008729560,Aulnoye-Aymeries,,,,,fr,3.84341300,50.1974400,0, +http://irail.be/stations/NMBS/008874716,Auvelais,,,,,be,4.630532,50.449197,107.674286,300 http://irail.be/stations/NMBS/008731896,Avignon TGV,,,,,fr,4.81666700,43.9500000,0, -http://irail.be/stations/NMBS/008864352,Aye,,,,,be,5.301091,50.224135,59.425439,300 -http://irail.be/stations/NMBS/008842754,Aywaille,,,,,be,5.672499,50.472938,31.535088,300 +http://irail.be/stations/NMBS/008864352,Aye,,,,,be,5.301091,50.224135,60.222857,300 +http://irail.be/stations/NMBS/008842754,Aywaille,,,,,be,5.672499,50.472938,31.668571,300 http://irail.be/stations/NMBS/008727149,Aéroport Charles-de-Gaulle TGV,,,,,fr,2.571123,49.003955,0, -http://irail.be/stations/NMBS/008822160,Baasrode-Zuid,Baesrode-Sud,,,,be,4.153492,51.019437,63.754386,300 -http://irail.be/stations/NMBS/008728687,Baisieux,,,,,fr,3.25000000,50.6000000,49.197368,300 -http://irail.be/stations/NMBS/008895257,Balegem-Dorp,,,,,be,3.791425,50.919612,42.280702,300 -http://irail.be/stations/NMBS/008895240,Balegem-Zuid,,,,,be,3.80587,50.90051,42.280702,300 -http://irail.be/stations/NMBS/008832045,Balen,Baelen,,,,be,5.164986,51.169099,30.464912,300 -http://irail.be/stations/NMBS/008895463,Bambrugge,,,,,be,3.935711,50.913769,7.307018,300 -http://irail.be/stations/NMBS/008864451,Barvaux,,,,,be,5.501542,50.349417,30.381579,300 -http://irail.be/stations/NMBS/008843430,Bas-Oha,,,,,be,5.190937,50.52263,88.504386,300 -http://irail.be/stations/NMBS/008200718,Bascharage-Sanem,,,,,lu,5.92374200,49.5583600,74.320175,300 +http://irail.be/stations/NMBS/008822160,Baasrode-Zuid,Baesrode-Sud,,,,be,4.153492,51.019437,64.782857,300 +http://irail.be/stations/NMBS/008728687,Baisieux,,,,,fr,3.25000000,50.6000000,50.217143,300 +http://irail.be/stations/NMBS/008895257,Balegem-Dorp,,,,,be,3.791425,50.919612,42.108571,300 +http://irail.be/stations/NMBS/008895240,Balegem-Zuid,,,,,be,3.80587,50.90051,42.108571,300 +http://irail.be/stations/NMBS/008832045,Balen,Baelen,,,,be,5.164986,51.169099,30.571429,300 +http://irail.be/stations/NMBS/008895463,Bambrugge,,,,,be,3.935711,50.913769,6.72,300 +http://irail.be/stations/NMBS/008864451,Barvaux,,,,,be,5.501542,50.349417,30.582857,300 +http://irail.be/stations/NMBS/008843430,Bas-Oha,,,,,be,5.190937,50.52263,88.885714,300 +http://irail.be/stations/NMBS/008200718,Bascharage-Sanem,,,,,lu,5.92374200,49.5583600,51.022857,300 http://irail.be/stations/NMBS/008500010,Basel,,Bazel,,,ch,7.590716,47.547408,0, -http://irail.be/stations/NMBS/008811734,Basse-Wavre,,,,,be,4.621651,50.72442,55.100877,300 +http://irail.be/stations/NMBS/008811734,Basse-Wavre,,,,,be,4.621651,50.72442,54.857143,300 http://irail.be/stations/NMBS/008865128,Bastogne-Nord,,Bastenaken-Noord,,,be,5.720744,50.006919,0, http://irail.be/stations/NMBS/008865110,Bastogne-Sud,,Bastenaken-Zuid,,,be,5.709858,49.999737,0, -http://irail.be/stations/NMBS/008863867,Beauraing,,,,,be,4.95684,50.11443,33.802632,300 -http://irail.be/stations/NMBS/008891124,Beernem,,,,,be,3.329892,51.128009,186.412281,300 -http://irail.be/stations/NMBS/008814423,Beersel,,,,,be,4.302605,50.766616,67.72807,300 -http://irail.be/stations/NMBS/008894151,Beervelde,,,,,be,3.879384,51.08753,130.232456,300 -http://irail.be/stations/NMBS/008821865,Begijnendijk,,,,,be,4.800338,51.021972,96.140351,300 -http://irail.be/stations/NMBS/008871183,Beignée,,,,,be,4.406305,50.333893,34.315789,300 -http://irail.be/stations/NMBS/008891157,Bellem,,,,,be,3.487374,51.083908,186.412281,300 -http://irail.be/stations/NMBS/008894433,Belsele,,,,,be,4.088608,51.150994,154.640351,300 -http://irail.be/stations/NMBS/008832235,Beringen,,,,,be,5.235892,51.050603,30.464912,300 -http://irail.be/stations/NMBS/008821816,Berlaar,,,,,be,4.638811,51.113662,96.140351,300 -http://irail.be/stations/NMBS/008200510,Bertrange Strassen,,,,,lu,6.060601,49.613002,36.421053,300 -http://irail.be/stations/NMBS/008865300,Bertrix,,,,,be,5.267193,49.852835,78.302632,300 -http://irail.be/stations/NMBS/008873320,Berzée,,,,,be,4.405909,50.285603,34.315789,300 -http://irail.be/stations/NMBS/008861424,Beuzet,,,,,be,4.748533,50.534208,130.057018,300 -http://irail.be/stations/NMBS/008894748,Beveren,,,,,be,4.25952,51.208336,144.429825,300 -http://irail.be/stations/NMBS/008832227,Beverlo,,,,,be,5.234373,51.087719,30.464912,300 -http://irail.be/stations/NMBS/008811718,Bierges-Walibi,,,,,be,4.594746,50.707772,77.127193,300 -http://irail.be/stations/NMBS/008841319,Bierset-Awans,,,,,be,5.460551,50.65861,64.578947,300 -http://irail.be/stations/NMBS/008831138,Bilzen,,,,,be,5.50938,50.868643,61.307018,300 -http://irail.be/stations/NMBS/008882362,Binche,,,,,be,4.172451,50.408764,35.780702,300 -http://irail.be/stations/NMBS/008896388,Bissegem,,,,,be,3.224205,50.825845,41.425439,300 -http://irail.be/stations/NMBS/008889045,Blandain-Frontiere,,,,,be,3.26373000,50.6174900,47.828947,120 -http://irail.be/stations/NMBS/008891405,Blankenberge,,,,,be,3.133864,51.312432,40.052632,300 -http://irail.be/stations/NMBS/008861531,Blanmont,,,,,be,4.636393,50.619453,131.092105,300 -http://irail.be/stations/NMBS/008884715,Blaton,,,,,be,3.666304,50.505461,64.701754,300 -http://irail.be/stations/NMBS/008841434,Bleret,,,,,be,5.286394,50.685065,64.578947,300 -http://irail.be/stations/NMBS/008812021,Bockstael,,,,,be,4.348513,50.87943,118.723684,300 -http://irail.be/stations/NMBS/008821634,Boechout,,,,,be,4.494489,51.16348,189.315789,300 -http://irail.be/stations/NMBS/008831781,Bokrijk,,,,,be,5.408386,50.955812,42.092105,300 -http://irail.be/stations/NMBS/008864469,Bomal,,,,,be,5.519304,50.376798,30.605263,300 -http://irail.be/stations/NMBS/008821857,Booischot,,,,,be,4.773478,51.037344,96.140351,300 -http://irail.be/stations/NMBS/008822814,Boom,,,,,be,4.360694,51.090713,56.100877,300 -http://irail.be/stations/NMBS/008814456,Boondaal/Boondael,Boondael,Boondaal,,,be,4.393387,50.801665,124.675439,300 -http://irail.be/stations/NMBS/008822475,Boortmeerbeek,,,,,be,4.5739,50.981853,66.77193,300 +http://irail.be/stations/NMBS/008863867,Beauraing,,,,,be,4.95684,50.11443,26.942857,300 +http://irail.be/stations/NMBS/008891124,Beernem,,,,,be,3.329892,51.128009,188.16,300 +http://irail.be/stations/NMBS/008814423,Beersel,,,,,be,4.302605,50.766616,43.245714,300 +http://irail.be/stations/NMBS/008894151,Beervelde,,,,,be,3.879384,51.08753,120.137143,300 +http://irail.be/stations/NMBS/008821865,Begijnendijk,,,,,be,4.800338,51.021972,96.605714,300 +http://irail.be/stations/NMBS/008871183,Beignée,,,,,be,4.406305,50.333893,34.485714,300 +http://irail.be/stations/NMBS/008891157,Bellem,,,,,be,3.487374,51.083908,188.16,300 +http://irail.be/stations/NMBS/008894433,Belsele,,,,,be,4.088608,51.150994,154.56,300 +http://irail.be/stations/NMBS/008832235,Beringen,,,,,be,5.235892,51.050603,30.571429,300 +http://irail.be/stations/NMBS/008821816,Berlaar,,,,,be,4.638811,51.113662,95.942857,300 +http://irail.be/stations/NMBS/008065969,Berlin HBF,,,,,de,13.369548,52.525589,0, +http://irail.be/stations/NMBS/008032318,Berlin Lichtenberg,,,,,de,13.4965,52.5097,0, +http://irail.be/stations/NMBS/008200510,Bertrange Strassen,,,,,lu,6.060601,49.613002,49.091429,300 +http://irail.be/stations/NMBS/008865300,Bertrix,,,,,be,5.267193,49.852835,44.52,300 +http://irail.be/stations/NMBS/008873320,Berzée,,,,,be,4.405909,50.285603,34.485714,300 +http://irail.be/stations/NMBS/008861424,Beuzet,,,,,be,4.748533,50.534208,129.188571,300 +http://irail.be/stations/NMBS/008894748,Beveren,,,,,be,4.25952,51.208336,139.788571,300 +http://irail.be/stations/NMBS/008832227,Beverlo,,,,,be,5.234373,51.087719,30.571429,300 +http://irail.be/stations/NMBS/008811718,Bierges-Walibi,,,,,be,4.594746,50.707772,80.297143,300 +http://irail.be/stations/NMBS/008841319,Bierset-Awans,,,,,be,5.460551,50.65861,63.428571,300 +http://irail.be/stations/NMBS/008831138,Bilzen,,,,,be,5.50938,50.868643,61.337143,300 +http://irail.be/stations/NMBS/008882362,Binche,,,,,be,4.172451,50.408764,35.068571,300 +http://irail.be/stations/NMBS/008896388,Bissegem,,,,,be,3.224205,50.825845,41.622857,300 +http://irail.be/stations/NMBS/008889045,Blandain-Frontiere,,,,,be,3.26373000,50.6174900,48.817143,120 +http://irail.be/stations/NMBS/008891405,Blankenberge,,,,,be,3.133864,51.312432,38.88,300 +http://irail.be/stations/NMBS/008861531,Blanmont,,,,,be,4.636393,50.619453,130.417143,300 +http://irail.be/stations/NMBS/008884715,Blaton,,,,,be,3.666304,50.505461,64.468571,300 +http://irail.be/stations/NMBS/008841434,Bleret,,,,,be,5.286394,50.685065,63.428571,300 +http://irail.be/stations/NMBS/008812021,Bockstael,,,,,be,4.348513,50.87943,118.702857,300 +http://irail.be/stations/NMBS/008821634,Boechout,,,,,be,4.494489,51.16348,187.16,300 +http://irail.be/stations/NMBS/008831781,Bokrijk,,,,,be,5.408386,50.955812,41.851429,300 +http://irail.be/stations/NMBS/008864469,Bomal,,,,,be,5.519304,50.376798,41.4,300 +http://irail.be/stations/NMBS/008821857,Booischot,,,,,be,4.773478,51.037344,95.942857,300 +http://irail.be/stations/NMBS/008822814,Boom,,,,,be,4.360694,51.090713,58.314286,300 +http://irail.be/stations/NMBS/008814456,Boondaal/Boondael,Boondael,Boondaal,,,be,4.393387,50.801665,85.965714,300 +http://irail.be/stations/NMBS/008822475,Boortmeerbeek,,,,,be,4.5739,50.981853,66.468571,300 http://irail.be/stations/NMBS/008758100,Bordeaux Saint Jean,,,,,fr,-0.5557068,44.8256102,0, -http://irail.be/stations/NMBS/008811163,Bordet,,,,,be,4.410026,50.877785,167.714912,300 -http://irail.be/stations/NMBS/008822772,Bornem,,,,,be,4.240526,51.099225,39.802632,300 -http://irail.be/stations/NMBS/008811437,Bosvoorde/Boitsfort,Boitsfort,Bosvoorde,,,be,4.408112,50.794698,159.192982,300 +http://irail.be/stations/NMBS/008811163,Bordet,,,,,be,4.410026,50.877785,156.28,300 +http://irail.be/stations/NMBS/008822772,Bornem,,,,,be,4.240526,51.099225,41.114286,300 +http://irail.be/stations/NMBS/008811437,Bosvoorde/Boitsfort,Boitsfort,Bosvoorde,,,be,4.408112,50.794698,157.028571,300 http://irail.be/stations/NMBS/008774179,Bourg-Saint-Maurice,,,,,fr,6.771664,45.618826,0, -http://irail.be/stations/NMBS/008884319,Boussu,,,,,be,3.797025,50.436388,32.929825,300 -http://irail.be/stations/NMBS/008821725,Bouwel,,,,,be,4.746511,51.165764,124.381579,300 -http://irail.be/stations/NMBS/008881463,Bracquegnies,,,,,be,4.126345,50.474457,87.986842,300 -http://irail.be/stations/NMBS/008814258,Braine-l'Alleud,,Eigenbrakel,,,be,4.375526,50.684778,179.982456,240 -http://irail.be/stations/NMBS/008883006,Braine-le-Comte,,'s Gravenbrakel,,,be,4.137662,50.605079,204.570175,300 -http://irail.be/stations/NMBS/008400131,Breda,,,,,nl,4.7764000000,51.5944590000,47.912281,300 -http://irail.be/stations/NMBS/008843901,Bressoux,,,,,be,5.611057,50.643967,39.052632,300 -http://irail.be/stations/NMBS/008886066,Brugelette,,,,,be,3.852551,50.594229,36.942982,300 -http://irail.be/stations/NMBS/008891009,Brugge,Bruges,,,,be,3.216726,51.197226,284.52193,180 -http://irail.be/stations/NMBS/008891033,Brugge-Sint-Pieters,Bruges-Saint-Pierre,,,,be,3.201795,51.223115,108.552632,300 -http://irail.be/stations/NMBS/008813003,Brussel-Centraal/Bruxelles-Central,Bruxelles-Central,Brussel-Centraal,,Brussels-Central,be,4.356801,50.845658,980.135965,300 -http://irail.be/stations/NMBS/008813045,Brussel-Congres/Bruxelles-Congrès,Bruxelles-Congrès,Brussel-Congres,,Brussels-Congres,be,4.362051,50.852067,980.135965,300 -http://irail.be/stations/NMBS/008813037,Brussel-Kapellekerk/Bruxelles-Chapelle,Bruxelles-Chapelle,Brussel-Kapellekerk,,Brussels-Chapelle/Brussels-Kapellekerk,be,4.347866,50.841127,980.135965,300 -http://irail.be/stations/NMBS/008811304,Brussel-Luxemburg/Bruxelles-Luxembourg,Bruxelles-Luxembourg,Brussel-Luxemburg,,Brussels-Luxemburg/Brussels-Luxembourg,be,4.373674,50.838943,301.942982,300 -http://irail.be/stations/NMBS/008812005,Brussel-Noord/Bruxelles-Nord,Bruxelles-Nord,Brussel-Noord,,Brussels-North,be,4.360846,50.859663,990.333333,300 -http://irail.be/stations/NMBS/008811916,Brussel-Schuman/Bruxelles-Schuman,Bruxelles-Schuman,Brussel-Schuman,,Brussels-Schuman,be,4.380722,50.843276,284.100877,300 -http://irail.be/stations/NMBS/008815040,Brussel-West/Bruxelles-Ouest,Bruxelles-Ouest,Brussel-West,,Brussels-West,be,4.321042,50.848552,37.026316,300 -http://irail.be/stations/NMBS/008814001,Brussel-Zuid/Bruxelles-Midi,Bruxelles-Midi,Brussel-Zuid,,Brussels-South/Brussels-Midi,be,4.336531,50.835707,1030.52193,300 -http://irail.be/stations/NMBS/008819406,Brussels Airport - Zaventem,,,,,be,4.482076,50.896456,316.846491,3540 -http://irail.be/stations/NMBS/008811148,Buda,,,,,be,4.417074,50.907495,200.570175,300 -http://irail.be/stations/NMBS/008822145,Buggenhout,,,,,be,4.201666,51.016291,63.754386,300 -http://irail.be/stations/NMBS/008814340,Buizingen,,,,,be,4.258558,50.751577,224.096491,300 -http://irail.be/stations/NMBS/008895455,Burst,,,,,be,3.922416,50.907198,118.662281,300 +http://irail.be/stations/NMBS/008884319,Boussu,,,,,be,3.797025,50.436388,32.828571,300 +http://irail.be/stations/NMBS/008821725,Bouwel,,,,,be,4.746511,51.165764,118.171429,300 +http://irail.be/stations/NMBS/008881463,Bracquegnies,,,,,be,4.126345,50.474457,87.782857,300 +http://irail.be/stations/NMBS/008814258,Braine-l'Alleud,,Eigenbrakel,,,be,4.375526,50.684778,164.097143,240 +http://irail.be/stations/NMBS/008883006,Braine-le-Comte,,'s Gravenbrakel,,,be,4.137662,50.605079,206.497143,300 +http://irail.be/stations/NMBS/008400131,Breda,,,,,nl,4.7764000000,51.5944590000,47.914286,300 +http://irail.be/stations/NMBS/008843901,Bressoux,,,,,be,5.611057,50.643967,38.857143,300 +http://irail.be/stations/NMBS/008886066,Brugelette,,,,,be,3.852551,50.594229,36.64,300 +http://irail.be/stations/NMBS/008891009,Brugge,Bruges,,,,be,3.216726,51.197226,283.954286,180 +http://irail.be/stations/NMBS/008891033,Brugge-Sint-Pieters,Bruges-Saint-Pierre,,,,be,3.201795,51.223115,107.645714,300 +http://irail.be/stations/NMBS/008813003,Brussel-Centraal/Bruxelles-Central,Bruxelles-Central,Brussel-Centraal,,Brussels-Central,be,4.356801,50.845658,970.954286,300 +http://irail.be/stations/NMBS/008813045,Brussel-Congres/Bruxelles-Congrès,Bruxelles-Congrès,Brussel-Congres,,Brussels-Congres,be,4.362051,50.852067,970.954286,300 +http://irail.be/stations/NMBS/008813037,Brussel-Kapellekerk/Bruxelles-Chapelle,Bruxelles-Chapelle,Brussel-Kapellekerk,,Brussels-Chapelle/Brussels-Kapellekerk,be,4.347866,50.841127,970.954286,300 +http://irail.be/stations/NMBS/008811304,Brussel-Luxemburg/Bruxelles-Luxembourg,Bruxelles-Luxembourg,Brussel-Luxemburg,,Brussels-Luxemburg/Brussels-Luxembourg,be,4.373674,50.838943,295.514286,300 +http://irail.be/stations/NMBS/008812005,Brussel-Noord/Bruxelles-Nord,Bruxelles-Nord,Brussel-Noord,,Brussels-North,be,4.360846,50.859663,979.971429,300 +http://irail.be/stations/NMBS/008811916,Brussel-Schuman/Bruxelles-Schuman,Bruxelles-Schuman,Brussel-Schuman,,Brussels-Schuman,be,4.380722,50.843276,268.177143,300 +http://irail.be/stations/NMBS/008815040,Brussel-West/Bruxelles-Ouest,Bruxelles-Ouest,Brussel-West,,Brussels-West,be,4.321042,50.848552,37.268571,300 +http://irail.be/stations/NMBS/008814001,Brussel-Zuid/Bruxelles-Midi,Bruxelles-Midi,Brussel-Zuid,,Brussels-South/Brussels-Midi,be,4.336531,50.835707,1015.371429,300 +http://irail.be/stations/NMBS/008819406,Brussels Airport - Zaventem,,,,,be,4.482076,50.896456,315.771429,3540 +http://irail.be/stations/NMBS/008811148,Buda,,,,,be,4.417074,50.907495,197.685714,300 +http://irail.be/stations/NMBS/008822145,Buggenhout,,,,,be,4.201666,51.016291,64.782857,300 +http://irail.be/stations/NMBS/008814340,Buizingen,,,,,be,4.258558,50.751577,224.417143,300 +http://irail.be/stations/NMBS/008895455,Burst,,,,,be,3.922416,50.907198,116.908571,300 http://irail.be/stations/NMBS/008778100,Béziers,,,,,fr,3.218794,43.336177,0, -http://irail.be/stations/NMBS/008884889,Callenelle,,,,,be,3.52618,50.527359,64.701754,300 -http://irail.be/stations/NMBS/008886074,Cambron-Casteau,,,,,be,3.874809,50.586759,38.390351,300 +http://irail.be/stations/NMBS/008884889,Callenelle,,,,,be,3.52618,50.527359,64.468571,300 +http://irail.be/stations/NMBS/008886074,Cambron-Casteau,,,,,be,3.874809,50.586759,37.205714,300 http://irail.be/stations/NMBS/008775762,Cannes,,,,,fr,7.019895,43.553742,0, -http://irail.be/stations/NMBS/008200518,Capellen,,,,,lu,5.99083300,49.6450000,33.679825,300 -http://irail.be/stations/NMBS/008865565,Carlsbourg,,,,,be,5.092784,49.905458,27.535088,300 -http://irail.be/stations/NMBS/008882248,Carnieres,,,,,be,4.263826,50.447957,88.508772,300 -http://irail.be/stations/NMBS/008811817,Ceroux-Mousty,,,,,be,4.569046,50.659941,32.881579,300 +http://irail.be/stations/NMBS/008200518,Capellen,,,,,lu,5.99083300,49.6450000,47.005714,300 +http://irail.be/stations/NMBS/008865565,Carlsbourg,,,,,be,5.092784,49.905458,27.64,300 +http://irail.be/stations/NMBS/008882248,Carnieres,,,,,be,4.263826,50.447957,88.097143,300 +http://irail.be/stations/NMBS/008811817,Ceroux-Mousty,,,,,be,4.569046,50.659941,32.674286,300 http://irail.be/stations/NMBS/008774100,Chambéry-Challes-les-Eaux,,,,,fr,5.919756,45.571498,0, -http://irail.be/stations/NMBS/008861317,Chapelle-Dieu,,,,,be,4.697627,50.557374,8.719298,300 -http://irail.be/stations/NMBS/008864824,Chapois,,,,,be,5.124255,50.262366,59.425439,300 -http://irail.be/stations/NMBS/008872066,Charleroi-Ouest,,Charleroi-West,,,be,4.436653,50.410948,32.925439,300 -http://irail.be/stations/NMBS/008872009,Charleroi-Sud,,Charleroi-Zuid,,,be,4.438567,50.40471,316.429825,300 -http://irail.be/stations/NMBS/008861523,Chastre,,,,,be,4.648888,50.608819,131.092105,300 -http://irail.be/stations/NMBS/008842051,Chaudfontaine,,,,,be,5.64373400,50.5869820,87.451754,300 -http://irail.be/stations/NMBS/008863438,Château-de-Seilles,,,,,be,5.081745,50.497209,88.364035,300 -http://irail.be/stations/NMBS/008874005,Châtelet,,,,,be,4.521861,50.410103,117.078947,300 -http://irail.be/stations/NMBS/008842036,Chênée,,,,,be,5.616073,50.608019,87.451754,300 -http://irail.be/stations/NMBS/008864501,Ciney,,,,,be,5.091409,50.29105,91.276316,240 -http://irail.be/stations/NMBS/008200134,Clervaux,,,,,lu,6.031393,50.054724,27.692982,300 +http://irail.be/stations/NMBS/008861317,Chapelle-Dieu,,,,,be,4.697627,50.557374,8.88,300 +http://irail.be/stations/NMBS/008864824,Chapois,,,,,be,5.124255,50.262366,60.222857,300 +http://irail.be/stations/NMBS/008872009,Charleroi-Central,,Charleroi-Centraal,,,be,4.438567,50.40471,302.348571,300 +http://irail.be/stations/NMBS/008872066,Charleroi-Ouest,,Charleroi-West,,,be,4.436653,50.410948,32.834286,300 +http://irail.be/stations/NMBS/008861523,Chastre,,,,,be,4.648888,50.608819,130.417143,300 +http://irail.be/stations/NMBS/008842051,Chaudfontaine,,,,,be,5.64373400,50.5869820,88.64,300 +http://irail.be/stations/NMBS/008863438,Château-de-Seilles,,,,,be,5.081745,50.497209,88.885714,300 +http://irail.be/stations/NMBS/008874005,Châtelet,,,,,be,4.521861,50.410103,107.462857,300 +http://irail.be/stations/NMBS/008842036,Chênée,,,,,be,5.616073,50.608019,88.64,300 +http://irail.be/stations/NMBS/008864501,Ciney,,,,,be,5.091409,50.29105,93.314286,240 +http://irail.be/stations/NMBS/008200134,Clervaux,,,,,lu,6.031393,50.054724,26.411429,300 http://irail.be/stations/NMBS/008718201,Colmar,,,,,fr,7.366668,48.083335,0, -http://irail.be/stations/NMBS/008842838,Comblain-la-Tour,,,,,be,5.566956,50.456865,30.495614,300 -http://irail.be/stations/NMBS/008896412,Comines,,Komen,Comines / Komen,Komen / Comines,be,2.999286,50.772072,41.425439,300 -http://irail.be/stations/NMBS/008845229,Coo,,,,,be,5.880473,50.391127,31.535088,300 -http://irail.be/stations/NMBS/008874054,Couillet,,,,,be,4.46851,50.392718,117.078947,300 -http://irail.be/stations/NMBS/008873379,Cour-sur-Heure,,,,,be,4.391491,50.300138,34.315789,300 -http://irail.be/stations/NMBS/008871225,Courcelles-Motte,,,,,be,4.400534,50.462007,98.127193,300 -http://irail.be/stations/NMBS/008864949,Courrière,,,,,be,4.996051,50.387442,74.254386,300 -http://irail.be/stations/NMBS/008811825,Court-Saint-Étienne,,,,,be,4.565819,50.645567,32.881579,300 -http://irail.be/stations/NMBS/008875127,Couvin,,,,,be,4.491702,50.056324,32.372807,300 -http://irail.be/stations/NMBS/008728671,Croix Wasquehal,,,,,fr,3.15000000,50.6666670,8.236842,300 -http://irail.be/stations/NMBS/008728105,Croix l'Allumette,,,,,fr,3.13381,50.675708,7.504386,300 -http://irail.be/stations/NMBS/008863362,Dave-Saint-Martin,,,,,be,4.884414,50.429098,74.254386,300 -http://irail.be/stations/NMBS/008814175,De Hoek,,,,,be,4.370717,50.738812,179.982456,300 -http://irail.be/stations/NMBS/008892338,De Panne,La Panne,,,,be,2.601963,51.0774,37.776316,300 -http://irail.be/stations/NMBS/008892080,De Pinte,,,,,be,3.650465,50.997063,160.096491,300 -http://irail.be/stations/NMBS/008892106,Deinze,,,,,be,3.534432,50.978258,124.482456,300 -http://irail.be/stations/NMBS/008811205,Delta,,,,,be,4.403869,50.818357,40.065789,300 +http://irail.be/stations/NMBS/008842838,Comblain-la-Tour,,,,,be,5.566956,50.456865,30.674286,300 +http://irail.be/stations/NMBS/008896412,Comines,,Komen,Comines / Komen,Komen / Comines,be,2.999286,50.772072,41.622857,300 +http://irail.be/stations/NMBS/008845229,Coo,,,,,be,5.880473,50.391127,31.668571,300 +http://irail.be/stations/NMBS/008874054,Couillet,,,,,be,4.46851,50.392718,107.011429,300 +http://irail.be/stations/NMBS/008873379,Cour-sur-Heure,,,,,be,4.391491,50.300138,34.485714,300 +http://irail.be/stations/NMBS/008871225,Courcelles-Motte,,,,,be,4.400534,50.462007,97.428571,300 +http://irail.be/stations/NMBS/008864949,Courrière,,,,,be,4.996051,50.387442,74.371429,300 +http://irail.be/stations/NMBS/008811825,Court-Saint-Étienne,,,,,be,4.565819,50.645567,32.674286,300 +http://irail.be/stations/NMBS/008875127,Couvin,,,,,be,4.491702,50.056324,32.697143,300 +http://irail.be/stations/NMBS/008728671,Croix Wasquehal,,,,,fr,3.15000000,50.6666670,8.04,300 +http://irail.be/stations/NMBS/008728105,Croix l'Allumette,,,,,fr,3.13381,50.675708,7.285714,300 +http://irail.be/stations/NMBS/008863362,Dave-Saint-Martin,,,,,be,4.884414,50.429098,74.371429,300 +http://irail.be/stations/NMBS/008814175,De Hoek,,,,,be,4.370717,50.738812,164.097143,300 +http://irail.be/stations/NMBS/008892338,De Panne,La Panne,,,,be,2.601963,51.0774,37.262857,300 +http://irail.be/stations/NMBS/008892080,De Pinte,,,,,be,3.650465,50.997063,157.348571,300 +http://irail.be/stations/NMBS/008892106,Deinze,,,,,be,3.534432,50.978258,126.782857,300 +http://irail.be/stations/NMBS/008811205,Delta,,,,,be,4.403869,50.818357,42.417143,300 http://irail.be/stations/NMBS/008400280,Den Haag HS,,,,,nl,4.299999,52.083329,0, -http://irail.be/stations/NMBS/008895802,Denderleeuw,,,,,be,4.071825,50.891925,294.526316,240 -http://irail.be/stations/NMBS/008893401,Dendermonde,Termonde,,,,be,4.101427,51.022781,171.627193,240 -http://irail.be/stations/NMBS/008811213,Diegem,,,,,be,4.442774,50.890478,368.653509,300 -http://irail.be/stations/NMBS/008831112,Diepenbeek,,,,,be,5.419947,50.910452,61.307018,300 -http://irail.be/stations/NMBS/008814464,Diesdelle/Vivier d'Oie,Vivier d'Oie,Diesdelle,,,be,4.374052,50.796145,124.675439,240 -http://irail.be/stations/NMBS/008831401,Diest,,,,,be,5.050031,50.993341,126.947368,240 -http://irail.be/stations/NMBS/008892452,Diksmuide,Dixmude,,,,be,2.868943,51.032723,37.776316,60 -http://irail.be/stations/NMBS/008812237,Dilbeek,,,,,be,4.243393,50.866728,58.035088,300 -http://irail.be/stations/NMBS/008863503,Dinant,,,,,be,4.908182,50.260721,62.557018,240 -http://irail.be/stations/NMBS/008200714,Dippach-Reckange,,,,,lu,5.99526700,49.5725600,74.320175,300 -http://irail.be/stations/NMBS/008844545,Dolhain-Gileppe,,,,,be,5.936494,50.616244,82.75,300 +http://irail.be/stations/NMBS/008895802,Denderleeuw,,,,,be,4.071825,50.891925,300.034286,240 +http://irail.be/stations/NMBS/008893401,Dendermonde,Termonde,,,,be,4.101427,51.022781,170.188571,240 +http://irail.be/stations/NMBS/008811213,Diegem,,,,,be,4.442774,50.890478,371.228571,300 +http://irail.be/stations/NMBS/008831112,Diepenbeek,,,,,be,5.419947,50.910452,61.337143,300 +http://irail.be/stations/NMBS/008814464,Diesdelle/Vivier d'Oie,Vivier d'Oie,Diesdelle,,,be,4.374052,50.796145,85.965714,240 +http://irail.be/stations/NMBS/008831401,Diest,,,,,be,5.050031,50.993341,127.114286,240 +http://irail.be/stations/NMBS/008892452,Diksmuide,Dixmude,,,,be,2.868943,51.032723,37.262857,60 +http://irail.be/stations/NMBS/008812237,Dilbeek,,,,,be,4.243393,50.866728,59.097143,300 +http://irail.be/stations/NMBS/008863503,Dinant,,,,,be,4.908182,50.260721,63.651429,240 +http://irail.be/stations/NMBS/008200714,Dippach-Reckange,,,,,lu,5.99526700,49.5725600,50.931429,300 +http://irail.be/stations/NMBS/008844545,Dolhain-Gileppe,,,,,be,5.936494,50.616244,82.542857,300 http://irail.be/stations/NMBS/008200101,Dommeldange,,,,,lu,6.13668,49.633838,0, http://irail.be/stations/NMBS/008400180,Dordrecht,,,,,nl,4.666668,51.799998,0, http://irail.be/stations/NMBS/008010053,Dortmund Hbf,,,,,de,7.459293,51.517898,0, -http://irail.be/stations/NMBS/008200133,Drauffelt,,,,,lu,6.006106,50.017778,27.692982,300 -http://irail.be/stations/NMBS/008892031,Drongen,Tronchiennes,,,,be,3.655202,51.047295,186.412281,300 +http://irail.be/stations/NMBS/008200133,Drauffelt,,,,,lu,6.006106,50.017778,0.114286,300 +http://irail.be/stations/NMBS/008892031,Drongen,Tronchiennes,,,,be,3.655202,51.047295,188.16,300 http://irail.be/stations/NMBS/008015653,Duesseldorf Flughafen (DE),,,,,de,6.76705200,51.2765600,0, http://irail.be/stations/NMBS/008008094,Duesseldorf Hbf,Düsseldorf Hbf,Düsseldorf Hbf,Düsseldorf Hbf,Dusseldorf Hbf,de,6.795297,51.219178,0, -http://irail.be/stations/NMBS/008822210,Duffel,,,,,be,4.493186,51.091243,272.25,300 -http://irail.be/stations/NMBS/008891652,Duinbergen,,,,,be,3.263587,51.338195,39.048246,300 +http://irail.be/stations/NMBS/008822210,Duffel,,,,,be,4.493186,51.091243,271.12,300 +http://irail.be/stations/NMBS/008891652,Duinbergen,,,,,be,3.263587,51.338195,39.451429,300 http://irail.be/stations/NMBS/008010316,Duisburg Hbf,,,,,de,6.7759037,51.42978,0, http://irail.be/stations/NMBS/008039904,Düsseldorf Flughafen Hbf,,,,,de,6.786837,51.292008,0, http://irail.be/stations/NMBS/007015440,Ebbsfleet International,,,,,gb,0.27577500,51.4511700,0, -http://irail.be/stations/NMBS/008895877,Ede,,,,,be,3.987524,50.911054,111.355263,300 -http://irail.be/stations/NMBS/008893708,Eeklo,,,,,be,3.574515,51.181333,32.328947,300 -http://irail.be/stations/NMBS/008895752,Eichem,,,,,be,3.993745,50.823994,47.653509,300 -http://irail.be/stations/NMBS/008400219,Eijsden,,,,,nl,5.709786,50.772135,52.565789,300 -http://irail.be/stations/NMBS/008892627,Eine,,,,,be,3.623776,50.870432,37.583333,300 -http://irail.be/stations/NMBS/008892650,Eke-Nazareth,,,,,be,3.627839,50.960774,37.583333,300 -http://irail.be/stations/NMBS/008821071,Ekeren,,,,,be,4.434154,51.281626,83.644737,300 -http://irail.be/stations/NMBS/008883311,Enghien,,Edingen,Enghien / Edingen,Edingen / Enghien,be,4.047357,50.697273,136.675439,300 -http://irail.be/stations/NMBS/008843240,Engis,,,,,be,5.401986,50.582957,90.583333,300 -http://irail.be/stations/NMBS/008822269,Eppegem,,,,,be,4.45749,50.9584,269.675439,300 -http://irail.be/stations/NMBS/008881158,Erbisœul,Erbisoeul,Erbisoeul,Erbisoeul,Erbisoeul,be,3.887987,50.507025,103.557018,300 -http://irail.be/stations/NMBS/008895091,Erembodegem,,,,,be,4.055447,50.919621,134.096491,300 -http://irail.be/stations/NMBS/008861515,Ernage,,,,,be,4.668538,50.590823,131.092105,300 -http://irail.be/stations/NMBS/008895471,Erpe-Mere,,,,,be,3.962463,50.928601,7.307018,300 -http://irail.be/stations/NMBS/008811262,Erps-Kwerps,,,,,be,4.585001,50.89651,330.039474,300 -http://irail.be/stations/NMBS/008871605,Erquelinnes,,,,,be,4.113562,50.304192,34.776316,300 -http://irail.be/stations/NMBS/008879004,Erquelinnes-Frontière,,,,,be,4.10792900,50.3023300,5.947368,120 -http://irail.be/stations/NMBS/008871647,Erquelinnes-Village,,,,,be,4.132314,50.310179,34.776316,300 -http://irail.be/stations/NMBS/008842663,Esneux,,,,,be,5.572565,50.530568,61.960526,300 -http://irail.be/stations/NMBS/008821402,Essen,,,,,be,4.451314,51.462767,88.942982,240 +http://irail.be/stations/NMBS/008895877,Ede,,,,,be,3.987524,50.911054,110.188571,300 +http://irail.be/stations/NMBS/008893708,Eeklo,,,,,be,3.574515,51.181333,32.245714,300 +http://irail.be/stations/NMBS/008895752,Eichem,,,,,be,3.993745,50.823994,47.245714,300 +http://irail.be/stations/NMBS/008400219,Eijsden,,,,,nl,5.709786,50.772135,52.028571,300 +http://irail.be/stations/NMBS/008892627,Eine,,,,,be,3.623776,50.870432,37.331429,300 +http://irail.be/stations/NMBS/008892650,Eke-Nazareth,,,,,be,3.627839,50.960774,37.331429,300 +http://irail.be/stations/NMBS/008821071,Ekeren,,,,,be,4.434154,51.281626,75.022857,300 +http://irail.be/stations/NMBS/008883311,Enghien,,Edingen,Enghien / Edingen,Edingen / Enghien,be,4.047357,50.697273,138.485714,300 +http://irail.be/stations/NMBS/008843240,Engis,,,,,be,5.401986,50.582957,90.977143,300 +http://irail.be/stations/NMBS/008822269,Eppegem,,,,,be,4.45749,50.9584,265.834286,300 +http://irail.be/stations/NMBS/008881158,Erbisœul,Erbisoeul,Erbisoeul,Erbisoeul,Erbisoeul,be,3.887987,50.507025,103.32,300 +http://irail.be/stations/NMBS/008895091,Erembodegem,,,,,be,4.055447,50.919621,125.737143,300 +http://irail.be/stations/NMBS/008861515,Ernage,,,,,be,4.668538,50.590823,130.417143,300 +http://irail.be/stations/NMBS/008895471,Erpe-Mere,,,,,be,3.962463,50.928601,6.72,300 +http://irail.be/stations/NMBS/008811262,Erps-Kwerps,,,,,be,4.585001,50.89651,330.102857,300 +http://irail.be/stations/NMBS/008871605,Erquelinnes,,,,,be,4.113562,50.304192,30.525714,300 +http://irail.be/stations/NMBS/008879004,Erquelinnes-Frontière,,,,,be,4.10792900,50.3023300,25.868571,120 +http://irail.be/stations/NMBS/008871647,Erquelinnes-Village,,,,,be,4.132314,50.310179,30.525714,300 +http://irail.be/stations/NMBS/008842663,Esneux,,,,,be,5.572565,50.530568,62.257143,300 +http://irail.be/stations/NMBS/008821402,Essen,,,,,be,4.451314,51.462767,75.828571,240 http://irail.be/stations/NMBS/008010184,Essen Hbf,,,,,de,6.77611800,51.4295200,0, -http://irail.be/stations/NMBS/008829009,Essen-Grens,,,,,be,4.44893000,51.4690900,51.789474,120 -http://irail.be/stations/NMBS/008812260,Essene-Lombeek,,,,,be,4.115171,50.882451,58.035088,300 -http://irail.be/stations/NMBS/008200120,Ettelbréck,Ettelbruck,Ettelbruck,Ettelbrück,,lu,6.104169,49.847496,27.692982,300 -http://irail.be/stations/NMBS/008811411,Etterbeek,,,,,be,4.389513,50.822187,285.372807,300 -http://irail.be/stations/NMBS/008844628,Eupen,,,,,be,6.03711,50.635157,33.214912,300 -http://irail.be/stations/NMBS/008811106,Evere,,,,,be,4.400965,50.86778,167.714912,300 -http://irail.be/stations/NMBS/008893252,Evergem,,,,,be,3.70138,51.107585,32.328947,300 -http://irail.be/stations/NMBS/008833449,Ezemaal,,,,,be,4.994217,50.772126,128.77193,300 -http://irail.be/stations/NMBS/008883238,Familleureux,,,,,be,4.211581,50.519358,59.539474,300 -http://irail.be/stations/NMBS/008874567,Farciennes,,,,,be,4.55265000,50.4291480,115.885965,300 -http://irail.be/stations/NMBS/008872611,Faux,,,,,be,4.54926,50.621826,32.881579,300 -http://irail.be/stations/NMBS/008841467,Fexhe-le-Haut-Clocher,,,,,be,5.398453,50.664049,64.578947,300 -http://irail.be/stations/NMBS/008861127,Flawinne,,,,,be,4.806298,50.456236,111.412281,300 -http://irail.be/stations/NMBS/008843166,Flemalle-Grande,,,,,be,5.480983,50.605349,86.153509,300 -http://irail.be/stations/NMBS/008843208,Flemalle-Haute,,,,,be,5.457656,50.595308,149.188596,240 -http://irail.be/stations/NMBS/008872413,Fleurus,,,,,be,4.543741,50.481927,38.77193,300 -http://irail.be/stations/NMBS/008861135,Floreffe,,,,,be,4.762368,50.443328,111.412281,300 -http://irail.be/stations/NMBS/008866845,Florenville,,,,,be,5.331115,49.706967,29.741228,300 -http://irail.be/stations/NMBS/008811767,Florival,,,,,be,4.653868,50.761501,54.578947,300 +http://irail.be/stations/NMBS/008829009,Essen-Grens,,,,,be,4.44893000,51.4690900,51.297143,120 +http://irail.be/stations/NMBS/008812260,Essene-Lombeek,,,,,be,4.115171,50.882451,53.451429,300 +http://irail.be/stations/NMBS/008200120,Ettelbréck,Ettelbruck,Ettelbruck,Ettelbrück,,lu,6.104169,49.847496,0.114286,300 +http://irail.be/stations/NMBS/008811411,Etterbeek,,,,,be,4.389513,50.822187,268.44,300 +http://irail.be/stations/NMBS/008844628,Eupen,,,,,be,6.03711,50.635157,32.697143,300 +http://irail.be/stations/NMBS/008811106,Evere,,,,,be,4.400965,50.86778,156.28,300 +http://irail.be/stations/NMBS/008893252,Evergem,,,,,be,3.70138,51.107585,32.245714,300 +http://irail.be/stations/NMBS/008833449,Ezemaal,,,,,be,4.994217,50.772126,127.737143,300 +http://irail.be/stations/NMBS/008883238,Familleureux,,,,,be,4.211581,50.519358,59.44,300 +http://irail.be/stations/NMBS/008874567,Farciennes,,,,,be,4.55265000,50.4291480,107.022857,300 +http://irail.be/stations/NMBS/008872611,Faux,,,,,be,4.54926,50.621826,32.674286,300 +http://irail.be/stations/NMBS/008841467,Fexhe-le-Haut-Clocher,,,,,be,5.398453,50.664049,63.428571,300 +http://irail.be/stations/NMBS/008861127,Flawinne,,,,,be,4.806298,50.456236,103.24,300 +http://irail.be/stations/NMBS/008843166,Flemalle-Grande,,,,,be,5.480983,50.605349,84.885714,300 +http://irail.be/stations/NMBS/008843208,Flemalle-Haute,,,,,be,5.457656,50.595308,145.737143,240 +http://irail.be/stations/NMBS/008872413,Fleurus,,,,,be,4.543741,50.481927,37.725714,300 +http://irail.be/stations/NMBS/008861135,Floreffe,,,,,be,4.762368,50.443328,103.24,300 +http://irail.be/stations/NMBS/008866845,Florenville,,,,,be,5.331115,49.706967,13.582857,300 +http://irail.be/stations/NMBS/008811767,Florival,,,,,be,4.653868,50.761501,54.857143,300 http://irail.be/stations/NMBS/008864923,Florée,,,,,be,5.056099,50.357786,0, -http://irail.be/stations/NMBS/008871688,Fontaine-Valmont,,,,,be,4.212785,50.321164,34.776316,300 -http://irail.be/stations/NMBS/008871514,Forchies,,,,,be,4.325384,50.433314,88.429825,300 -http://irail.be/stations/NMBS/008864311,Forrières,,,,,be,5.276784,50.132759,53.429825,300 -http://irail.be/stations/NMBS/008844255,Fraipont,,,,,be,5.723665,50.565059,87.451754,300 -http://irail.be/stations/NMBS/008881570,Frameries,,,,,be,3.906586,50.405932,38.122807,300 -http://irail.be/stations/NMBS/008844347,Franchimont,,,,,be,5.822223,50.525723,31.52193,300 -http://irail.be/stations/NMBS/008861143,Franière,,,,,be,4.733548,50.439543,111.412281,300 +http://irail.be/stations/NMBS/008871688,Fontaine-Valmont,,,,,be,4.212785,50.321164,30.525714,300 +http://irail.be/stations/NMBS/008871514,Forchies,,,,,be,4.325384,50.433314,88.097143,300 +http://irail.be/stations/NMBS/008864311,Forrières,,,,,be,5.276784,50.132759,55.102857,300 +http://irail.be/stations/NMBS/008844255,Fraipont,,,,,be,5.723665,50.565059,88.64,300 +http://irail.be/stations/NMBS/008881570,Frameries,,,,,be,3.906586,50.405932,33.788571,300 +http://irail.be/stations/NMBS/008844347,Franchimont,,,,,be,5.822223,50.525723,31.502857,300 +http://irail.be/stations/NMBS/008861143,Franière,,,,,be,4.733548,50.439543,103.24,300 http://irail.be/stations/NMBS/008061676,Frankfurt am Main Flughafen Fernbf,,,,,de,8.66361100,50.1308300,0, http://irail.be/stations/NMBS/008011090,Frankfurt am Main Flughafen Reginalbf,,,,,de,8.569853,50.051696,0, http://irail.be/stations/NMBS/008011068,Frankfurt am Main Hbf,Francfort-sur-le-Main Hbf,,,,de,8.6653708,50.1071318,0, -http://irail.be/stations/NMBS/008885068,Froyennes,,,,,be,3.354837,50.62989,85.618421,300 -http://irail.be/stations/NMBS/008895620,Galmaarden,Gammerages,,,,be,3.965726,50.743918,40.95614,300 -http://irail.be/stations/NMBS/008811742,Gastuche,,,,,be,4.649598,50.736646,54.578947,300 -http://irail.be/stations/NMBS/008892643,Gavere-Asper,,,,,be,3.639732,50.930021,37.583333,300 -http://irail.be/stations/NMBS/008865649,Gedinne,,,,,be,4.978073,49.984123,27.535088,300 -http://irail.be/stations/NMBS/008832433,Geel,,,,,be,4.988608,51.168955,61.162281,300 -http://irail.be/stations/NMBS/008861200,Gembloux,,,,,be,4.691497,50.570489,149.442982,240 -http://irail.be/stations/NMBS/008863834,Gendron-Celles,,,,,be,4.964607,50.211235,27.824561,300 -http://irail.be/stations/NMBS/008831765,Genk,,,,,be,5.497685,50.967057,42.092105,300 -http://irail.be/stations/NMBS/008881562,Genly,,,,,be,3.911638,50.390642,38.122807,300 -http://irail.be/stations/NMBS/008893120,Gent-Dampoort,Gand-Dampoort,,,Ghent-Dampoort,be,3.740591,51.056365,167.460526,240 -http://irail.be/stations/NMBS/008892007,Gent-Sint-Pieters,Gand-Saint-Pierre,,,Ghent-Sint-Pieters,be,3.710675,51.035896,530.609649,300 -http://irail.be/stations/NMBS/008893179,Gentbrugge,,,,,be,3.756322,51.038647,162.517544,300 -http://irail.be/stations/NMBS/008811528,Genval,,,,,be,4.514832,50.725697,159.192982,300 -http://irail.be/stations/NMBS/008895505,Geraardsbergen,Grammont,,,,be,3.872328,50.771137,159.846491,300 -http://irail.be/stations/NMBS/008881125,Ghlin,,,,,be,3.906343,50.487411,103.557018,300 -http://irail.be/stations/NMBS/008841731,Glons,,Glaaien,,,be,5.535431,50.750426,30.701754,300 -http://irail.be/stations/NMBS/008871381,Godarville,,,,,be,4.290308,50.492795,31.219298,300 -http://irail.be/stations/NMBS/008863560,Godinne,,,,,be,4.86996,50.348914,60.846491,300 +http://irail.be/stations/NMBS/008885068,Froyennes,,,,,be,3.354837,50.62989,85.24,300 +http://irail.be/stations/NMBS/008895620,Galmaarden,Gammerages,,,,be,3.965726,50.743918,40.04,300 +http://irail.be/stations/NMBS/008811742,Gastuche,,,,,be,4.649598,50.736646,54.857143,300 +http://irail.be/stations/NMBS/008892643,Gavere-Asper,,,,,be,3.639732,50.930021,37.331429,300 +http://irail.be/stations/NMBS/008865649,Gedinne,,,,,be,4.978073,49.984123,27.64,300 +http://irail.be/stations/NMBS/008832433,Geel,,,,,be,4.988608,51.168955,60.84,300 +http://irail.be/stations/NMBS/008861200,Gembloux,,,,,be,4.691497,50.570489,143.514286,240 +http://irail.be/stations/NMBS/008863834,Gendron-Celles,,,,,be,4.964607,50.211235,28.497143,300 +http://irail.be/stations/NMBS/008831765,Genk,,,,,be,5.497685,50.967057,41.851429,300 +http://irail.be/stations/NMBS/008881562,Genly,,,,,be,3.911638,50.390642,33.788571,300 +http://irail.be/stations/NMBS/008893120,Gent-Dampoort,Gand-Dampoort,,,Ghent-Dampoort,be,3.740591,51.056365,152.382857,240 +http://irail.be/stations/NMBS/008892007,Gent-Sint-Pieters,Gand-Saint-Pierre,,,Ghent-Sint-Pieters,be,3.710675,51.035896,535.731429,300 +http://irail.be/stations/NMBS/008893179,Gentbrugge,,,,,be,3.756322,51.038647,151.868571,300 +http://irail.be/stations/NMBS/008811528,Genval,,,,,be,4.514832,50.725697,157.028571,300 +http://irail.be/stations/NMBS/008895505,Geraardsbergen,Grammont,,,,be,3.872328,50.771137,153.188571,300 +http://irail.be/stations/NMBS/008881125,Ghlin,,,,,be,3.906343,50.487411,103.32,300 +http://irail.be/stations/NMBS/008841731,Glons,,Glaaien,,,be,5.535431,50.750426,30.24,300 +http://irail.be/stations/NMBS/008871381,Godarville,,,,,be,4.290308,50.492795,31.165714,300 +http://irail.be/stations/NMBS/008863560,Godinne,,,,,be,4.86996,50.348914,60.788571,300 http://irail.be/stations/NMBS/008200129,Goebelsmühle,,,,,lu,6.053335,49.92104,0, -http://irail.be/stations/NMBS/008893047,Gontrode,,,,,be,3.801672,50.980199,42.280702,300 -http://irail.be/stations/NMBS/008845005,Gouvy,,,,,be,5.953906,50.189409,33.640351,180 -http://irail.be/stations/NMBS/008849072,Gouvy-Frontiere,,,,,be,5.96861300,50.1716530,41.736842,120 -http://irail.be/stations/NMBS/008871373,Gouy-lez-Pieton,,,,,be,4.325123,50.497065,31.219298,300 -http://irail.be/stations/NMBS/008865615,Graide,,,,,be,5.043047,49.934134,27.535088,300 -http://irail.be/stations/NMBS/008811445,Groenendaal,Groenendael,,,,be,4.449489,50.766103,159.192982,300 -http://irail.be/stations/NMBS/008812229,Groot-Bijgaarden,Grand-Bigard,,,,be,4.273543,50.868337,58.035088,300 -http://irail.be/stations/NMBS/008864337,Grupont,,,,,be,5.280524,50.0906,53.429825,300 -http://irail.be/stations/NMBS/008822517,Haacht,,,,,be,4.613309,50.966428,66.77193,300 -http://irail.be/stations/NMBS/008895869,Haaltert,,,,,be,4.023958,50.906838,111.355263,300 -http://irail.be/stations/NMBS/008866142,Habay,,,,,be,5.632685,49.718249,61.758772,300 -http://irail.be/stations/NMBS/008884327,Hainin,,,,,be,3.766893,50.428019,32.929825,300 -http://irail.be/stations/NMBS/008866530,Halanzy,,,,,be,5.741347,49.5562,29.736842,300 -http://irail.be/stations/NMBS/008814308,Halle,Hal,,,,be,4.240634,50.733931,361.399123,300 -http://irail.be/stations/NMBS/008873387,Ham-sur-Heure,,,,,be,4.404696,50.319555,34.315789,300 -http://irail.be/stations/NMBS/008861168,Ham-sur-Sambre,,,,,be,4.669392,50.45255,111.065789,300 -http://irail.be/stations/NMBS/008822533,Hambos,,,,,be,4.66301,50.944251,66.77193,300 -http://irail.be/stations/NMBS/008842846,Hamoir,,,,,be,5.533561,50.428181,30.486842,300 -http://irail.be/stations/NMBS/008832664,Hamont,,,,,be,5.543279,51.246424,33.666667,300 -http://irail.be/stations/NMBS/008891165,Hansbeke,,,,,be,3.536212,51.073202,186.412281,300 -http://irail.be/stations/NMBS/008884640,Harchies,,,,,be,3.698764,50.482565,64.701754,300 -http://irail.be/stations/NMBS/008896115,Harelbeke,,,,,be,3.314008,50.85586,81.429825,300 -http://irail.be/stations/NMBS/008811155,Haren,,,,,be,4.419978,50.888878,167.714912,300 -http://irail.be/stations/NMBS/008811130,Haren-Sud/Haren-Zuid,Haren-Sud,Haren-Zuid,,,be,4.415357,50.889696,323.877193,300 -http://irail.be/stations/NMBS/008831005,Hasselt,,,,,be,5.327627,50.930822,232.495614,240 -http://irail.be/stations/NMBS/008843349,Haute-Flône,,,,,be,5.330333,50.55349,90.583333,300 +http://irail.be/stations/NMBS/008893047,Gontrode,,,,,be,3.801672,50.980199,42.108571,300 +http://irail.be/stations/NMBS/008845005,Gouvy,,,,,be,5.953906,50.189409,33.051429,180 +http://irail.be/stations/NMBS/008849072,Gouvy-Frontiere,,,,,be,5.96861300,50.1716530,39.405714,120 +http://irail.be/stations/NMBS/008871373,Gouy-lez-Pieton,,,,,be,4.325123,50.497065,31.165714,300 +http://irail.be/stations/NMBS/008865615,Graide,,,,,be,5.043047,49.934134,27.64,300 +http://irail.be/stations/NMBS/008811445,Groenendaal,Groenendael,,,,be,4.449489,50.766103,157.028571,300 +http://irail.be/stations/NMBS/008812229,Groot-Bijgaarden,Grand-Bigard,,,,be,4.273543,50.868337,59.097143,300 +http://irail.be/stations/NMBS/008864337,Grupont,,,,,be,5.280524,50.0906,55.102857,300 +http://irail.be/stations/NMBS/008822517,Haacht,,,,,be,4.613309,50.966428,66.468571,300 +http://irail.be/stations/NMBS/008895869,Haaltert,,,,,be,4.023958,50.906838,110.188571,300 +http://irail.be/stations/NMBS/008866142,Habay,,,,,be,5.632685,49.718249,62.874286,300 +http://irail.be/stations/NMBS/008884327,Hainin,,,,,be,3.766893,50.428019,32.828571,300 +http://irail.be/stations/NMBS/008866530,Halanzy,,,,,be,5.741347,49.5562,13.188571,300 +http://irail.be/stations/NMBS/008814308,Halle,Hal,,,,be,4.240634,50.733931,328.668571,300 +http://irail.be/stations/NMBS/008873387,Ham-sur-Heure,,,,,be,4.404696,50.319555,34.485714,300 +http://irail.be/stations/NMBS/008861168,Ham-sur-Sambre,,,,,be,4.669392,50.45255,102.817143,300 +http://irail.be/stations/NMBS/008822533,Hambos,,,,,be,4.66301,50.944251,66.468571,300 +http://irail.be/stations/NMBS/008842846,Hamoir,,,,,be,5.533561,50.428181,30.674286,300 +http://irail.be/stations/NMBS/008832664,Hamont,,,,,be,5.543279,51.246424,33.434286,300 +http://irail.be/stations/NMBS/008891165,Hansbeke,,,,,be,3.536212,51.073202,188.16,300 +http://irail.be/stations/NMBS/008884640,Harchies,,,,,be,3.698764,50.482565,64.468571,300 +http://irail.be/stations/NMBS/008896115,Harelbeke,,,,,be,3.314008,50.85586,82.085714,300 +http://irail.be/stations/NMBS/008811155,Haren,,,,,be,4.419978,50.888878,156.28,300 +http://irail.be/stations/NMBS/008811130,Haren-Sud/Haren-Zuid,Haren-Sud,Haren-Zuid,,,be,4.415357,50.889696,325.611429,300 +http://irail.be/stations/NMBS/008831005,Hasselt,,,,,be,5.327627,50.930822,236.76,240 +http://irail.be/stations/NMBS/008843349,Haute-Flône,,,,,be,5.330333,50.55349,90.977143,300 http://irail.be/stations/NMBS/008731388,Haute-Picardie TGV,,,,,fr,2.49565000,49.8589400,0, -http://irail.be/stations/NMBS/008864832,Haversin,,,,,be,5.194371,50.249044,59.425439,300 -http://irail.be/stations/NMBS/008881430,Havre,,,,,be,4.059987,50.470754,87.986842,300 -http://irail.be/stations/NMBS/008821519,Heide,,,,,be,4.460483,51.364623,83.644737,300 -http://irail.be/stations/NMBS/008891645,Heist,,,,,be,3.239181,51.333979,39.048246,300 -http://irail.be/stations/NMBS/008821832,Heist-op-den-Berg,,,,,be,4.708235,51.074146,96.140351,300 -http://irail.be/stations/NMBS/008812153,Heizijde,,,,,be,4.156171,50.989593,90.517544,300 -http://irail.be/stations/NMBS/008728606,Hellemmes,,,,,fr,3.108892,50.626941,6.197368,300 -http://irail.be/stations/NMBS/008824224,Hemiksem,,,,,be,4.338293,51.136243,56.100877,300 -http://irail.be/stations/NMBS/008883022,Hennuyères,,,,,be,4.175893,50.651005,162.951754,300 -http://irail.be/stations/NMBS/008811288,Herent,,,,,be,4.672188,50.90353,330.039474,300 -http://irail.be/stations/NMBS/008821717,Herentals,,,,,be,4.829535,51.181513,152.385965,180 -http://irail.be/stations/NMBS/008844644,Hergenrath,,,,,be,6.041335,50.718209,30,240 -http://irail.be/stations/NMBS/008849023,Hergenrath-Frontiere,,,,,be,6.04126900,50.7189550,45,120 -http://irail.be/stations/NMBS/008895646,Herne,,,,,be,4.014573,50.723701,40.95614,300 -http://irail.be/stations/NMBS/008885753,Herseaux,,,,,be,3.245959,50.713894,53.276316,300 -http://irail.be/stations/NMBS/008841608,Herstal,,,,,be,5.622761,50.660911,119.109649,300 -http://irail.be/stations/NMBS/008895430,Herzele,,,,,be,3.880616,50.89722,111.355263,300 -http://irail.be/stations/NMBS/008832243,Heusden,,,,,be,5.281782,51.038207,30.464912,300 -http://irail.be/stations/NMBS/008822459,Hever,,,,,be,4.537637,50.997791,66.77193,300 -http://irail.be/stations/NMBS/008833126,Heverlee,,,,,be,4.6952,50.86253,54.912281,300 -http://irail.be/stations/NMBS/008895422,Hillegem,,,,,be,3.857469,50.891296,111.355263,300 -http://irail.be/stations/NMBS/008824158,Hoboken-Polder,,,,,be,4.347785,51.182699,56.100877,300 -http://irail.be/stations/NMBS/008811460,Hoeilaart,,,,,be,4.467414,50.760161,159.192982,300 -http://irail.be/stations/NMBS/008822277,Hofstade,,,,,be,4.498336,50.988658,20.657895,300 -http://irail.be/stations/NMBS/008814159,Holleken,,,,,be,4.353952,50.767631,179.982456,300 -http://irail.be/stations/NMBS/008200710,Hollerich,,,,,lu,6.12093800,49.5951600,148.04386,300 -http://irail.be/stations/NMBS/008842655,Hony,,,,,be,5.573563,50.539917,61.960526,300 -http://irail.be/stations/NMBS/008886553,Houraing,,,,,be,3.835175,50.703062,37.561404,300 -http://irail.be/stations/NMBS/008871829,Hourpes,,,,,be,4.308736,50.363692,34.776316,300 -http://irail.be/stations/NMBS/008863842,Houyet,,,,,be,5.006074,50.189868,27.912281,300 -http://irail.be/stations/NMBS/008821337,Hove,,,,,be,4.465157,51.154114,245.504386,300 -http://irail.be/stations/NMBS/008814415,Huizingen,,,,,be,4.266487,50.7519,67.72807,300 -http://irail.be/stations/NMBS/008843307,Huy,,Hoei,,,be,5.234211,50.527242,93.013158,300 -http://irail.be/stations/NMBS/008895844,Iddergem,,,,,be,4.06849,50.876886,47.653509,300 -http://irail.be/stations/NMBS/008895729,Idegem,,,,,be,3.921553,50.801871,47.653509,300 -http://irail.be/stations/NMBS/008896503,Ieper,Ypres,,,,be,2.876593,50.847402,41.421053,300 -http://irail.be/stations/NMBS/008896925,Ingelmunster,,,,,be,3.255416,50.914326,69.22807,300 -http://irail.be/stations/NMBS/008896909,Izegem,,,,,be,3.212088,50.921149,69.22807,300 -http://irail.be/stations/NMBS/008863115,Jambes,,,,,be,4.876144,50.454843,98.030702,300 -http://irail.be/stations/NMBS/008863354,Jambes-Est,,,,,be,4.880261,50.454798,74.254386,300 -http://irail.be/stations/NMBS/008871175,Jamioulx,,,,,be,4.411294,50.352896,34.315789,300 -http://irail.be/stations/NMBS/008884566,Jemappes,,,,,be,3.885587,50.452577,100.416667,300 -http://irail.be/stations/NMBS/008843158,Jemeppe-sur-Meuse,,,,,be,5.497874,50.618446,86.153509,300 -http://irail.be/stations/NMBS/008874724,Jemeppe-sur-Sambre,,,,,be,4.662632,50.45095,122.192982,240 -http://irail.be/stations/NMBS/008812047,Jette,,,,,be,4.32622,50.880833,151.267544,300 -http://irail.be/stations/NMBS/008881166,Jurbeke,Jurbise,,Jurbise,Jurbise,be,3.910694,50.530496,123.236842,300 -http://irail.be/stations/NMBS/008844321,Juslenville,,,,,be,5.809935,50.544717,31.52193,300 -http://irail.be/stations/NMBS/008821444,Kalmthout,,,,,be,4.46682,51.391177,83.644737,300 -http://irail.be/stations/NMBS/008822053,Kapelle-op-den-Bos,,,,,be,4.359121,51.010843,63.754386,300 -http://irail.be/stations/NMBS/008821535,Kapellen,,,,,be,4.432661,51.313528,83.644737,300 -http://irail.be/stations/NMBS/008200130,Kautebaach,Kautenbach,Kautenbach,Kautenbach,,lu,6.020003,49.952777,27.692982,300 -http://irail.be/stations/NMBS/008821659,Kessel,,,,,be,4.618459,51.151057,124.381579,300 -http://irail.be/stations/NMBS/008832375,Kiewit,,,,,be,5.350226,50.954841,42.092105,300 -http://irail.be/stations/NMBS/008821451,Kijkuit,,,,,be,4.467315,51.378664,83.644737,300 -http://irail.be/stations/NMBS/008200520,Klengbetten,Kleinbettingen,Kleinbettingen,Kleinbettingen,,lu,5.916385,49.646389,54.824561,300 -http://irail.be/stations/NMBS/008891660,Knokke,,,,,be,3.285188,51.339894,39.048246,300 -http://irail.be/stations/NMBS/008892320,Koksijde,Coxyde,,,,be,2.65277,51.079197,37.776316,300 -http://irail.be/stations/NMBS/008821311,Kontich-Lint,,,,,be,4.476358,51.134023,245.504386,300 -http://irail.be/stations/NMBS/008892403,Kortemark,,,,,be,3.043459,51.025244,37.776316,300 -http://irail.be/stations/NMBS/008811254,Kortenberg,,,,,be,4.543301,50.893067,330.039474,300 -http://irail.be/stations/NMBS/008896008,Kortrijk,Courtrai,,,,be,3.264549,50.824506,266.864035,180 -http://irail.be/stations/NMBS/008893567,Kwatrecht,Quatrecht,,,,be,3.829593,50.99175,139.399123,300 +http://irail.be/stations/NMBS/008864832,Haversin,,,,,be,5.194371,50.249044,60.222857,300 +http://irail.be/stations/NMBS/008881430,Havre,,,,,be,4.059987,50.470754,87.782857,300 +http://irail.be/stations/NMBS/008821519,Heide,,,,,be,4.460483,51.364623,75.828571,300 +http://irail.be/stations/NMBS/008891645,Heist,,,,,be,3.239181,51.333979,39.451429,300 +http://irail.be/stations/NMBS/008821832,Heist-op-den-Berg,,,,,be,4.708235,51.074146,95.942857,300 +http://irail.be/stations/NMBS/008812153,Heizijde,,,,,be,4.156171,50.989593,88.6,300 +http://irail.be/stations/NMBS/008728606,Hellemmes,,,,,fr,3.108892,50.626941,6.388571,300 +http://irail.be/stations/NMBS/008824224,Hemiksem,,,,,be,4.338293,51.136243,58.314286,300 +http://irail.be/stations/NMBS/008883022,Hennuyères,,,,,be,4.175893,50.651005,160.457143,300 +http://irail.be/stations/NMBS/008811288,Herent,,,,,be,4.672188,50.90353,330.102857,300 +http://irail.be/stations/NMBS/008821717,Herentals,,,,,be,4.829535,51.181513,149.502857,180 +http://irail.be/stations/NMBS/008844644,Hergenrath,,,,,be,6.041335,50.718209,29.84,240 +http://irail.be/stations/NMBS/008849023,Hergenrath-Frontiere,,,,,be,6.04126900,50.7189550,44.68,120 +http://irail.be/stations/NMBS/008895646,Herne,,,,,be,4.014573,50.723701,40.04,300 +http://irail.be/stations/NMBS/008885753,Herseaux,,,,,be,3.245959,50.713894,52.228571,300 +http://irail.be/stations/NMBS/008841608,Herstal,,,,,be,5.622761,50.660911,107.965714,300 +http://irail.be/stations/NMBS/008895430,Herzele,,,,,be,3.880616,50.89722,110.188571,300 +http://irail.be/stations/NMBS/008832243,Heusden,,,,,be,5.281782,51.038207,30.571429,300 +http://irail.be/stations/NMBS/008822459,Hever,,,,,be,4.537637,50.997791,66.468571,300 +http://irail.be/stations/NMBS/008833126,Heverlee,,,,,be,4.6952,50.86253,54.697143,300 +http://irail.be/stations/NMBS/008895422,Hillegem,,,,,be,3.857469,50.891296,110.188571,300 +http://irail.be/stations/NMBS/008824158,Hoboken-Polder,,,,,be,4.347785,51.182699,58.314286,300 +http://irail.be/stations/NMBS/008811460,Hoeilaart,,,,,be,4.467414,50.760161,157.028571,300 +http://irail.be/stations/NMBS/008822277,Hofstade,,,,,be,4.498336,50.988658,20.92,300 +http://irail.be/stations/NMBS/008814159,Holleken,,,,,be,4.353952,50.767631,164.097143,300 +http://irail.be/stations/NMBS/008200710,Hollerich,,,,,lu,6.12093800,49.5951600,51.022857,300 +http://irail.be/stations/NMBS/008842655,Hony,,,,,be,5.573563,50.539917,62.257143,300 +http://irail.be/stations/NMBS/008886553,Houraing,,,,,be,3.835175,50.703062,37.2,300 +http://irail.be/stations/NMBS/008871829,Hourpes,,,,,be,4.308736,50.363692,30.525714,300 +http://irail.be/stations/NMBS/008863842,Houyet,,,,,be,5.006074,50.189868,29.405714,300 +http://irail.be/stations/NMBS/008821337,Hove,,,,,be,4.465157,51.154114,244,300 +http://irail.be/stations/NMBS/008814415,Huizingen,,,,,be,4.266487,50.7519,43.245714,300 +http://irail.be/stations/NMBS/008843307,Huy,,Hoei,,,be,5.234211,50.527242,92.417143,300 +http://irail.be/stations/NMBS/008895844,Iddergem,,,,,be,4.06849,50.876886,47.245714,300 +http://irail.be/stations/NMBS/008895729,Idegem,,,,,be,3.921553,50.801871,47.245714,300 +http://irail.be/stations/NMBS/008896503,Ieper,Ypres,,,,be,2.876593,50.847402,41.622857,300 +http://irail.be/stations/NMBS/008896925,Ingelmunster,,,,,be,3.255416,50.914326,69.451429,300 +http://irail.be/stations/NMBS/008896909,Izegem,,,,,be,3.212088,50.921149,69.451429,300 +http://irail.be/stations/NMBS/008863115,Jambes,,,,,be,4.876144,50.454843,97.017143,300 +http://irail.be/stations/NMBS/008863354,Jambes-Est,,,,,be,4.880261,50.454798,74.371429,300 +http://irail.be/stations/NMBS/008871175,Jamioulx,,,,,be,4.411294,50.352896,34.485714,300 +http://irail.be/stations/NMBS/008884566,Jemappes,,,,,be,3.885587,50.452577,100.257143,300 +http://irail.be/stations/NMBS/008843158,Jemeppe-sur-Meuse,,,,,be,5.497874,50.618446,84.885714,300 +http://irail.be/stations/NMBS/008874724,Jemeppe-sur-Sambre,,,,,be,4.662632,50.45095,114.697143,240 +http://irail.be/stations/NMBS/008812047,Jette,,,,,be,4.32622,50.880833,156.274286,300 +http://irail.be/stations/NMBS/008881166,Jurbeke,Jurbise,,Jurbise,Jurbise,be,3.910694,50.530496,132.32,300 +http://irail.be/stations/NMBS/008844321,Juslenville,,,,,be,5.809935,50.544717,31.502857,300 +http://irail.be/stations/NMBS/008821444,Kalmthout,,,,,be,4.46682,51.391177,75.828571,300 +http://irail.be/stations/NMBS/008822053,Kapelle-op-den-Bos,,,,,be,4.359121,51.010843,64.782857,300 +http://irail.be/stations/NMBS/008821535,Kapellen,,,,,be,4.432661,51.313528,103.354286,300 +http://irail.be/stations/NMBS/008200130,Kautebaach,Kautenbach,Kautenbach,Kautenbach,,lu,6.020003,49.952777,0.114286,300 +http://irail.be/stations/NMBS/008821659,Kessel,,,,,be,4.618459,51.151057,118.171429,300 +http://irail.be/stations/NMBS/008832375,Kiewit,,,,,be,5.350226,50.954841,41.851429,300 +http://irail.be/stations/NMBS/008821451,Kijkuit,,,,,be,4.467315,51.378664,75.828571,300 +http://irail.be/stations/NMBS/008200520,Klengbetten,Kleinbettingen,Kleinbettingen,Kleinbettingen,,lu,5.916385,49.646389,74.2,300 +http://irail.be/stations/NMBS/008891660,Knokke,,,,,be,3.285188,51.339894,39.451429,300 +http://irail.be/stations/NMBS/008892320,Koksijde,Coxyde,,,,be,2.65277,51.079197,37.262857,300 +http://irail.be/stations/NMBS/008821311,Kontich-Lint,,,,,be,4.476358,51.134023,244,300 +http://irail.be/stations/NMBS/008892403,Kortemark,,,,,be,3.043459,51.025244,37.262857,300 +http://irail.be/stations/NMBS/008811254,Kortenberg,,,,,be,4.543301,50.893067,330.102857,300 +http://irail.be/stations/NMBS/008896008,Kortrijk,Courtrai,,,,be,3.264549,50.824506,264.828571,180 +http://irail.be/stations/NMBS/008893567,Kwatrecht,Quatrecht,,,,be,3.829593,50.99175,136.308571,300 http://irail.be/stations/NMBS/008015458,Köln Hbf,Cologne Hbf,Keulen Hbf,,,de,6.958823,50.942721,0, -http://irail.be/stations/NMBS/008811510,La Hulpe,,Terhulpen,,,be,4.49706,50.737958,159.192982,300 -http://irail.be/stations/NMBS/008882107,La Louvière-Centre,,La Louvière-Centrum,,,be,4.179858,50.478161,90.02193,300 -http://irail.be/stations/NMBS/008882206,La Louvière-Sud,,La Louvière-Zuid,,,be,4.190609,50.464974,173.350877,300 -http://irail.be/stations/NMBS/008872587,La Roche (Brabant),,,,,be,4.539157,50.610338,32.881579,300 -http://irail.be/stations/NMBS/008871670,Labuissière,,,,,be,4.186833,50.316328,34.776316,300 -http://irail.be/stations/NMBS/008200935,Lamadeleine,,,,,lu,5.86133500,49.5533400,74.320175,300 -http://irail.be/stations/NMBS/008892056,Landegem,,,,,be,3.576852,51.064311,186.412281,300 -http://irail.be/stations/NMBS/008871837,Landelies,,,,,be,4.350976,50.377311,34.776316,300 -http://irail.be/stations/NMBS/008833605,Landen,,,,,be,5.07966,50.747927,141.162281,300 +http://irail.be/stations/NMBS/008811510,La Hulpe,,Terhulpen,,,be,4.49706,50.737958,157.028571,300 +http://irail.be/stations/NMBS/008882107,La Louvière-Centre,,La Louvière-Centrum,,,be,4.179858,50.478161,88.817143,300 +http://irail.be/stations/NMBS/008882206,La Louvière-Sud,,La Louvière-Zuid,,,be,4.190609,50.464974,172.388571,300 +http://irail.be/stations/NMBS/008872587,La Roche (Brabant),,,,,be,4.539157,50.610338,32.674286,300 +http://irail.be/stations/NMBS/008871670,Labuissière,,,,,be,4.186833,50.316328,30.525714,300 +http://irail.be/stations/NMBS/008200935,Lamadeleine,,,,,lu,5.86133500,49.5533400,50.931429,300 +http://irail.be/stations/NMBS/008892056,Landegem,,,,,be,3.576852,51.064311,188.16,300 +http://irail.be/stations/NMBS/008871837,Landelies,,,,,be,4.350976,50.377311,30.525714,300 +http://irail.be/stations/NMBS/008833605,Landen,,,,,be,5.07966,50.747927,141.777143,300 http://irail.be/stations/NMBS/008774177,Landry,,,,,fr,6.733522,45.574194,0, -http://irail.be/stations/NMBS/008893054,Landskouter,,,,,be,3.791146,50.970545,42.280702,300 -http://irail.be/stations/NMBS/008833258,Langdorp,,,,,be,4.863541,51.002466,126.947368,300 -http://irail.be/stations/NMBS/008874559,Le Campinaire,,,,,be,4.54278700,50.4238300,115.885965,300 -http://irail.be/stations/NMBS/008812161,Lebbeke,,,,,be,4.134372,51.005009,90.517544,300 -http://irail.be/stations/NMBS/008895067,Lede,,,,,be,3.984981,50.970895,76.473684,300 -http://irail.be/stations/NMBS/008864816,Leignon,,,,,be,5.107778,50.267768,59.425439,300 -http://irail.be/stations/NMBS/008843224,Leman,,,,,be,5.468309,50.600396,86.153509,300 -http://irail.be/stations/NMBS/008814332,Lembeek,,,,,be,4.221577,50.715107,162.951754,300 -http://irail.be/stations/NMBS/008881190,Lens,,,,,be,3.903224,50.559342,37.197368,300 -http://irail.be/stations/NMBS/008832003,Leopoldsburg,Bourg-Léopold,,,,be,5.257287,51.117312,30.464912,300 +http://irail.be/stations/NMBS/008893054,Landskouter,,,,,be,3.791146,50.970545,42.108571,300 +http://irail.be/stations/NMBS/008833258,Langdorp,,,,,be,4.863541,51.002466,127.114286,300 +http://irail.be/stations/NMBS/008874559,Le Campinaire,,,,,be,4.54278700,50.4238300,107.022857,300 +http://irail.be/stations/NMBS/008812161,Lebbeke,,,,,be,4.134372,51.005009,88.6,300 +http://irail.be/stations/NMBS/008895067,Lede,,,,,be,3.984981,50.970895,71.571429,300 +http://irail.be/stations/NMBS/008864816,Leignon,,,,,be,5.107778,50.267768,60.222857,300 +http://irail.be/stations/NMBS/008843224,Leman,,,,,be,5.468309,50.600396,84.885714,300 +http://irail.be/stations/NMBS/008814332,Lembeek,,,,,be,4.221577,50.715107,160.457143,300 +http://irail.be/stations/NMBS/008881190,Lens,,,,,be,3.903224,50.559342,37.091429,300 +http://irail.be/stations/NMBS/008832003,Leopoldsburg,Bourg-Léopold,,,,be,5.257287,51.117312,30.571429,300 http://irail.be/stations/NMBS/008775544,Les Arcs - Draguignan,,,,,fr,6.4826446,43.4555673,0, -http://irail.be/stations/NMBS/008886504,Lessen,Lessines,Lessen,Lessines,Lessines,be,3.836434,50.712015,37.561404,300 -http://irail.be/stations/NMBS/008200712,Leudelange,,,,,lu,6.05930600,49.5871200,74.320175,300 -http://irail.be/stations/NMBS/008833001,Leuven,Louvain,,Löwen,,be,4.715866,50.88228,518.20614,300 -http://irail.be/stations/NMBS/008886348,Leuze,,,,,be,3.616872,50.600612,66.364035,300 -http://irail.be/stations/NMBS/008882339,Leval,,,,,be,4.211041,50.430797,35.780702,300 -http://irail.be/stations/NMBS/008728710,Lezennes,,,,,fr,3.116667,50.616666,8.25,300 -http://irail.be/stations/NMBS/008865003,Libramont,,,,,be,5.37927,49.920434,136.951754,240 -http://irail.be/stations/NMBS/008892205,Lichtervelde,,,,,be,3.127212,51.025163,109.473684,180 -http://irail.be/stations/NMBS/008895836,Liedekerke,,,,,be,4.095287,50.882531,243.842105,300 -http://irail.be/stations/NMBS/008821600,Lier,Lierre,,,,be,4.560614,51.135758,234.482456,300 -http://irail.be/stations/NMBS/008895570,Lierde,,,,,be,3.826564,50.816236,42.868421,300 -http://irail.be/stations/NMBS/008841673,Liers,,,,,be,5.56683,50.698181,88.54386,300 -http://irail.be/stations/NMBS/008872520,Ligny,,,,,be,4.566133,50.511726,32.881579,300 +http://irail.be/stations/NMBS/008886504,Lessen,Lessines,Lessen,Lessines,Lessines,be,3.836434,50.712015,46.714286,300 +http://irail.be/stations/NMBS/008200712,Leudelange,,,,,lu,6.05930600,49.5871200,51.022857,300 +http://irail.be/stations/NMBS/008833001,Leuven,Louvain,,Löwen,,be,4.715866,50.88228,519.171429,300 +http://irail.be/stations/NMBS/008886348,Leuze,,,,,be,3.616872,50.600612,73.331429,300 +http://irail.be/stations/NMBS/008882339,Leval,,,,,be,4.211041,50.430797,35.068571,300 +http://irail.be/stations/NMBS/008728710,Lezennes,,,,,fr,3.116667,50.616666,8.462857,300 +http://irail.be/stations/NMBS/008865003,Libramont,,,,,be,5.37927,49.920434,122.388571,240 +http://irail.be/stations/NMBS/008892205,Lichtervelde,,,,,be,3.127212,51.025163,110.291429,180 +http://irail.be/stations/NMBS/008895836,Liedekerke,,,,,be,4.095287,50.882531,235.588571,300 +http://irail.be/stations/NMBS/008821600,Lier,Lierre,,,,be,4.560614,51.135758,231.794286,300 +http://irail.be/stations/NMBS/008895570,Lierde,,,,,be,3.826564,50.816236,42.674286,300 +http://irail.be/stations/NMBS/008841673,Liers,,,,,be,5.56683,50.698181,96.337143,300 +http://irail.be/stations/NMBS/008872520,Ligny,,,,,be,4.566133,50.511726,32.674286,300 http://irail.be/stations/NMBS/008722326,Lille Europe,,Rijsel-Europa,,,fr,3.0756612,50.6391167,0, -http://irail.be/stations/NMBS/008728600,Lille Flandres,,Rijsel-Vlaanderen,,,fr,3.066669,50.633333,62.289474,300 -http://irail.be/stations/NMBS/008814241,Lillois,,,,,be,4.365368,50.645423,179.982456,300 -http://irail.be/stations/NMBS/008811635,Limal,,,,,be,4.575302,50.69214,77.127193,300 +http://irail.be/stations/NMBS/008728600,Lille Flandres,,Rijsel-Vlaanderen,,,fr,3.066669,50.633333,62.84,300 +http://irail.be/stations/NMBS/008814241,Lillois,,,,,be,4.365368,50.645423,164.097143,300 +http://irail.be/stations/NMBS/008811635,Limal,,,,,be,4.575302,50.69214,80.285714,300 http://irail.be/stations/NMBS/008032572,Limburg Süd,,,,,de,8.06326100,50.3842000,0, -http://irail.be/stations/NMBS/008814142,Linkebeek,,,,,be,4.339434,50.773681,179.982456,300 -http://irail.be/stations/NMBS/008891629,Lissewege,,,,,be,3.194505,51.294714,29.451754,300 -http://irail.be/stations/NMBS/008841558,Liège-Carré,,Luik-Carre,,,be,5.561131,50.640299,148.627193,300 -http://irail.be/stations/NMBS/008841004,Liège-Guillemins,,Luik-Guillemins,,,be,5.566695,50.62455,478.188596,300 -http://irail.be/stations/NMBS/008841525,Liège-Saint-Lambert,,Luik-Sint-Lambertus,,,be,5.570453,50.646349,148.864035,300 -http://irail.be/stations/NMBS/008871712,Lobbes,,,,,be,4.260958,50.346469,34.776316,300 -http://irail.be/stations/NMBS/008872306,Lodelinsart,,,,,be,4.462946,50.432451,32.925439,300 -http://irail.be/stations/NMBS/008894201,Lokeren,,,,,be,3.987794,51.108062,201.820175,240 -http://irail.be/stations/NMBS/008832565,Lommel,,,,,be,5.312031,51.211564,36.355263,300 -http://irail.be/stations/NMBS/008822111,Londerzeel,,,,,be,4.299073,51.009091,63.754386,300 +http://irail.be/stations/NMBS/008814142,Linkebeek,,,,,be,4.339434,50.773681,164.097143,300 +http://irail.be/stations/NMBS/008891629,Lissewege,,,,,be,3.194505,51.294714,29.314286,300 +http://irail.be/stations/NMBS/008841558,Liège-Carré,,Luik-Carre,,,be,5.561131,50.640299,146.474286,300 +http://irail.be/stations/NMBS/008841004,Liège-Guillemins,,Luik-Guillemins,,,be,5.566695,50.62455,476.845714,300 +http://irail.be/stations/NMBS/008841525,Liège-Saint-Lambert,,Luik-Sint-Lambertus,,,be,5.570453,50.646349,146.474286,300 +http://irail.be/stations/NMBS/008871712,Lobbes,,,,,be,4.260958,50.346469,30.525714,300 +http://irail.be/stations/NMBS/008872306,Lodelinsart,,,,,be,4.462946,50.432451,32.834286,300 +http://irail.be/stations/NMBS/008894201,Lokeren,,,,,be,3.987794,51.108062,188.428571,240 +http://irail.be/stations/NMBS/008832565,Lommel,,,,,be,5.312031,51.211564,36.4,300 +http://irail.be/stations/NMBS/008822111,Londerzeel,,,,,be,4.299073,51.009091,64.782857,300 http://irail.be/stations/NMBS/007015400,London Saint Pancras International,Londres Saint Pancras,Londen Saint Pancras,,,gb,0.12380800,51.5304000,0, -http://irail.be/stations/NMBS/008861416,Lonzée,,,,,be,4.7201,50.551935,130.057018,300 +http://irail.be/stations/NMBS/008861416,Lonzée,,,,,be,4.7201,50.551935,129.188571,300 http://irail.be/stations/NMBS/008714210,Lorraine TGV,,,,,fr,6.16972200,48.9475000,0, -http://irail.be/stations/NMBS/008814357,Lot,,,,,be,4.273696,50.766364,224.096491,300 -http://irail.be/stations/NMBS/008811676,Louvain-la-Neuve,,,,,be,4.615745,50.669793,100.311404,300 -http://irail.be/stations/NMBS/008863156,Lustin,,,,,be,4.877071380615234,50.369000316323856,60.846491,300 -http://irail.be/stations/NMBS/008871308,Luttre,,,,,be,4.38412,50.505856,124.346491,300 +http://irail.be/stations/NMBS/008814357,Lot,,,,,be,4.273696,50.766364,224.417143,300 +http://irail.be/stations/NMBS/008811676,Louvain-la-Neuve,,,,,be,4.615745,50.669793,86.411429,300 +http://irail.be/stations/NMBS/008863156,Lustin,,,,,be,4.877071380615234,50.369000316323856,60.788571,300 +http://irail.be/stations/NMBS/008871308,Luttre,,,,,be,4.38412,50.505856,122.611429,300 http://irail.be/stations/NMBS/008772319,Lyon Part Dieu TGV,,,,,fr,4.85000000,45.7500000,0, http://irail.be/stations/NMBS/008772202,Lyon-Perrache TGV,,,,,fr,4.825301,45.748360,0, http://irail.be/stations/NMBS/008776290,Lyon-Saint Exupéry TGV,,,,,fr,5.075822,45.720907,0, -http://irail.be/stations/NMBS/008200100,Lëtzebuerg,Luxembourg,Luxemburg,Luxemburg,,lu,6.133331,49.599996,175.517544,300 -http://irail.be/stations/NMBS/008400424,Maastricht,,,,,nl,5.70539200,50.8500000,35.04386,300 -http://irail.be/stations/NMBS/008400426,Maastricht Randwyck,,,,,nl,5.716707,50.838502,35.04386,300 -http://irail.be/stations/NMBS/008886041,Maffle,,,,,be,3.800117,50.614356,36.942982,300 -http://irail.be/stations/NMBS/008822137,Malderen,,,,,be,4.22911,51.014484,63.754386,300 -http://irail.be/stations/NMBS/008200516,Mamer,,,,,lu,6.02014,49.625663,33.679825,300 -http://irail.be/stations/NMBS/008210014,Mamer-Lycée,,,,,lu,6.02968,49.618415,34.057018,300 -http://irail.be/stations/NMBS/008882701,Manage,,,,,be,4.234683,50.506108,35.714912,180 -http://irail.be/stations/NMBS/008866175,Marbehan,,,,,be,5.539755,49.727337,61.758772,300 -http://irail.be/stations/NMBS/008864410,Marche-en-Famenne,,,,,be,5.346289,50.222472,30.381579,300 -http://irail.be/stations/NMBS/008863461,Marche-les-Dames,,,,,be,4.96458,50.480741,88.364035,300 -http://irail.be/stations/NMBS/008883220,Marche-lez-Écaussinnes,,,,,be,4.177098,50.546173,59.539474,300 -http://irail.be/stations/NMBS/008871852,Marchienne-Zone,,,,,be,4.388767,50.397465,34.776316,300 -http://irail.be/stations/NMBS/008871100,Marchienne-au-Pont,,,,,be,4.394223,50.412171,186.557018,300 -http://irail.be/stations/NMBS/008891132,Maria-Aalter,,,,,be,3.38673,51.107612,186.412281,300 -http://irail.be/stations/NMBS/008875002,Mariembourg,,,,,be,4.525691,50.09549,32.372807,300 -http://irail.be/stations/NMBS/008864345,Marloie,,,,,be,5.313892,50.202821,107.311404,300 +http://irail.be/stations/NMBS/008200100,Lëtzebuerg,Luxembourg,Luxemburg,Luxemburg,,lu,6.133331,49.599996,138.182857,300 +http://irail.be/stations/NMBS/008400424,Maastricht,,,,,nl,5.70539200,50.8500000,34.685714,300 +http://irail.be/stations/NMBS/008400426,Maastricht Randwyck,,,,,nl,5.716707,50.838502,34.685714,300 +http://irail.be/stations/NMBS/008886041,Maffle,,,,,be,3.800117,50.614356,36.64,300 +http://irail.be/stations/NMBS/008822137,Malderen,,,,,be,4.22911,51.014484,64.782857,300 +http://irail.be/stations/NMBS/008200516,Mamer,,,,,lu,6.02014,49.625663,47.005714,300 +http://irail.be/stations/NMBS/008210014,Mamer-Lycée,,,,,lu,6.02968,49.618415,46.662857,300 +http://irail.be/stations/NMBS/008882701,Manage,,,,,be,4.234683,50.506108,36.394286,180 +http://irail.be/stations/NMBS/008866175,Marbehan,,,,,be,5.539755,49.727337,62.874286,300 +http://irail.be/stations/NMBS/008864410,Marche-en-Famenne,,,,,be,5.346289,50.222472,30.582857,300 +http://irail.be/stations/NMBS/008863461,Marche-les-Dames,,,,,be,4.96458,50.480741,88.885714,300 +http://irail.be/stations/NMBS/008883220,Marche-lez-Écaussinnes,,,,,be,4.177098,50.546173,59.44,300 +http://irail.be/stations/NMBS/008871852,Marchienne-Zone,,,,,be,4.388767,50.397465,30.525714,300 +http://irail.be/stations/NMBS/008871100,Marchienne-au-Pont,,,,,be,4.394223,50.412171,185.525714,300 +http://irail.be/stations/NMBS/008891132,Maria-Aalter,,,,,be,3.38673,51.107612,188.16,300 +http://irail.be/stations/NMBS/008875002,Mariembourg,,,,,be,4.525691,50.09549,33.342857,300 +http://irail.be/stations/NMBS/008864345,Marloie,,,,,be,5.313892,50.202821,112.331429,300 http://irail.be/stations/NMBS/008711184,Marne-la-Vallée - Chessy,,,,,fr,2.782184,48.868256,0, http://irail.be/stations/NMBS/008775100,Marseille-Saint-Charles,,,,,fr,5.380752,43.303178,0, -http://irail.be/stations/NMBS/008881174,Masnuy-Saint-Pierre,,,,,be,3.962139,50.536546,86.100877,300 +http://irail.be/stations/NMBS/008881174,Masnuy-Saint-Pierre,,,,,be,3.962139,50.536546,86.931429,300 http://irail.be/stations/NMBS/008739370,Massy TGV,,,,,fr,2.261254,48.725758,0, -http://irail.be/stations/NMBS/008729500,Maubeuge,,,,,fr,3.96656600,50.2728900,3.964912,300 -http://irail.be/stations/NMBS/008885530,Maubray,,,,,be,3.495527,50.547557,64.701754,300 -http://irail.be/stations/NMBS/008861333,Mazy,,,,,be,4.675829,50.513497,8.719298,300 -http://irail.be/stations/NMBS/008822004,Mechelen,Malines,,,,be,4.482785,51.017648,459.29386,300 -http://irail.be/stations/NMBS/008822343,Mechelen-Nekkerspoel,Malines-Nekkerspoel,,,,be,4.489914,51.029883,272.25,300 -http://irail.be/stations/NMBS/008811171,Meiser,,,,,be,4.394421,50.854072,167.714912,300 -http://irail.be/stations/NMBS/008821824,Melkouwen,,,,,be,4.671532,51.094938,96.140351,300 -http://irail.be/stations/NMBS/008893039,Melle,,,,,be,3.797088,51.002807,183.127193,300 +http://irail.be/stations/NMBS/008729500,Maubeuge,,,,,fr,3.96656600,50.2728900,17.245714,300 +http://irail.be/stations/NMBS/008885530,Maubray,,,,,be,3.495527,50.547557,64.468571,300 +http://irail.be/stations/NMBS/008861333,Mazy,,,,,be,4.675829,50.513497,8.88,300 +http://irail.be/stations/NMBS/008822004,Mechelen,Malines,,,,be,4.482785,51.017648,471.051429,300 +http://irail.be/stations/NMBS/008822343,Mechelen-Nekkerspoel,Malines-Nekkerspoel,,,,be,4.489914,51.029883,271.12,300 +http://irail.be/stations/NMBS/008811171,Meiser,,,,,be,4.394421,50.854072,156.28,300 +http://irail.be/stations/NMBS/008821824,Melkouwen,,,,,be,4.671532,51.094938,95.942857,300 +http://irail.be/stations/NMBS/008893039,Melle,,,,,be,3.797088,51.002807,202.2,300 http://irail.be/stations/NMBS/008890142,Melle PW,,,,,be,3.77939000,51.0139400,0, -http://irail.be/stations/NMBS/008864436,Melreux-Hotton,,,,,be,5.440136,50.28367,30.381579,300 -http://irail.be/stations/NMBS/008894755,Melsele,,,,,be,4.286766,51.21071,144.429825,300 -http://irail.be/stations/NMBS/008896305,Menen,Menin,,,,be,3.113791,50.799489,41.425439,300 -http://irail.be/stations/NMBS/008812120,Merchtem,,,,,be,4.222718,50.954958,90.517544,300 -http://irail.be/stations/NMBS/008893013,Merelbeke,,,,,be,3.768889,51.017531,183.127193,300 -http://irail.be/stations/NMBS/008811197,Merode,,,,,be,4.398934,50.839284,40.065789,300 -http://irail.be/stations/NMBS/008200110,Mersch,,,,,lu,6.106111,49.748893,27.692982,300 -http://irail.be/stations/NMBS/008866662,Messancy,,,,,be,5.818915,49.592777,29.741228,300 +http://irail.be/stations/NMBS/008864436,Melreux-Hotton,,,,,be,5.440136,50.28367,30.582857,300 +http://irail.be/stations/NMBS/008894755,Melsele,,,,,be,4.286766,51.21071,148.411429,300 +http://irail.be/stations/NMBS/008896305,Menen,Menin,,,,be,3.113791,50.799489,41.622857,300 +http://irail.be/stations/NMBS/008812120,Merchtem,,,,,be,4.222718,50.954958,88.6,300 +http://irail.be/stations/NMBS/008893013,Merelbeke,,,,,be,3.768889,51.017531,173.857143,300 +http://irail.be/stations/NMBS/008811197,Merode,,,,,be,4.398934,50.839284,42.417143,300 +http://irail.be/stations/NMBS/008200110,Mersch,,,,,lu,6.106111,49.748893,0.114286,300 +http://irail.be/stations/NMBS/008866662,Messancy,,,,,be,5.818915,49.592777,13.188571,300 http://irail.be/stations/NMBS/008719203,Metz,,,,,fr,6.166663,49.13333,0, -http://irail.be/stations/NMBS/008886058,Mevergnies-Attre,,,,,be,3.833917,50.600108,36.942982,300 -http://irail.be/stations/NMBS/008200128,Michelau,,,,,lu,6.09149000,49.8972900,27.692982,300 -http://irail.be/stations/NMBS/008841665,Milmort,,,,,be,5.60009,50.692455,88.245614,300 -http://irail.be/stations/NMBS/008814431,Moensberg,,,,,be,4.330733,50.77832,68.192982,300 -http://irail.be/stations/NMBS/008832409,Mol,,,,,be,5.116336,51.19105,114.592105,180 -http://irail.be/stations/NMBS/008812112,Mollem,,,,,be,4.216965,50.933473,90.517544,300 -http://irail.be/stations/NMBS/008841459,Momalle,,,,,be,5.367602,50.66991,64.578947,300 -http://irail.be/stations/NMBS/008881000,Mons,,Bergen,,,be,3.942542,50.453854,254.184211,300 -http://irail.be/stations/NMBS/008861549,Mont-Saint-Guibert,,,,,be,4.613884,50.637611,131.092105,300 +http://irail.be/stations/NMBS/008886058,Mevergnies-Attre,,,,,be,3.833917,50.600108,36.64,300 +http://irail.be/stations/NMBS/008200128,Michelau,,,,,lu,6.09149000,49.8972900,0.114286,300 +http://irail.be/stations/NMBS/008841665,Milmort,,,,,be,5.60009,50.692455,82.777143,300 +http://irail.be/stations/NMBS/008814431,Moensberg,,,,,be,4.330733,50.77832,43.851429,300 +http://irail.be/stations/NMBS/008832409,Mol,,,,,be,5.116336,51.19105,102.708571,180 +http://irail.be/stations/NMBS/008812112,Mollem,,,,,be,4.216965,50.933473,88.6,300 +http://irail.be/stations/NMBS/008841459,Momalle,,,,,be,5.367602,50.66991,63.428571,300 +http://irail.be/stations/NMBS/008881000,Mons,,Bergen,,,be,3.942542,50.453854,256.857143,300 +http://irail.be/stations/NMBS/008861549,Mont-Saint-Guibert,,,,,be,4.613884,50.637611,130.417143,300 http://irail.be/stations/NMBS/008777300,Montpellier,,,,,fr,3.880534,43.604947,0, -http://irail.be/stations/NMBS/008893062,Moortsele,,,,,be,3.781339,50.953519,42.280702,300 -http://irail.be/stations/NMBS/008882230,Morlanwelz,,,,,be,4.247367,50.457998,88.508772,300 -http://irail.be/stations/NMBS/008821147,Mortsel,,,,,be,4.448437,51.18296,243.828947,300 -http://irail.be/stations/NMBS/008821154,Mortsel-Deurnesteenweg,,,,,be,4.446514,51.183023,189.061404,300 -http://irail.be/stations/NMBS/008821246,Mortsel-Liersesteenweg,,,,,be,4.468843,51.169027,56.442982,300 -http://irail.be/stations/NMBS/008821238,Mortsel-Oude God,,,,,be,4.455737,51.171256,189.061404,300 -http://irail.be/stations/NMBS/008885704,Mouscron,,Moeskroen,Mouscron / Moeskroen,Moeskroen / Mouscron,be,3.228448,50.741005,94.214912,300 -http://irail.be/stations/NMBS/008889011,Mouscron-Frontiere,,Moeskroen-Grens,,,be,3.19608600,50.7217160,44.921053,120 -http://irail.be/stations/NMBS/008861150,Moustier,,,,,be,4.693807,50.452748,111.412281,300 -http://irail.be/stations/NMBS/008811403,Mouterij/Germoir,Germoir,Mouterij,Germoir,Mouterij,be,4.37866,50.829929,148.381579,300 +http://irail.be/stations/NMBS/008777301,Montpellier-Sud-de-France,,,,,fr,3.92428293,43.59518401,0, +http://irail.be/stations/NMBS/008893062,Moortsele,,,,,be,3.781339,50.953519,42.108571,300 +http://irail.be/stations/NMBS/008882230,Morlanwelz,,,,,be,4.247367,50.457998,88.097143,300 +http://irail.be/stations/NMBS/008821147,Mortsel,,,,,be,4.448437,51.18296,241.674286,300 +http://irail.be/stations/NMBS/008821154,Mortsel-Deurnesteenweg,,,,,be,4.446514,51.183023,187.308571,300 +http://irail.be/stations/NMBS/008821246,Mortsel-Liersesteenweg,,,,,be,4.468843,51.169027,56.691429,300 +http://irail.be/stations/NMBS/008821238,Mortsel-Oude God,,,,,be,4.455737,51.171256,187.308571,300 +http://irail.be/stations/NMBS/008885704,Mouscron,,Moeskroen,Mouscron / Moeskroen,Moeskroen / Mouscron,be,3.228448,50.741005,102.485714,300 +http://irail.be/stations/NMBS/008889011,Mouscron-Frontiere,,Moeskroen-Grens,,,be,3.19608600,50.7217160,44.737143,120 +http://irail.be/stations/NMBS/008861150,Moustier,,,,,be,4.693807,50.452748,103.24,300 +http://irail.be/stations/NMBS/008811403,Mouterij/Germoir,Germoir,Mouterij,Germoir,Mouterij,be,4.37866,50.829929,134.834286,300 http://irail.be/stations/NMBS/008774172,Moûtiers-Salins-Brides-les-Bai,,,,,fr,6.531454,45.486693,0, -http://irail.be/stations/NMBS/008822426,Muizen,,,,,be,4.513843,51.008201,87.429825,300 +http://irail.be/stations/NMBS/008822426,Muizen,,,,,be,4.513843,51.008201,87.377143,300 http://irail.be/stations/NMBS/008718206,Mulhouse,,,,,fr,7.333336,47.749998,0, -http://irail.be/stations/NMBS/008895232,Munkzwalm,,,,,be,3.733238,50.875673,87.583333,300 -http://irail.be/stations/NMBS/008842648,Méry,,,,,be,5.587236,50.54762,61.960526,300 -http://irail.be/stations/NMBS/008863008,Namur,,Namen,,,be,4.86222,50.468794,336.491228,300 -http://irail.be/stations/NMBS/008863453,Namêche,,,,,be,4.997939,50.47043,88.364035,300 -http://irail.be/stations/NMBS/008864964,Naninne,,,,,be,4.929756,50.419695,74.254386,300 +http://irail.be/stations/NMBS/008895232,Munkzwalm,,,,,be,3.733238,50.875673,86.645714,300 +http://irail.be/stations/NMBS/008842648,Méry,,,,,be,5.587236,50.54762,62.257143,300 +http://irail.be/stations/NMBS/008863008,Namur,,Namen,,,be,4.86222,50.468794,329,300 +http://irail.be/stations/NMBS/008863453,Namêche,,,,,be,4.997939,50.47043,88.885714,300 +http://irail.be/stations/NMBS/008864964,Naninne,,,,,be,4.929756,50.419695,74.371429,300 +http://irail.be/stations/NMBS/008748100,Nantes,,,,,fr,-1.542356,47.216148,0, http://irail.be/stations/NMBS/008778110,Narbonne,,,,,fr,3.006010,43.190399,0, -http://irail.be/stations/NMBS/008864915,Natoye,,,,,be,5.06116,50.343296,74.254386,300 -http://irail.be/stations/NMBS/008832615,Neerpelt,,,,,be,5.43717,51.222369,36.355263,300 -http://irail.be/stations/NMBS/008833670,Neerwinden,,,,,be,5.036323,50.763964,128.77193,300 -http://irail.be/stations/NMBS/008844230,Nessonvaux,,,,,be,5.741581,50.572089,87.451754,300 -http://irail.be/stations/NMBS/008866258,Neufchâteau,,,,,be,5.452559,49.854318,61.758772,300 -http://irail.be/stations/NMBS/008883121,Neufvilles,,,,,be,4.010672,50.543602,86.100877,300 +http://irail.be/stations/NMBS/008864915,Natoye,,,,,be,5.06116,50.343296,74.371429,300 +http://irail.be/stations/NMBS/008832615,Neerpelt,,,,,be,5.43717,51.222369,36.4,300 +http://irail.be/stations/NMBS/008833670,Neerwinden,,,,,be,5.036323,50.763964,127.737143,300 +http://irail.be/stations/NMBS/008844230,Nessonvaux,,,,,be,5.741581,50.572089,88.64,300 +http://irail.be/stations/NMBS/008866258,Neufchâteau,,,,,be,5.452559,49.854318,62.874286,300 +http://irail.be/stations/NMBS/008883121,Neufvilles,,,,,be,4.010672,50.543602,86.931429,300 http://irail.be/stations/NMBS/008775605,Nice Ville,,,,,fr,7.261928,43.704605,0, -http://irail.be/stations/NMBS/008824240,Niel,,,,,be,4.338589,51.111595,56.100877,300 -http://irail.be/stations/NMBS/008894714,Nieuwkerken-Waas,,,,,be,4.185907,51.185612,144.429825,300 -http://irail.be/stations/NMBS/008821667,Nijlen,,,,,be,4.666588,51.15984,124.381579,300 -http://irail.be/stations/NMBS/008881315,Nimy,,,,,be,3.956089,50.471644,87.986842,300 -http://irail.be/stations/NMBS/008895760,Ninove,,,,,be,4.026133,50.839509,47.653509,300 -http://irail.be/stations/NMBS/008814209,Nivelles,,Nijvel,,,be,4.335065,50.599641,179.982456,300 -http://irail.be/stations/NMBS/008821105,Noorderkempen,,,,Noorderkempen (brecht),be,4.632204,51.356838,56.517544,300 -http://irail.be/stations/NMBS/008811247,Nossegem,,,,,be,4.506112,50.883314,330.039474,300 +http://irail.be/stations/NMBS/008824240,Niel,,,,,be,4.338589,51.111595,58.314286,300 +http://irail.be/stations/NMBS/008894714,Nieuwkerken-Waas,,,,,be,4.185907,51.185612,139.788571,300 +http://irail.be/stations/NMBS/008821667,Nijlen,,,,,be,4.666588,51.15984,118.171429,300 +http://irail.be/stations/NMBS/008881315,Nimy,,,,,be,3.956089,50.471644,87.782857,300 +http://irail.be/stations/NMBS/008895760,Ninove,,,,,be,4.026133,50.839509,47.245714,300 +http://irail.be/stations/NMBS/008814209,Nivelles,,Nijvel,,,be,4.335065,50.599641,165.422857,300 +http://irail.be/stations/NMBS/008821105,Noorderkempen,,,,Noorderkempen (brecht),be,4.632204,51.356838,57.068571,300 +http://irail.be/stations/NMBS/008811247,Nossegem,,,,,be,4.506112,50.883314,330.102857,300 http://irail.be/stations/NMBS/008777500,Nîmes,,,,,fr,4.365997,43.832602,0, -http://irail.be/stations/NMBS/008871332,Obaix-Buzet,,,,,be,4.36357,50.535206,87.460526,300 -http://irail.be/stations/NMBS/008881406,Obourg,,,,,be,4.007804,50.469873,87.986842,300 -http://irail.be/stations/NMBS/008895778,Okegem,,,,,be,4.054557,50.857712,47.653509,300 -http://irail.be/stations/NMBS/008832458,Olen,,,,,be,4.90250000,51.1740300,61.162281,300 -http://irail.be/stations/NMBS/008891702,Oostende,Ostende,,,,be,2.925809,51.228212,118.859649,300 -http://irail.be/stations/NMBS/008891116,Oostkamp,,,,,be,3.257466,51.154114,186.412281,300 -http://irail.be/stations/NMBS/008812146,Opwijk,,,,,be,4.187319,50.974779,90.517544,300 -http://irail.be/stations/NMBS/008811601,Ottignies,,,,,be,4.56936,50.673667,361.416667,300 -http://irail.be/stations/NMBS/008833134,Oud-Heverlee,,,,,be,4.653311,50.835931,54.662281,300 -http://irail.be/stations/NMBS/008893518,Oudegem,,,,,be,4.064472,51.01523,62.921053,300 -http://irail.be/stations/NMBS/008892601,Oudenaarde,Audenarde,,,,be,3.600386,50.850116,132.75,240 -http://irail.be/stations/NMBS/008843174,Ougrée,,,,,be,5.53697200,50.6053960,44.144737,300 -http://irail.be/stations/NMBS/008832573,Overpelt,,,,,be,5.422751,51.215618,36.355263,300 -http://irail.be/stations/NMBS/008865540,Paliseul,,,,,be,5.118349,49.895408,27.535088,300 -http://irail.be/stations/NMBS/008886561,Papegem,Papignies,Papegem,Papignies,Papignies,be,3.823408,50.686585,37.561404,300 -http://irail.be/stations/NMBS/008727100,Paris Nord,,Parijs Noord,,,fr,2.33333300,48.8666670,0.552632,300 -http://irail.be/stations/NMBS/008844206,Pepinster,,,,,be,5.80615,50.568179,118.973684,240 -http://irail.be/stations/NMBS/008844313,Pepinster-Cité,,,,,be,5.804397,50.563405,31.52193,300 +http://irail.be/stations/NMBS/008871332,Obaix-Buzet,,,,,be,4.36357,50.535206,87.542857,300 +http://irail.be/stations/NMBS/008881406,Obourg,,,,,be,4.007804,50.469873,87.782857,300 +http://irail.be/stations/NMBS/008895778,Okegem,,,,,be,4.054557,50.857712,47.245714,300 +http://irail.be/stations/NMBS/008832458,Olen,,,,,be,4.90250000,51.1740300,60.84,300 +http://irail.be/stations/NMBS/008891702,Oostende,Ostende,,,,be,2.925809,51.228212,120.194286,300 +http://irail.be/stations/NMBS/008891116,Oostkamp,,,,,be,3.257466,51.154114,188.16,300 +http://irail.be/stations/NMBS/008812146,Opwijk,,,,,be,4.187319,50.974779,89.12,300 +http://irail.be/stations/NMBS/008811601,Ottignies,,,,,be,4.56936,50.673667,320.548571,300 +http://irail.be/stations/NMBS/008833134,Oud-Heverlee,,,,,be,4.653311,50.835931,54.457143,300 +http://irail.be/stations/NMBS/008893518,Oudegem,,,,,be,4.064472,51.01523,64.76,300 +http://irail.be/stations/NMBS/008892601,Oudenaarde,Audenarde,,,,be,3.600386,50.850116,151.811429,240 +http://irail.be/stations/NMBS/008843174,Ougrée,,,,,be,5.53697200,50.6053960,43.017143,300 +http://irail.be/stations/NMBS/008832573,Overpelt,,,,,be,5.422751,51.215618,36.4,300 +http://irail.be/stations/NMBS/008865540,Paliseul,,,,,be,5.118349,49.895408,27.64,300 +http://irail.be/stations/NMBS/008886561,Papegem,Papignies,Papegem,Papignies,Papignies,be,3.823408,50.686585,37.2,300 +http://irail.be/stations/NMBS/008727100,Paris Nord,,Parijs Noord,,,fr,2.33333300,48.8666670,0, +http://irail.be/stations/NMBS/008844206,Pepinster,,,,,be,5.80615,50.568179,120.142857,240 +http://irail.be/stations/NMBS/008844313,Pepinster-Cité,,,,,be,5.804397,50.563405,31.502857,300 http://irail.be/stations/NMBS/008778400,Perpignan,,,,,fr,2.879397,42.695938,0, -http://irail.be/stations/NMBS/008200930,Petange,,,,,lu,5.87868100,49.5542500,74.320175,300 -http://irail.be/stations/NMBS/008200102,Pfaffenthal-Kirchberg,,,,,lu,6.13285300,49.6191260,27.692982,300 -http://irail.be/stations/NMBS/008873122,Philippeville,,,,,be,4.535956,50.191639,32.372807,300 -http://irail.be/stations/NMBS/008871415,Piéton,,,,,be,4.288438,50.434959,89.092105,300 -http://irail.be/stations/NMBS/008865227,Poix-Saint-Hubert,,,,,be,5.292641,50.019504,53.429825,300 -http://irail.be/stations/NMBS/008728683,Pont de Bois,,,,,fr,3.1275,50.624164,30.552632,300 -http://irail.be/stations/NMBS/008843141,Pont-de-Seraing,,,,,be,5.510162,50.619651,86.153509,300 -http://irail.be/stations/NMBS/008871365,Pont-à-Celles,,,,,be,4.355291,50.513812,31.219298,300 -http://irail.be/stations/NMBS/008896735,Poperinge,,,,,be,2.736343,50.854449,41.421053,300 -http://irail.be/stations/NMBS/008842689,Poulseur,,,,,be,5.578858,50.509209,61.960526,300 -http://irail.be/stations/NMBS/008811544,Profondsart,,,,,be,4.54543500,50.6996530,159.192982,300 -http://irail.be/stations/NMBS/008873312,Pry,,,,,be,4.428805,50.269278,34.315789,300 -http://irail.be/stations/NMBS/008822715,Puurs,,,,,be,4.282703,51.07722,95.469298,300 -http://irail.be/stations/NMBS/008811775,Pécrot,,,,,be,4.651486,50.778517,54.578947,300 -http://irail.be/stations/NMBS/008884855,Péruwelz,,,,,be,3.592772,50.513704,64.701754,300 -http://irail.be/stations/NMBS/008884541,Quaregnon,,,,,be,3.856543,50.449827,100.416667,300 -http://irail.be/stations/NMBS/008881505,Quevy,,,,,be,3.909489,50.341534,38.122807,300 -http://irail.be/stations/NMBS/008889003,Quevy-frontiere,,,,,be,3.90875300,50.3277100,5.855263,120 -http://irail.be/stations/NMBS/008884335,Quievrain,,,,,be,3.68608,50.410103,32.929825,300 -http://irail.be/stations/NMBS/008886587,Rebaix,,,,,be,3.793627,50.661235,37.561404,300 -http://irail.be/stations/NMBS/008841442,Remicourt,,,,,be,5.321407,50.678611,64.578947,300 -http://irail.be/stations/NMBS/008746249,Rennes,,,,,fr,-1.6833330000,48.0833330000,0, -http://irail.be/stations/NMBS/008861440,Rhisnes,,,,,be,4.801866,50.499348,130.057018,300 -http://irail.be/stations/NMBS/008842705,Rivage,,,,,be,5.587631,50.483285,70.850877,300 -http://irail.be/stations/NMBS/008811536,Rixensart,,,,,be,4.532855,50.711413,159.192982,300 -http://irail.be/stations/NMBS/008864006,Rochefort-Jemelle,,,,,be,5.266698,50.160401,83.399123,300 -http://irail.be/stations/NMBS/008200940,Rodange,,,,,lu,5.845028,49.551283,113.811404,180 -http://irail.be/stations/NMBS/008896800,Roeselare,Roulers,,,,be,3.130412,50.949025,69.22807,300 -http://irail.be/stations/NMBS/008861119,Ronet,,,,,be,4.82842,50.457737,111.412281,300 -http://irail.be/stations/NMBS/008892908,Ronse,Renaix,,Renaix / Ronse,Ronse / Renaix,be,3.602552,50.742506,34.328947,300 -http://irail.be/stations/NMBS/008400526,Roosendaal,,,,,nl,4.45869200,51.5408340,34.403509,300 -http://irail.be/stations/NMBS/008400530,Rotterdam CS,,,,,nl,4.50000000,51.9166670,31.938596,300 -http://irail.be/stations/NMBS/008728673,Roubaix,,,,,fr,3.166666,50.699997,29.947368,300 -http://irail.be/stations/NMBS/008871217,Roux,,,,,be,4.393199,50.443112,98.127193,300 -http://irail.be/stations/NMBS/008814365,Ruisbroek,,,,,be,4.295333,50.79183,224.096491,300 -http://irail.be/stations/NMBS/008822848,Ruisbroek-Sauvegarde,,,,,be,4.324998,51.081022,55.412281,300 -http://irail.be/stations/NMBS/008861432,Saint-Denis-Bovesse,,,,,be,4.767788,50.5213,130.057018,300 -http://irail.be/stations/NMBS/008884004,Saint-Ghislain,,,,,be,3.820253,50.44286,101.54386,300 +http://irail.be/stations/NMBS/008200930,Petange,,,,,lu,5.87868100,49.5542500,51.022857,300 +http://irail.be/stations/NMBS/008200102,Pfaffenthal-Kirchberg,,,,,lu,6.13285300,49.6191260,0.114286,300 +http://irail.be/stations/NMBS/008873122,Philippeville,,,,,be,4.535956,50.191639,32.697143,300 +http://irail.be/stations/NMBS/008871415,Piéton,,,,,be,4.288438,50.434959,88.097143,300 +http://irail.be/stations/NMBS/008865227,Poix-Saint-Hubert,,,,,be,5.292641,50.019504,55.102857,300 +http://irail.be/stations/NMBS/008728683,Pont de Bois,,,,,fr,3.1275,50.624164,31.337143,300 +http://irail.be/stations/NMBS/008843141,Pont-de-Seraing,,,,,be,5.510162,50.619651,84.885714,300 +http://irail.be/stations/NMBS/008871365,Pont-à-Celles,,,,,be,4.355291,50.513812,31.165714,300 +http://irail.be/stations/NMBS/008896735,Poperinge,,,,,be,2.736343,50.854449,41.622857,300 +http://irail.be/stations/NMBS/008842689,Poulseur,,,,,be,5.578858,50.509209,62.257143,300 +http://irail.be/stations/NMBS/008811544,Profondsart,,,,,be,4.54543500,50.6996530,157.028571,300 +http://irail.be/stations/NMBS/008873312,Pry,,,,,be,4.428805,50.269278,34.485714,300 +http://irail.be/stations/NMBS/008822715,Puurs,,,,,be,4.282703,51.07722,121.874286,300 +http://irail.be/stations/NMBS/008811775,Pécrot,,,,,be,4.651486,50.778517,54.857143,300 +http://irail.be/stations/NMBS/008884855,Péruwelz,,,,,be,3.592772,50.513704,64.468571,300 +http://irail.be/stations/NMBS/008884541,Quaregnon,,,,,be,3.856543,50.449827,100.257143,300 +http://irail.be/stations/NMBS/008881505,Quevy,,,,,be,3.909489,50.341534,33.788571,300 +http://irail.be/stations/NMBS/008889003,Quevy-frontiere,,,,,be,3.90875300,50.3277100,0, +http://irail.be/stations/NMBS/008884335,Quievrain,,,,,be,3.68608,50.410103,32.828571,300 +http://irail.be/stations/NMBS/008886587,Rebaix,,,,,be,3.793627,50.661235,37.2,300 +http://irail.be/stations/NMBS/008841442,Remicourt,,,,,be,5.321407,50.678611,63.428571,300 +http://irail.be/stations/NMBS/008747100,Rennes,,,,,fr,-1.672744,48.103517,0, +http://irail.be/stations/NMBS/008861440,Rhisnes,,,,,be,4.801866,50.499348,131.302857,300 +http://irail.be/stations/NMBS/008842705,Rivage,,,,,be,5.587631,50.483285,74.24,300 +http://irail.be/stations/NMBS/008811536,Rixensart,,,,,be,4.532855,50.711413,157.028571,300 +http://irail.be/stations/NMBS/008864006,Rochefort-Jemelle,,,,,be,5.266698,50.160401,89.062857,300 +http://irail.be/stations/NMBS/008200940,Rodange,,,,,lu,5.845028,49.551283,77.108571,180 +http://irail.be/stations/NMBS/008896800,Roeselare,Roulers,,,,be,3.130412,50.949025,69.451429,300 +http://irail.be/stations/NMBS/008861119,Ronet,,,,,be,4.82842,50.457737,103.24,300 +http://irail.be/stations/NMBS/008892908,Ronse,Renaix,,Renaix / Ronse,Ronse / Renaix,be,3.602552,50.742506,33.851429,300 +http://irail.be/stations/NMBS/008400526,Roosendaal,,,,,nl,4.45869200,51.5408340,34.062857,300 +http://irail.be/stations/NMBS/008400530,Rotterdam CS,,,,,nl,4.50000000,51.9166670,31.645714,300 +http://irail.be/stations/NMBS/008728673,Roubaix,,,,,fr,3.166666,50.699997,29.794286,300 +http://irail.be/stations/NMBS/008871217,Roux,,,,,be,4.393199,50.443112,97.428571,300 +http://irail.be/stations/NMBS/008814365,Ruisbroek,,,,,be,4.295333,50.79183,224.417143,300 +http://irail.be/stations/NMBS/008822848,Ruisbroek-Sauvegarde,,,,,be,4.324998,51.081022,57.48,300 +http://irail.be/stations/NMBS/008861432,Saint-Denis-Bovesse,,,,,be,4.767788,50.5213,129.188571,300 +http://irail.be/stations/NMBS/008884004,Saint-Ghislain,,,,,be,3.820253,50.44286,114.005714,300 http://irail.be/stations/NMBS/008718213,Saint-Louis-Haut-Rhin,,,,,fr,7.555316,47.5907,0, http://irail.be/stations/NMBS/008775752,Saint-Raphaël-Valescure,,,,,fr,6.768825,43.423456,0, -http://irail.be/stations/NMBS/008864956,Sart-Bernard,,,,,be,4.949739,50.406373,74.254386,300 +http://irail.be/stations/NMBS/008864956,Sart-Bernard,,,,,be,4.949739,50.406373,74.371429,300 http://irail.be/stations/NMBS/008721222,Saverne,,,,,fr,7.362255,48.744798,0, -http://irail.be/stations/NMBS/008811007,Schaarbeek/Schaerbeek,Schaerbeek,Schaarbeek,,,be,4.378636,50.878513,756.166667,300 -http://irail.be/stations/NMBS/008893070,Scheldewindeke,,,,,be,3.777842,50.937069,42.280702,300 -http://irail.be/stations/NMBS/008824232,Schelle,,,,,be,4.340261,51.12551,56.100877,300 -http://irail.be/stations/NMBS/008893542,Schellebelle,,,,,be,3.921373,51.003149,139.491228,120 -http://irail.be/stations/NMBS/008895711,Schendelbeke,,,,,be,3.899286,50.797844,47.653509,300 -http://irail.be/stations/NMBS/008400561,Schiphol,,,,,nl,4.75000000,52.3000000,31.938596,300 -http://irail.be/stations/NMBS/008893526,Schoonaarde,,,,,be,4.011094,51.003149,62.921053,300 -http://irail.be/stations/NMBS/008200716,Schouweiler,,,,,lu,5.96007600,49.5736400,74.320175,300 -http://irail.be/stations/NMBS/008831088,Schulen,,,,,be,5.187405,50.963758,128,300 -http://irail.be/stations/NMBS/008863446,Sclaigneaux,,,,,be,5.026363,50.492247,88.364035,300 -http://irail.be/stations/NMBS/008843133,Sclessin,,,,,be,5.558911,50.609844,86.153509,300 +http://irail.be/stations/NMBS/008811007,Schaarbeek/Schaerbeek,Schaerbeek,Schaarbeek,,,be,4.378636,50.878513,738.611429,300 +http://irail.be/stations/NMBS/008893070,Scheldewindeke,,,,,be,3.777842,50.937069,42.108571,300 +http://irail.be/stations/NMBS/008824232,Schelle,,,,,be,4.340261,51.12551,58.314286,300 +http://irail.be/stations/NMBS/008893542,Schellebelle,,,,,be,3.921373,51.003149,137.108571,120 +http://irail.be/stations/NMBS/008895711,Schendelbeke,,,,,be,3.899286,50.797844,47.245714,300 +http://irail.be/stations/NMBS/008400561,Schiphol,,,,,nl,4.75000000,52.3000000,31.485714,300 +http://irail.be/stations/NMBS/008893526,Schoonaarde,,,,,be,4.011094,51.003149,64.76,300 +http://irail.be/stations/NMBS/008200716,Schouweiler,,,,,lu,5.96007600,49.5736400,51.022857,300 +http://irail.be/stations/NMBS/008831088,Schulen,,,,,be,5.187405,50.963758,127.114286,300 +http://irail.be/stations/NMBS/008863446,Sclaigneaux,,,,,be,5.026363,50.492247,88.885714,300 +http://irail.be/stations/NMBS/008843133,Sclessin,,,,,be,5.558911,50.609844,84.885714,300 http://irail.be/stations/NMBS/008721405,Selestat,,,,,fr,7.449999,48.26667,0, -http://irail.be/stations/NMBS/008843067,Seraing,,,,,be,5.51377700,50.6089000,44.144737,300 -http://irail.be/stations/NMBS/008893583,Serskamp,,,,,be,3.959361,50.984397,76.473684,300 +http://irail.be/stations/NMBS/008843067,Seraing,,,,,be,5.51377700,50.6089000,43.017143,300 +http://irail.be/stations/NMBS/008893583,Serskamp,,,,,be,3.959361,50.984397,71.571429,300 http://irail.be/stations/NMBS/008015588,Siegburg,,,,,de,7.203029,50.793916,0, -http://irail.be/stations/NMBS/008883436,Silly,,Opzullik,,,be,3.935863,50.662386,66.057018,300 -http://irail.be/stations/NMBS/008812013,Simonis,,,,,be,4.32898,50.863645,31.54386,300 -http://irail.be/stations/NMBS/008894425,Sinaai,,,,,be,4.06894,51.143398,154.640351,300 -http://irail.be/stations/NMBS/008812211,Sint-Agatha-Berchem/Berchem-Sainte-Agathe,Berchem-Sainte-Agathe,Sint-Agatha-Berchem,,,be,4.289895,50.872625,58.035088,300 -http://irail.be/stations/NMBS/008892692,Sint-Denijs-Boekel,,,,,be,3.698395,50.874297,87.583333,300 -http://irail.be/stations/NMBS/008814167,Sint-Genesius-Rode,Rhode-Saint-Genèse,,Rhode-St.-Genese/st.-Genesius-Rode,St.-Genesius-Rode/rhode-St.-Genese,be,4.361997,50.74781,179.982456,300 -http://irail.be/stations/NMBS/008893443,Sint-Gillis-Dendermonde,Saint-Gilles-lez-Termonde,Sint-Gillis,Sint-Gillis,Sint-Gillis,be,4.117832,51.021693,90.517544,300 -http://irail.be/stations/NMBS/008814449,Sint-Job,Saint-Job,,Saint-Job / Sint-Job,Sint-Job / Saint-Job,be,4.362761,50.79441,125.605263,300 -http://irail.be/stations/NMBS/008833159,Sint-Joris-Weert,,,,,be,4.651728,50.800631,54.662281,300 -http://irail.be/stations/NMBS/008822228,Sint-Katelijne-Waver,Wavre-Sainte-Catherine,,,,be,4.496116,51.069975,272.25,300 -http://irail.be/stations/NMBS/008821543,Sint-Mariaburg,,,,,be,4.4349,51.291658,83.644737,300 -http://irail.be/stations/NMBS/008812245,Sint-Martens-Bodegem,Bodeghem-Saint-Martin,,,,be,4.205081,50.86716,58.035088,300 -http://irail.be/stations/NMBS/008894508,Sint-Niklaas,Saint-Nicolas,,,,be,4.142966,51.171472,209.70614,240 -http://irail.be/stations/NMBS/008831807,Sint-Truiden,Saint-Trond,,,,be,5.176654,50.81762,39.552632,300 -http://irail.be/stations/NMBS/008893260,Sleidinge,,,,,be,3.667526,51.126607,32.328947,300 -http://irail.be/stations/NMBS/008883113,Soignies,,Zinnik,,,be,4.067519,50.572763,86.100877,240 -http://irail.be/stations/NMBS/008871662,Solre-sur-Sambre,,,,,be,4.158427,50.312642,34.776316,300 -http://irail.be/stations/NMBS/008844404,Spa,,,,,be,5.855096,50.490305,31.52193,300 -http://irail.be/stations/NMBS/008844420,Spa-Géronstère,,,,,be,5.866207,50.489307,31.52193,300 -http://irail.be/stations/NMBS/008843406,Statte,,,,,be,5.219676,50.528276,95.25,300 -http://irail.be/stations/NMBS/008869054,Sterpenich-Frontiere,,,,,be,5.90415000,49.6439600,111.302632,120 -http://irail.be/stations/NMBS/008862018,Stockem,,,,,be,5.769115,49.690939,61.758772,300 +http://irail.be/stations/NMBS/008883436,Silly,,Opzullik,,,be,3.935863,50.662386,66.445714,300 +http://irail.be/stations/NMBS/008812013,Simonis,,,,,be,4.32898,50.863645,30.92,300 +http://irail.be/stations/NMBS/008894425,Sinaai,,,,,be,4.06894,51.143398,154.56,300 +http://irail.be/stations/NMBS/008812211,Sint-Agatha-Berchem/Berchem-Sainte-Agathe,Berchem-Sainte-Agathe,Sint-Agatha-Berchem,,,be,4.289895,50.872625,59.097143,300 +http://irail.be/stations/NMBS/008892692,Sint-Denijs-Boekel,,,,,be,3.698395,50.874297,86.645714,300 +http://irail.be/stations/NMBS/008814167,Sint-Genesius-Rode,Rhode-Saint-Genèse,,Rhode-St.-Genese/st.-Genesius-Rode,St.-Genesius-Rode/rhode-St.-Genese,be,4.361997,50.74781,164.097143,300 +http://irail.be/stations/NMBS/008893443,Sint-Gillis-Dendermonde,Saint-Gilles-lez-Termonde,Sint-Gillis,Sint-Gillis,Sint-Gillis,be,4.117832,51.021693,88.6,300 +http://irail.be/stations/NMBS/008814449,Sint-Job,Saint-Job,,Saint-Job / Sint-Job,Sint-Job / Saint-Job,be,4.362761,50.79441,87.177143,300 +http://irail.be/stations/NMBS/008833159,Sint-Joris-Weert,,,,,be,4.651728,50.800631,54.937143,300 +http://irail.be/stations/NMBS/008822228,Sint-Katelijne-Waver,Wavre-Sainte-Catherine,,,,be,4.496116,51.069975,271.12,300 +http://irail.be/stations/NMBS/008821543,Sint-Mariaburg,,,,,be,4.4349,51.291658,75.022857,300 +http://irail.be/stations/NMBS/008812245,Sint-Martens-Bodegem,Bodeghem-Saint-Martin,,,,be,4.205081,50.86716,59.097143,300 +http://irail.be/stations/NMBS/008894508,Sint-Niklaas,Saint-Nicolas,,,,be,4.142966,51.171472,213.4,240 +http://irail.be/stations/NMBS/008831807,Sint-Truiden,Saint-Trond,,,,be,5.176654,50.81762,39.245714,300 +http://irail.be/stations/NMBS/008893260,Sleidinge,,,,,be,3.667526,51.126607,32.245714,300 +http://irail.be/stations/NMBS/008883113,Soignies,,Zinnik,,,be,4.067519,50.572763,87.422857,240 +http://irail.be/stations/NMBS/008871662,Solre-sur-Sambre,,,,,be,4.158427,50.312642,30.525714,300 +http://irail.be/stations/NMBS/008844404,Spa,,,,,be,5.855096,50.490305,31.502857,300 +http://irail.be/stations/NMBS/008844420,Spa-Géronstère,,,,,be,5.866207,50.489307,31.502857,300 +http://irail.be/stations/NMBS/008843406,Statte,,,,,be,5.219676,50.528276,90.325714,300 +http://irail.be/stations/NMBS/008869054,Sterpenich-Frontiere,,,,,be,5.90415000,49.6439600,130.382857,120 +http://irail.be/stations/NMBS/008862018,Stockem,,,,,be,5.769115,49.690939,62.874286,300 http://irail.be/stations/NMBS/008721202,Strasbourg,,Straatsburg,Straßburg,,fr,7.733905,48.585437,0, -http://irail.be/stations/NMBS/008842853,Sy,,,,,be,5.523565,50.403254,30.486842,300 +http://irail.be/stations/NMBS/008842853,Sy,,,,,be,5.523565,50.403254,30.674286,300 http://irail.be/stations/NMBS/008777320,Sète,,,,,fr,3.696535,43.412810,0, -http://irail.be/stations/NMBS/008874609,Tamines,,,,,be,4.608823,50.432235,118.149123,300 -http://irail.be/stations/NMBS/008894672,Temse,Tamise,,,,be,4.221352,51.126085,39.802632,300 -http://irail.be/stations/NMBS/008895448,Terhagen,,,,,be,3.896653,50.901643,111.355263,300 -http://irail.be/stations/NMBS/008812252,Ternat,,,,,be,4.16534,50.874522,58.035088,300 -http://irail.be/stations/NMBS/008833266,Testelt,,,,,be,4.945829,51.009864,126.947368,300 -http://irail.be/stations/NMBS/008844339,Theux,,,,,be,5.815031,50.536159,31.52193,300 -http://irail.be/stations/NMBS/008881455,Thieu,,,,,be,4.098523,50.46954,87.986842,300 +http://irail.be/stations/NMBS/008874609,Tamines,,,,,be,4.608823,50.432235,116.491429,300 +http://irail.be/stations/NMBS/008894672,Temse,Tamise,,,,be,4.221352,51.126085,41.114286,300 +http://irail.be/stations/NMBS/008895448,Terhagen,,,,,be,3.896653,50.901643,110.188571,300 +http://irail.be/stations/NMBS/008812252,Ternat,,,,,be,4.16534,50.874522,59.097143,300 +http://irail.be/stations/NMBS/008833266,Testelt,,,,,be,4.945829,51.009864,127.114286,300 +http://irail.be/stations/NMBS/008844339,Theux,,,,,be,5.815031,50.536159,31.502857,300 +http://irail.be/stations/NMBS/008881455,Thieu,,,,,be,4.098523,50.46954,87.782857,300 http://irail.be/stations/NMBS/008719100,Thionville,,,,,fr,6.166663,49.366663,0, -http://irail.be/stations/NMBS/008871811,Thuin,,,,,be,4.288906,50.342738,34.776316,300 -http://irail.be/stations/NMBS/008884350,Thulin,,,,,be,3.744708,50.423335,32.929825,300 -http://irail.be/stations/NMBS/008815016,Thurn en Taxis/Tour et Taxis,Tour et Taxis,Thurn en Taxis,Tour et Taxis,Thurn en Taxis,be,4.341090917587279,50.87175167644673,31.54386,300 -http://irail.be/stations/NMBS/008821964,Tielen,,,,,be,4.893089,51.241021,56.947368,300 -http://irail.be/stations/NMBS/008892254,Tielt,,,,,be,3.330341,50.990842,40.934211,300 -http://irail.be/stations/NMBS/008833308,Tienen,Tirlemont,,Thienen,,be,4.92581,50.80802,128.77193,300 -http://irail.be/stations/NMBS/008842630,Tilff,,,,,be,5.583937,50.570624,61.960526,300 -http://irail.be/stations/NMBS/008872553,Tilly,,,,,be,4.552676,50.558084,32.881579,300 -http://irail.be/stations/NMBS/008895638,Tollembeek,,,,,be,3.992828,50.735522,40.95614,300 -http://irail.be/stations/NMBS/008831310,Tongeren,Tongres,,Tongern,,be,5.47328,50.784405,63.324561,300 -http://irail.be/stations/NMBS/008891314,Torhout,,,,,be,3.105871,51.064707,71.486842,300 +http://irail.be/stations/NMBS/008871811,Thuin,,,,,be,4.288906,50.342738,30.525714,300 +http://irail.be/stations/NMBS/008884350,Thulin,,,,,be,3.744708,50.423335,32.828571,300 +http://irail.be/stations/NMBS/008815016,Thurn en Taxis/Tour et Taxis,Tour et Taxis,Thurn en Taxis,Tour et Taxis,Thurn en Taxis,be,4.341090917587279,50.87175167644673,30.92,300 +http://irail.be/stations/NMBS/008821964,Tielen,,,,,be,4.893089,51.241021,56.565714,300 +http://irail.be/stations/NMBS/008892254,Tielt,,,,,be,3.330341,50.990842,39.485714,300 +http://irail.be/stations/NMBS/008833308,Tienen,Tirlemont,,Thienen,,be,4.92581,50.80802,127.737143,300 +http://irail.be/stations/NMBS/008842630,Tilff,,,,,be,5.583937,50.570624,62.257143,300 +http://irail.be/stations/NMBS/008872553,Tilly,,,,,be,4.552676,50.558084,32.674286,300 +http://irail.be/stations/NMBS/008895638,Tollembeek,,,,,be,3.992828,50.735522,40.04,300 +http://irail.be/stations/NMBS/008831310,Tongeren,Tongres,,Tongern,,be,5.47328,50.784405,69.131429,300 +http://irail.be/stations/NMBS/008891314,Torhout,,,,,be,3.105871,51.064707,69.714286,300 http://irail.be/stations/NMBS/008775500,Toulon,,,,,fr,5.9326648,43.1274781,0, -http://irail.be/stations/NMBS/008728654,Tourcoing,,,,,fr,3.15000000,50.7166670,44.921053,300 -http://irail.be/stations/NMBS/008885001,Tournai,,Doornik,,,be,3.396942,50.613134,165.890351,300 -http://irail.be/stations/NMBS/008845203,Trois-Ponts,,,,,be,5.873578,50.368214,34.118421,300 -http://irail.be/stations/NMBS/008200136,Troisvierges,,,,,lu,6.000281,50.121109,42.223684,180 -http://irail.be/stations/NMBS/008844271,Trooz,,,,,be,5.688346,50.573213,87.451754,300 -http://irail.be/stations/NMBS/008883808,Tubize,,Tubeke,,,be,4.205729,50.691708,162.951754,300 -http://irail.be/stations/NMBS/008821907,Turnhout,,,,,be,4.937415,51.322032,56.947368,300 -http://irail.be/stations/NMBS/008814134,Ukkel-Kalevoet/Uccle-Calevoet,Uccle-Calevoet,Ukkel-Kalevoet,,,be,4.332207,50.791749,123.035088,300 -http://irail.be/stations/NMBS/008814126,Ukkel-Stalle/Uccle-Stalle,Uccle-Stalle,Ukkel-Stalle,,,be,4.323901,50.802411,123.035088,300 +http://irail.be/stations/NMBS/008728654,Tourcoing,,,,,fr,3.15000000,50.7166670,44.748571,300 +http://irail.be/stations/NMBS/008885001,Tournai,,Doornik,,,be,3.396942,50.613134,168.737143,300 +http://irail.be/stations/NMBS/008845203,Trois-Ponts,,,,,be,5.873578,50.368214,34.6,300 +http://irail.be/stations/NMBS/008200136,Troisvierges,,,,,lu,6.000281,50.121109,42.017143,180 +http://irail.be/stations/NMBS/008844271,Trooz,,,,,be,5.688346,50.573213,88.64,300 +http://irail.be/stations/NMBS/008883808,Tubize,,Tubeke,,,be,4.205729,50.691708,160.457143,300 +http://irail.be/stations/NMBS/008821907,Turnhout,,,,,be,4.937415,51.322032,56.565714,300 +http://irail.be/stations/NMBS/008814134,Ukkel-Kalevoet/Uccle-Calevoet,Uccle-Calevoet,Ukkel-Kalevoet,,,be,4.332207,50.791749,121.377143,300 +http://irail.be/stations/NMBS/008814126,Ukkel-Stalle/Uccle-Stalle,Uccle-Stalle,Ukkel-Stalle,,,be,4.323901,50.802411,121.377143,300 +http://irail.be/stations/NMBS/008400621,Utrecht Centraal,,,,,nl,5.109722,52.089167,0, http://irail.be/stations/NMBS/008776302,Valence TGV,,,,,fr,4.90000000,44.9333300,0, -http://irail.be/stations/NMBS/008811270,Veltem,,,,,be,4.633516,50.900519,330.039474,300 -http://irail.be/stations/NMBS/008833050,Vertrijk,,,,,be,4.835522,50.836282,128.77193,300 -http://irail.be/stations/NMBS/008844008,Verviers-Central,,Verviers-Centraal,,,be,5.854917,50.588135,133.807018,240 -http://irail.be/stations/NMBS/008844057,Verviers-Palais,,Verviers-Paleis,,,be,5.865335,50.590921,82.75,300 -http://irail.be/stations/NMBS/008892304,Veurne,Furnes,,,,be,2.66994,51.073867,37.776316,300 -http://irail.be/stations/NMBS/008895612,Viane-Moerbeke,,,,,be,3.917337,50.751981,40.95614,300 -http://irail.be/stations/NMBS/008896230,Vichte,,,,,be,3.39163,50.833657,84.894737,300 -http://irail.be/stations/NMBS/008845146,Vielsalm,,,,,be,5.909211,50.278933,31.447368,300 -http://irail.be/stations/NMBS/008895489,Vijfhuizen,,,,,be,3.98125,50.943254,7.307018,300 -http://irail.be/stations/NMBS/008884632,Ville-Pommerœul,,,,,be,3.724248,50.464542,64.701754,300 -http://irail.be/stations/NMBS/008872579,Villers-la-Ville,,,,,be,4.533349,50.578103,32.881579,300 -http://irail.be/stations/NMBS/008811189,Vilvoorde,Vilvorde,,,,be,4.432823,50.924583,294.162281,240 -http://irail.be/stations/NMBS/008866407,Virton,,,,,be,5.519125,49.560821,31.219298,300 -http://irail.be/stations/NMBS/008849064,Vise-Frontiere,,,,,be,5.70290300,50.7584130,52.565789,120 -http://irail.be/stations/NMBS/008846201,Visé,,Wezet,,,be,5.692544,50.73776,39.052632,300 -http://irail.be/stations/NMBS/008866118,Viville,,,,,be,5.786527,49.688243,61.758772,300 -http://irail.be/stations/NMBS/008841327,Voroux,,,,,be,5.429556,50.66181,64.578947,300 -http://irail.be/stations/NMBS/008814118,Vorst-Oost/Forest-Est,Forest-Est,Vorst-Oost,,,be,4.320943,50.810195,123.035088,300 -http://irail.be/stations/NMBS/008814373,Vorst-Zuid/Forest-Midi,Forest-Midi,Vorst-Zuid,,,be,4.309167,50.809215,219.219298,300 -http://irail.be/stations/NMBS/008893815,Waarschoot,,,,,be,3.615353,51.154608,32.328947,300 -http://irail.be/stations/NMBS/008873007,Walcourt,,,,,be,4.435879,50.259219,34.315789,300 -http://irail.be/stations/NMBS/008896149,Waregem,,,,,be,3.42551,50.892456,81.429825,300 -http://irail.be/stations/NMBS/008841400,Waremme,,Borgworm,,,be,5.249475,50.694549,74.561404,300 -http://irail.be/stations/NMBS/008814266,Waterloo,,,,,be,4.383481,50.715422,179.982456,300 -http://irail.be/stations/NMBS/008811429,Watermaal/Watermael,Watermael,Watermaal,,,be,4.399887,50.80917,159.192982,300 -http://irail.be/stations/NMBS/008811726,Wavre,,Waver,,,be,4.604778,50.716267,77.144737,300 -http://irail.be/stations/NMBS/008822251,Weerde,,,,,be,4.470937,50.977449,249.017544,300 -http://irail.be/stations/NMBS/008844503,Welkenraedt,,,,,be,5.975381,50.659707,86.79386,180 -http://irail.be/stations/NMBS/008895851,Welle,,,,,be,4.05062,50.903279,111.355263,300 -http://irail.be/stations/NMBS/008896396,Wervik,,,,,be,3.046983,50.781861,41.425439,300 -http://irail.be/stations/NMBS/008822525,Wespelaar-Tildonk,,,,,be,4.638011,50.958544,66.77193,300 -http://irail.be/stations/NMBS/008893559,Wetteren,,,,,be,3.881883,51.001603,139.399123,120 -http://irail.be/stations/NMBS/008896370,Wevelgem,,,,,be,3.18352,50.811526,41.425439,300 -http://irail.be/stations/NMBS/008833233,Wezemaal,,,,,be,4.747679,50.956261,156.184211,300 -http://irail.be/stations/NMBS/008893534,Wichelen,,,,,be,3.969195,51.001962,62.921053,300 +http://irail.be/stations/NMBS/008811270,Veltem,,,,,be,4.633516,50.900519,330.102857,300 +http://irail.be/stations/NMBS/008833050,Vertrijk,,,,,be,4.835522,50.836282,127.737143,300 +http://irail.be/stations/NMBS/008844008,Verviers-Central,,Verviers-Centraal,,,be,5.854917,50.588135,120.131429,240 +http://irail.be/stations/NMBS/008844057,Verviers-Palais,,Verviers-Paleis,,,be,5.865335,50.590921,82.542857,300 +http://irail.be/stations/NMBS/008892304,Veurne,Furnes,,,,be,2.66994,51.073867,37.262857,300 +http://irail.be/stations/NMBS/008895612,Viane-Moerbeke,,,,,be,3.917337,50.751981,40.04,300 +http://irail.be/stations/NMBS/008896230,Vichte,,,,,be,3.39163,50.833657,83.971429,300 +http://irail.be/stations/NMBS/008845146,Vielsalm,,,,,be,5.909211,50.278933,31.588571,300 +http://irail.be/stations/NMBS/008895489,Vijfhuizen,,,,,be,3.98125,50.943254,6.72,300 +http://irail.be/stations/NMBS/008884632,Ville-Pommerœul,,,,,be,3.724248,50.464542,64.468571,300 +http://irail.be/stations/NMBS/008872579,Villers-la-Ville,,,,,be,4.533349,50.578103,32.674286,300 +http://irail.be/stations/NMBS/008811189,Vilvoorde,Vilvorde,,,,be,4.432823,50.924583,289.062857,240 +http://irail.be/stations/NMBS/008866407,Virton,,,,,be,5.519125,49.560821,21.005714,300 +http://irail.be/stations/NMBS/008849064,Vise-Frontiere,,,,,be,5.70290300,50.7584130,52.028571,120 +http://irail.be/stations/NMBS/008846201,Visé,,Wezet,,,be,5.692544,50.73776,48.262857,300 +http://irail.be/stations/NMBS/008866118,Viville,,,,,be,5.786527,49.688243,62.874286,300 +http://irail.be/stations/NMBS/008841327,Voroux,,,,,be,5.429556,50.66181,63.428571,300 +http://irail.be/stations/NMBS/008814118,Vorst-Oost/Forest-Est,Forest-Est,Vorst-Oost,,,be,4.320943,50.810195,121.377143,300 +http://irail.be/stations/NMBS/008814373,Vorst-Zuid/Forest-Midi,Forest-Midi,Vorst-Zuid,,,be,4.309167,50.809215,220.228571,300 +http://irail.be/stations/NMBS/008893815,Waarschoot,,,,,be,3.615353,51.154608,32.245714,300 +http://irail.be/stations/NMBS/008873007,Walcourt,,,,,be,4.435879,50.259219,34.965714,300 +http://irail.be/stations/NMBS/008896149,Waregem,,,,,be,3.42551,50.892456,82.085714,300 +http://irail.be/stations/NMBS/008841400,Waremme,,Borgworm,,,be,5.249475,50.694549,75.462857,300 +http://irail.be/stations/NMBS/008814266,Waterloo,,,,,be,4.383481,50.715422,164.097143,300 +http://irail.be/stations/NMBS/008811429,Watermaal/Watermael,Watermael,Watermaal,,,be,4.399887,50.80917,157.028571,300 +http://irail.be/stations/NMBS/008811726,Wavre,,Waver,,,be,4.604778,50.716267,80.32,300 +http://irail.be/stations/NMBS/008822251,Weerde,,,,,be,4.470937,50.977449,244.914286,300 +http://irail.be/stations/NMBS/008844503,Welkenraedt,,,,,be,5.975381,50.659707,85.542857,180 +http://irail.be/stations/NMBS/008895851,Welle,,,,,be,4.05062,50.903279,110.188571,300 +http://irail.be/stations/NMBS/008896396,Wervik,,,,,be,3.046983,50.781861,41.622857,300 +http://irail.be/stations/NMBS/008822525,Wespelaar-Tildonk,,,,,be,4.638011,50.958544,66.982857,300 +http://irail.be/stations/NMBS/008893559,Wetteren,,,,,be,3.881883,51.001603,136.308571,120 +http://irail.be/stations/NMBS/008896370,Wevelgem,,,,,be,3.18352,50.811526,41.622857,300 +http://irail.be/stations/NMBS/008833233,Wezemaal,,,,,be,4.747679,50.956261,158.857143,300 +http://irail.be/stations/NMBS/008893534,Wichelen,,,,,be,3.969195,51.001962,64.76,300 http://irail.be/stations/NMBS/008101003,Wien Hbf,,,,Vienna Main Station,at,16.375864,48.184923,0, -http://irail.be/stations/NMBS/008833175,Wijgmaal,,,,,be,4.701475,50.92274,66.77193,300 -http://irail.be/stations/NMBS/008821436,Wildert,,,,,be,4.46335,51.428087,83.644737,300 -http://irail.be/stations/NMBS/008822608,Willebroek,,,,,be,4.356019,51.066343,50.039474,300 -http://irail.be/stations/NMBS/008200132,Wilwerwiltz,,,,,lu,5.999166,49.988887,27.692982,300 -http://irail.be/stations/NMBS/008821709,Wolfstee,,,,,be,4.786144,51.168361,124.381579,300 -http://irail.be/stations/NMBS/008893211,Wondelgem,,,,,be,3.719071,51.088357,32.328947,300 -http://irail.be/stations/NMBS/008847258,Y.renory,,,,,be,5.55788000,50.6048560,44.144737,300 -http://irail.be/stations/NMBS/008873239,Yves-Gomezée,,,,,be,4.50040400,50.2369800,32.372807,300 -http://irail.be/stations/NMBS/008863545,Yvoir,,,,,be,4.878643,50.32084,60.846491,300 -http://irail.be/stations/NMBS/008895737,Zandbergen,,,,,be,3.957653,50.806986,47.653509,300 -http://irail.be/stations/NMBS/008811221,Zaventem,,,,,be,4.469886,50.885723,368.653509,300 -http://irail.be/stations/NMBS/008891264,Zedelgem,,,,,be,3.16414,51.127047,71.486842,300 -http://irail.be/stations/NMBS/008891553,Zeebrugge-Dorp,,,,,be,3.19517,51.326383,16.688596,300 -http://irail.be/stations/NMBS/008891173,Zeebrugge-Strand,,,,,be,3.18402800,51.3305030,12.763158,300 -http://irail.be/stations/NMBS/008894235,Zele,,,,,be,4.041999,51.073256,42.631579,300 -http://irail.be/stations/NMBS/008812062,Zellik,,,,,be,4.274541,50.890028,90.517544,300 -http://irail.be/stations/NMBS/008833274,Zichem,,,,,be,4.987359,51.00669,126.947368,300 -http://irail.be/stations/NMBS/008892635,Zingem,,,,,be,3.646384,50.908025,37.583333,300 -http://irail.be/stations/NMBS/008832250,Zolder,,,,,be,5.3299,51.033548,30.464912,300 -http://irail.be/stations/NMBS/008832334,Zonhoven,,,,,be,5.348815,50.989557,47.885965,300 -http://irail.be/stations/NMBS/008895208,Zottegem,,,,,be,3.81441,50.869102,218.421053,240 +http://irail.be/stations/NMBS/008833175,Wijgmaal,,,,,be,4.701475,50.92274,66.468571,300 +http://irail.be/stations/NMBS/008821436,Wildert,,,,,be,4.46335,51.428087,75.828571,300 +http://irail.be/stations/NMBS/008822608,Willebroek,,,,,be,4.356019,51.066343,39.262857,300 +http://irail.be/stations/NMBS/008200132,Wilwerwiltz,,,,,lu,5.999166,49.988887,0.114286,300 +http://irail.be/stations/NMBS/008821709,Wolfstee,,,,,be,4.786144,51.168361,118.171429,300 +http://irail.be/stations/NMBS/008893211,Wondelgem,,,,,be,3.719071,51.088357,32.245714,300 +http://irail.be/stations/NMBS/008847258,Y.renory,,,,,be,5.55788000,50.6048560,43.017143,300 +http://irail.be/stations/NMBS/008873239,Yves-Gomezée,,,,,be,4.50040400,50.2369800,32.697143,300 +http://irail.be/stations/NMBS/008863545,Yvoir,,,,,be,4.878643,50.32084,62.051429,300 +http://irail.be/stations/NMBS/008895737,Zandbergen,,,,,be,3.957653,50.806986,47.245714,300 +http://irail.be/stations/NMBS/008811221,Zaventem,,,,,be,4.469886,50.885723,371.228571,300 +http://irail.be/stations/NMBS/008891264,Zedelgem,,,,,be,3.16414,51.127047,69.714286,300 +http://irail.be/stations/NMBS/008891553,Zeebrugge-Dorp,,,,,be,3.19517,51.326383,15.36,300 +http://irail.be/stations/NMBS/008891173,Zeebrugge-Strand,,,,,be,3.18402800,51.3305030,13.954286,300 +http://irail.be/stations/NMBS/008894235,Zele,,,,,be,4.041999,51.073256,42.902857,300 +http://irail.be/stations/NMBS/008812062,Zellik,,,,,be,4.274541,50.890028,88.6,300 +http://irail.be/stations/NMBS/008833274,Zichem,,,,,be,4.987359,51.00669,127.114286,300 +http://irail.be/stations/NMBS/008892635,Zingem,,,,,be,3.646384,50.908025,37.331429,300 +http://irail.be/stations/NMBS/008832250,Zolder,,,,,be,5.3299,51.033548,30.571429,300 +http://irail.be/stations/NMBS/008832334,Zonhoven,,,,,be,5.348815,50.989557,30.571429,300 +http://irail.be/stations/NMBS/008895208,Zottegem,,,,,be,3.81441,50.869102,184.845714,240 http://irail.be/stations/NMBS/008891611,Zwankendamme,,,,,be,3.191557,51.306409,0, -http://irail.be/stations/NMBS/008894821,Zwijndrecht,,,,,be,4.32978,51.214108,144.429825,300 -http://irail.be/stations/NMBS/000000101,Zwijndrecht Dorp,,,,,be,4.32571361,51.2191923,0, -http://irail.be/stations/NMBS/008883212,Écaussinnes,,,,,be,4.156639,50.56239,59.539474,300 \ No newline at end of file +http://irail.be/stations/NMBS/008894821,Zwijndrecht,,,,,be,4.32978,51.214108,140.131429,300 +http://irail.be/stations/NMBS/000000252,Zwijndrecht-Dorp,,,,,be,4.32567070,51.2191653,1.588571,120 +http://irail.be/stations/NMBS/008883212,Écaussinnes,,,,,be,4.156639,50.56239,59.44,300 \ No newline at end of file