fix issue 1164, processing address with identical street and street2 tag
This commit is contained in:
parent
ba50378510
commit
9c1f73e2c6
3 changed files with 9 additions and 0 deletions
|
@ -77,6 +77,11 @@ public class CachedDBStreetDAO extends DBStreetDAO
|
||||||
return addressBuildingLocalSet.contains(e.getId());
|
return addressBuildingLocalSet.contains(e.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean removeBuilding(Entity e) throws SQLException {
|
||||||
|
addressBuildingLocalSet.remove(e.getId());
|
||||||
|
return super.removeBuilding(e);
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean findStreetNode(Entity e) {
|
public boolean findStreetNode(Entity e) {
|
||||||
return addressStreetNodeLocalSet.contains(e.getId());
|
return addressStreetNodeLocalSet.contains(e.getId());
|
||||||
|
|
|
@ -194,6 +194,7 @@ public class DBStreetDAO extends AbstractIndexPartCreator
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean removeBuilding(Entity e) throws SQLException {
|
public boolean removeBuilding(Entity e) throws SQLException {
|
||||||
|
executePendingPreparedStatements(); //ala flush
|
||||||
addressRemoveBuildingStat.setLong(1, e.getId());
|
addressRemoveBuildingStat.setLong(1, e.getId());
|
||||||
boolean res = addressRemoveBuildingStat.execute();
|
boolean res = addressRemoveBuildingStat.execute();
|
||||||
commit();
|
commit();
|
||||||
|
|
|
@ -742,8 +742,11 @@ public class IndexAddressCreator extends AbstractIndexPartCreator{
|
||||||
Building building2 = new Building(e);
|
Building building2 = new Building(e);
|
||||||
building2.setName(hno.substring(secondNumber + 1));
|
building2.setName(hno.substring(secondNumber + 1));
|
||||||
Set<Long> ids2OfStreet = getStreetInCity(e.getIsInNames(), e.getTag(OSMTagKey.ADDR_STREET2), null, l);
|
Set<Long> ids2OfStreet = getStreetInCity(e.getIsInNames(), e.getTag(OSMTagKey.ADDR_STREET2), null, l);
|
||||||
|
ids2OfStreet.removeAll(idsOfStreet); //remove duplicated entries!
|
||||||
if(!ids2OfStreet.isEmpty()) {
|
if(!ids2OfStreet.isEmpty()) {
|
||||||
streetDAO.writeBuilding(ids2OfStreet, building2);
|
streetDAO.writeBuilding(ids2OfStreet, building2);
|
||||||
|
} else {
|
||||||
|
building.setName2(building2.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue