From b8592a1740072967f0347e524d3cb5d5e08172dd Mon Sep 17 00:00:00 2001 From: "andreas.schildbach@gmail.com" Date: Wed, 8 Jun 2011 21:08:08 +0000 Subject: [PATCH] try to split place from addresses as well git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@683 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/AbstractHafasProvider.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/de/schildbach/pte/AbstractHafasProvider.java b/src/de/schildbach/pte/AbstractHafasProvider.java index 0a01b9e0..52d64d0a 100644 --- a/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/src/de/schildbach/pte/AbstractHafasProvider.java @@ -112,9 +112,15 @@ public abstract class AbstractHafasProvider implements NetworkProvider return 0; } + private static final Pattern P_SPLIT_ADDRESS = Pattern.compile("(\\d{5}\\s+[^,]+),\\s+(.*)"); + protected String[] splitPlaceAndName(final String name) { - return new String[] { null, name }; + final Matcher matcher = P_SPLIT_ADDRESS.matcher(name); + if (matcher.matches()) + return new String[] { matcher.group(1), matcher.group(2) }; + else + return new String[] { null, name }; } private final String wrap(final String request) @@ -291,7 +297,8 @@ public abstract class AbstractHafasProvider implements NetworkProvider } else if (type == 2) // address { - results.add(new Location(LocationType.ADDRESS, 0, lat, lon, null, value)); + final String[] placeAndName = splitPlaceAndName(value); + results.add(new Location(LocationType.ADDRESS, 0, lat, lon, placeAndName[0], placeAndName[1])); } else if (type == 4) // poi {