reworked csv-listing

This commit is contained in:
Arndt 2014-09-28 14:33:07 +02:00
parent 65d150fd43
commit 1ee41026c1
4 changed files with 21 additions and 41 deletions

View File

@ -98,6 +98,8 @@ final class OsmPath implements OsmLinkHolder
int linkdist = 0;
int linkelevationcost = 0;
int linkturncost = 0;
int linknodecost = 0;
int linkinitcost = 0;
OsmTransferNode transferNode = link.decodeFirsttransfer();
OsmNode targetNode = link.targetNode;
@ -139,6 +141,8 @@ final class OsmPath implements OsmLinkHolder
linkdist = 0;
linkelevationcost = 0;
linkturncost = 0;
linknodecost = 0;
linkinitcost = 0;
}
int dist = rc.calcDistance( lon1, lat1, lon2, lat2 );
@ -176,7 +180,7 @@ final class OsmPath implements OsmLinkHolder
linkdisttotal += dist;
// *** penalty for way-change
// *** penalty for turning angles
if ( origin.originElement != null )
{
// penalty proportional to direction change
@ -283,6 +287,7 @@ final class OsmPath implements OsmLinkHolder
lastCostfactor = newcostfactor;
float initialcost = rc.expctxWay.getInitialcost();
int iicost = (int)initialcost;
linkinitcost += iicost;
cost += iicost;
}
@ -296,7 +301,9 @@ final class OsmPath implements OsmLinkHolder
+ iCost + "\t"
+ linkelevationcost
+ "\t" + linkturncost
+ rc.expctxWay.getCsvDescription( link.counterLinkWritten, description );
+ "\t" + linknodecost
+ "\t" + linkinitcost
+ rc.expctxWay.getKeyValueDescription( link.counterLinkWritten, description );
}
if ( stopAtEndpoint )
@ -305,6 +312,7 @@ final class OsmPath implements OsmLinkHolder
{
originElement = new OsmPathElement( rc.ilonshortest, rc.ilatshortest, ele2, originElement );
originElement.cost = cost;
originElement.message = lastMessage;
}
if ( rc.nogomatch )
{
@ -359,6 +367,7 @@ final class OsmPath implements OsmLinkHolder
return;
}
int iicost = (int)initialcost;
linknodecost += iicost;
cost += iicost;
}
}

View File

@ -349,11 +349,7 @@ public final class OsmTrack
{
// csv-header-line
String header = "Longitude\tLatitude\tElevation\tDistance\tCostPerKm\tElevCost\tTurnCost";
if ( rc.expctxWay != null )
{
header += rc.expctxWay.getCsvHeader();
}
String header = "Longitude\tLatitude\tElevation\tDistance\tCostPerKm\tElevCost\tTurnCost\tNodeCost\tInitialCost\tOsmTags";
dumpLine( bw, header );
for( OsmPathElement n : nodes )
{

View File

@ -166,7 +166,7 @@ public final class BExpressionContext
decode( ld2, ab );
for( int inum = 0; inum < lookupValues.size(); inum++ ) // loop over lookup names
{
if ( ld2[inum] != ld[inum] ) throw new RuntimeException( "assertion failed encoding " + getKeyValueDescription(ab) );
if ( ld2[inum] != ld[inum] ) throw new RuntimeException( "assertion failed encoding " + getKeyValueDescription(false, ab) );
}
return ab;
@ -273,7 +273,7 @@ public final class BExpressionContext
}
}
public String getCsvDescription( boolean inverseDirection, byte[] ab )
public String getKeyValueDescription( boolean inverseDirection, byte[] ab )
{
int inverseBitByteIndex = meta.readVarLength ? 0 : 7;
int abLen = ab.length;
@ -285,41 +285,16 @@ public final class BExpressionContext
decode( lookupData, ab_copy );
for( int inum = 0; inum < lookupValues.size(); inum++ ) // loop over lookup names
{
int idx = meta.readVarLength ? (inum+1)%lookupValues.size() : inum; // reversebit at the end..
BExpressionLookupValue[] va = lookupValues.get(idx);
sb.append( '\t' ).append( va[lookupData[idx]].toString() );
BExpressionLookupValue[] va = lookupValues.get(inum);
String value = va[lookupData[inum]].toString();
if ( value != null && value.length() > 0 )
{
sb.append( " " + lookupNames.get( inum ) + "=" + value );
}
}
return sb.toString();
}
public String getCsvHeader()
{
StringBuilder sb = new StringBuilder( 200 );
for( int inum = 0; inum < lookupNames.size(); inum++ ) // loop over lookup names
{
int idx = meta.readVarLength ? (inum+1)%lookupValues.size() : inum; // reversebit at the end..
sb.append( '\t' ).append( lookupNames.get(idx) );
}
return sb.toString();
}
public String getKeyValueDescription( byte[] ab )
{
StringBuilder sb = new StringBuilder( 200 );
decode( lookupData, ab );
for( int inum = 0; inum < lookupValues.size(); inum++ ) // loop over lookup names
{
BExpressionLookupValue[] va = lookupValues.get(inum);
String value = va[lookupData[inum]].toString();
if ( value != null && value.length() > 0 )
{
sb.append( " " + lookupNames.get( inum ) + "=" + value );
}
}
return sb.toString();
}
private int parsedLines = 0;
private boolean fixTagsWritten = false;

View File

@ -131,7 +131,7 @@ public class RelationMerger extends MapCreatorBase
expctxCheck.evaluate( false, data.description, null );
ok = expctxCheck.getCostfactor() < 10000.;
System.out.println( "** relation access conflict for wid = " + data.wid + " tags:" + expctxReport.getKeyValueDescription( data.description ) + " (ok=" + ok + ")" );
System.out.println( "** relation access conflict for wid = " + data.wid + " tags:" + expctxReport.getKeyValueDescription( false, data.description ) + " (ok=" + ok + ")" );
}
if ( ok )