如何在 GTFS 中将停靠站分组到父站?
How do I group stops into a parent station in GTFS?
在GTFS(定义public交通时刻表和地理信息)中,一个站点(parent_station
)包含多个站点(stop_id
)。
我正在分析巴黎 GTFS 数据。所有 parent_station
字段均为空值。
mysql> SELECT DISTINCT parent_station FROM stops;
+----------------+
| parent_station |
+----------------+
| |
| 0 |
+----------------+
如何指定停靠点的父站点(或将站点分组到父站点)?
mysql> SELECT * FROM stops LIMIT 10;
+---------+-----------+------------------------------------+-------------------------------------------+-----------+----------+---------------+----------------+
| stop_id | stop_code | stop_name | stop_desc | stop_lat | stop_lon | location_type | parent_station |
+---------+-----------+------------------------------------+-------------------------------------------+-----------+----------+---------------+----------------+
| 1166824 | | "Olympiades" | "91 rue de Tolbiac - 75113" | 48.826948 | 2.367038 | 0 | |
| 1166825 | | "Olympiades" | "91 rue de Tolbiac - 75113" | 48.826948 | 2.367038 | 0 | |
| 1166826 | | "Bibliotheque-Francois Mitterrand" | "Face au 62 rue du Chevaleret - 75113" | 48.829831 | 2.376120 | 0 | |
| 1166827 | | "Bibliotheque-Francois Mitterrand" | "Face au 62 rue du Chevaleret - 75113" | 48.829831 | 2.376120 | 0 | |
| 1166828 | | "Cour Saint-Emilion" | "Cour Chamonard - 75112" | 48.833314 | 2.387300 | 0 | |
| 1166829 | | "Cour Saint-Emilion" | "Cour Chamonard - 75112" | 48.833314 | 2.387300 | 0 | |
| 1166830 | | "Bercy" | "Place du Bataillon du Pacifique - 75112" | 48.840543 | 2.379409 | 0 | |
| 1166831 | | "Bercy" | "Place du Bataillon du Pacifique - 75112" | 48.840543 | 2.379409 | 0 | |
| 1166832 | | "Gare de Lyon" | "Gare SNCF - 75112" | 48.844652 | 2.373108 | 0 | |
| 1166833 | | "Gare de Lyon" | "Gare SNCF - 75112" | 48.844652 | 2.373108 | 0 | |
+---------+-----------+------------------------------------+-------------------------------------------+-----------+----------+---------------+----------------+
停靠点1166830
和1166831
应该属于同一个经纬度相同的母站。
我想到了一个主意。对于给定的半径(例如 r
),如果两个停靠点的距离(例如 d
)小于 r
,即 d < r
,则它们属于同一站。
有更好的主意吗?
假设您确定停靠站条目不是重复的,而是位于站内的停靠站,我建议采用以下解决方案:
查找具有相同名称和位置的不同停靠站列表,然后编辑以将列表中的第一个停靠站指示为 "station" 并将列表中的其他剩余停靠站指示为车站内的停靠站。
Reference document会帮你做到。作为示例,我给你以下编辑的(显示为 ^^^^)行:
| 1166830 | | "Bercy"| "Place du Bataillon du Pacifique - 75112" | 48.840543 | 2.379409 | 1 | |
^^^
| 1166831 | | "Bercy"| "Place du Bataillon du Pacifique - 75112" | 48.840543 | 2.379409 | 0 | 1166830 |
^^^^^^^
在GTFS(定义public交通时刻表和地理信息)中,一个站点(parent_station
)包含多个站点(stop_id
)。
我正在分析巴黎 GTFS 数据。所有 parent_station
字段均为空值。
mysql> SELECT DISTINCT parent_station FROM stops;
+----------------+
| parent_station |
+----------------+
| |
| 0 |
+----------------+
如何指定停靠点的父站点(或将站点分组到父站点)?
mysql> SELECT * FROM stops LIMIT 10;
+---------+-----------+------------------------------------+-------------------------------------------+-----------+----------+---------------+----------------+
| stop_id | stop_code | stop_name | stop_desc | stop_lat | stop_lon | location_type | parent_station |
+---------+-----------+------------------------------------+-------------------------------------------+-----------+----------+---------------+----------------+
| 1166824 | | "Olympiades" | "91 rue de Tolbiac - 75113" | 48.826948 | 2.367038 | 0 | |
| 1166825 | | "Olympiades" | "91 rue de Tolbiac - 75113" | 48.826948 | 2.367038 | 0 | |
| 1166826 | | "Bibliotheque-Francois Mitterrand" | "Face au 62 rue du Chevaleret - 75113" | 48.829831 | 2.376120 | 0 | |
| 1166827 | | "Bibliotheque-Francois Mitterrand" | "Face au 62 rue du Chevaleret - 75113" | 48.829831 | 2.376120 | 0 | |
| 1166828 | | "Cour Saint-Emilion" | "Cour Chamonard - 75112" | 48.833314 | 2.387300 | 0 | |
| 1166829 | | "Cour Saint-Emilion" | "Cour Chamonard - 75112" | 48.833314 | 2.387300 | 0 | |
| 1166830 | | "Bercy" | "Place du Bataillon du Pacifique - 75112" | 48.840543 | 2.379409 | 0 | |
| 1166831 | | "Bercy" | "Place du Bataillon du Pacifique - 75112" | 48.840543 | 2.379409 | 0 | |
| 1166832 | | "Gare de Lyon" | "Gare SNCF - 75112" | 48.844652 | 2.373108 | 0 | |
| 1166833 | | "Gare de Lyon" | "Gare SNCF - 75112" | 48.844652 | 2.373108 | 0 | |
+---------+-----------+------------------------------------+-------------------------------------------+-----------+----------+---------------+----------------+
停靠点1166830
和1166831
应该属于同一个经纬度相同的母站。
我想到了一个主意。对于给定的半径(例如 r
),如果两个停靠点的距离(例如 d
)小于 r
,即 d < r
,则它们属于同一站。
有更好的主意吗?
假设您确定停靠站条目不是重复的,而是位于站内的停靠站,我建议采用以下解决方案: 查找具有相同名称和位置的不同停靠站列表,然后编辑以将列表中的第一个停靠站指示为 "station" 并将列表中的其他剩余停靠站指示为车站内的停靠站。
Reference document会帮你做到。作为示例,我给你以下编辑的(显示为 ^^^^)行:
| 1166830 | | "Bercy"| "Place du Bataillon du Pacifique - 75112" | 48.840543 | 2.379409 | 1 | |
^^^
| 1166831 | | "Bercy"| "Place du Bataillon du Pacifique - 75112" | 48.840543 | 2.379409 | 0 | 1166830 |
^^^^^^^