mirror of
https://github.com/FoggedLens/iD.git
synced 2026-05-20 07:25:15 +02:00
Handle variants of 'stop' and 'platform' when identifying PTv2 members
(closes #4946)
This commit is contained in:
@@ -11,7 +11,7 @@ export function actionAddMember(relationId, member, memberIndex, insertPair) {
|
||||
var relation = graph.entity(relationId);
|
||||
|
||||
// There are some special rules for Public Transport v2 routes.
|
||||
var isPTv2 = (member.role === 'stop' || member.role === 'platform');
|
||||
var isPTv2 = /stop|platform/.test(member.role);
|
||||
|
||||
if ((isNaN(memberIndex) || insertPair) && member.type === 'way' && !isPTv2) {
|
||||
// Try to perform sensible inserts based on how the ways join together
|
||||
@@ -41,7 +41,7 @@ export function actionAddMember(relationId, member, memberIndex, insertPair) {
|
||||
var members = [];
|
||||
for (i = 0; i < relation.members.length; i++) {
|
||||
var m = relation.members[i];
|
||||
if (m.role === 'stop' || m.role === 'platform') {
|
||||
if (/stop|platform/.test(m.role)) {
|
||||
PTv2members.push(m);
|
||||
} else {
|
||||
members.push(m);
|
||||
|
||||
@@ -187,13 +187,15 @@ describe('iD.actionAddMember', function() {
|
||||
iD.osmRelation({id: 'r', members: [
|
||||
{ id: 'n1', type: 'node', role: 'stop' },
|
||||
{ id: 'w1', type: 'way', role: 'platform' },
|
||||
{ id: 'n2', type: 'node', role: 'stop' },
|
||||
{ id: 'w2', type: 'way', role: 'platform' },
|
||||
{ id: 'n3', type: 'node', role: 'forward' },
|
||||
{ id: 'n4', type: 'node', role: 'forward' },
|
||||
{ id: 'n2', type: 'node', role: 'stop_entry_only' },
|
||||
{ id: 'w2', type: 'way', role: 'platform_entry_only' },
|
||||
{ id: 'n3', type: 'node', role: 'stop_exit_only' },
|
||||
{ id: 'w3', type: 'way', role: 'platform_exit_only' },
|
||||
{ id: 'n10', type: 'node', role: 'forward' },
|
||||
{ id: 'n11', type: 'node', role: 'forward' },
|
||||
{ id: '-', type: 'way', role: 'forward' },
|
||||
{ id: 'r1', type: 'relation', role: 'forward' },
|
||||
{ id: 'n5', type: 'node', role: 'forward' }
|
||||
{ id: 'n12', type: 'node', role: 'forward' }
|
||||
]})
|
||||
]);
|
||||
|
||||
@@ -201,11 +203,13 @@ describe('iD.actionAddMember', function() {
|
||||
expect(graph.entity('r').members).to.eql([
|
||||
{ id: 'n1', type: 'node', role: 'stop' },
|
||||
{ id: 'w1', type: 'way', role: 'platform' },
|
||||
{ id: 'n2', type: 'node', role: 'stop' },
|
||||
{ id: 'w2', type: 'way', role: 'platform' },
|
||||
{ id: 'n3', type: 'node', role: 'forward' },
|
||||
{ id: 'n4', type: 'node', role: 'forward' },
|
||||
{ id: 'n5', type: 'node', role: 'forward' },
|
||||
{ id: 'n2', type: 'node', role: 'stop_entry_only' },
|
||||
{ id: 'w2', type: 'way', role: 'platform_entry_only' },
|
||||
{ id: 'n3', type: 'node', role: 'stop_exit_only' },
|
||||
{ id: 'w3', type: 'way', role: 'platform_exit_only' },
|
||||
{ id: 'n10', type: 'node', role: 'forward' },
|
||||
{ id: 'n11', type: 'node', role: 'forward' },
|
||||
{ id: 'n12', type: 'node', role: 'forward' },
|
||||
{ id: '-', type: 'way', role: 'forward' },
|
||||
{ id: '=', type: 'way', role: 'forward' },
|
||||
{ id: 'r1', type: 'relation', role: 'forward' }
|
||||
|
||||
Reference in New Issue
Block a user