Ignore:
Timestamp:
2010-04-13T04:02:02+02:00 (15 years ago)
Author:
roland
Message:

Public Transport Plugin: Performance Improvements

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/public_transport/src/public_transport/RoutePatternAction.java

    r20895 r20896  
    21082108      if (curMember.isWay())
    21092109      {
    2110         insPos = insertGapIfNecessary(curMember.getWay(), curMember.getRole(), lastNodeId, insPos);
    2111        
    21122110        itineraryData.insertRow(insPos, curMember.getWay(), curMember.getRole());
    21132111        if (insPos >= 0)
    21142112          ++insPos;
    2115        
    2116         lastNodeId = getLastNodeId(curMember.getWay(), curMember.getRole());
    2117       }
    2118     }
     2113      }
     2114    }
     2115    itineraryData.cleanupGaps();
    21192116  }
    21202117 
     
    21302127          ++insPos;
    21312128      }
    2132     }
    2133   }
    2134  
    2135   private int insertGapIfNecessary(Way way, String role, long lastNodeId, int insPos)
    2136   {
    2137     String[] buf = { "", "" };
    2138     if (gapNecessary(way, role, lastNodeId))
    2139     {
    2140       buf[0] = "[gap]";
    2141       itineraryData.insertRow(insPos, buf);
    2142       if (insPos >= 0)
    2143         ++insPos;
    2144     }
    2145     return insPos;
    2146   }
    2147  
    2148   private boolean gapNecessary(Way way, String role, long lastNodeId)
    2149   {
    2150     if ((way != null) && (!(way.isIncomplete())) && (way.getNodesCount() >= 1))
    2151     {
    2152       if ("backward".equals(role))
    2153       {
    2154         long firstNodeId = way.getNode(way.getNodesCount() - 1).getId();
    2155         if ((lastNodeId != 0) && (lastNodeId != firstNodeId))
    2156           return true;
    2157       }
    2158       else
    2159       {
    2160         long firstNodeId = way.getNode(0).getId();
    2161         if ((lastNodeId != 0) && (lastNodeId != firstNodeId))
    2162           return true;
    2163       }
    2164     }
    2165     return false;
    2166   }
    2167  
    2168   private long getLastNodeId(Way way, String role)
    2169   {
    2170     if ((way == null) || (way.isIncomplete()) || (way.getNodesCount() < 1))
    2171     {
    2172       return 0;
    2173     }
    2174     else
    2175     {
    2176       if ("backward".equals(role))
    2177         return way.getNode(0).getId();
    2178       else
    2179         return way.getNode(way.getNodesCount() - 1).getId();
    21802129    }
    21812130  }
Note: See TracChangeset for help on using the changeset viewer.