Ejemplo n.º 1
0
  @Override
  public void complete() {

    // if smart exclusions enabled and tile is not empty, send them to
    // writer
    if (!StatsHelper.isTileEmpty(stats) && XplaneOptionsHelper.getOptions().isSmartExclusions()) {
      String exclusions = exclusionsHelper.exportExclusions();
      writer.complete(exclusions);

    } else {
      writer.complete(null);
    }

    if (!StatsHelper.isTileEmpty(stats)) {
      Osm2xpLogger.info(
          "Tile "
              + (int) currentTile.x
              + "/"
              + (int) currentTile.y
              + " stats : "
              + stats.getBuildingsNumber()
              + " buildings, "
              + stats.getForestsNumber()
              + " forests, "
              + stats.getStreetlightsNumber()
              + " street lights, "
              + stats.getObjectsNumber()
              + " objects. (generation took "
              + MiscUtils.getTimeDiff(startTime, new Date())
              + ")");

      // stats
      try {
        if (XplaneOptionsHelper.getOptions().isGenerateXmlStats()
            || XplaneOptionsHelper.getOptions().isGeneratePdfStats()) {
          StatsHelper.getStatsList().add(stats);
        }
        if (XplaneOptionsHelper.getOptions().isGenerateXmlStats()) {
          StatsHelper.saveStats(folderPath, currentTile, stats);
        }
        if (XplaneOptionsHelper.getOptions().isGeneratePdfStats()) {
          StatsHelper.generatePdfReport(folderPath, stats);
        }
      } catch (Osm2xpBusinessException e) {
        Osm2xpLogger.error("Error saving stats file for tile " + currentTile, e);
      }
    } else if (!GuiOptionsHelper.getOptions().isSinglePass()) {
      Osm2xpLogger.info(
          "Tile "
              + (int) currentTile.x
              + "/"
              + (int) currentTile.y
              + " is empty, no dsf generated");
    }
  }
Ejemplo n.º 2
0
  /**
   * Compute the height for this polygon and osm tags.
   *
   * @return Integer the height.
   */
  private Integer computeBuildingHeight(OsmPolygon polygon) {
    Integer result = null;
    Integer osmHeight = polygon.getHeight();
    if (osmHeight != null) {
      result = osmHeight;
    } else {

      if (polygon.getArea() * 10000000 < 0.2) {
        result = XplaneOptionsHelper.getOptions().getResidentialMin();
      } else {
        if (polygon.getArea() * 10000000 > ASSERTION_RESIDENTIAL_MAX_AREA)
          result =
              MiscUtils.getRandomSize(
                  XplaneOptionsHelper.getOptions().getBuildingMin(),
                  XplaneOptionsHelper.getOptions().getBuildingMax());
        else if (polygon.getArea() * 10000000 < ASSERTION_RESIDENTIAL_MAX_AREA)
          result =
              MiscUtils.getRandomSize(
                  XplaneOptionsHelper.getOptions().getResidentialMin(),
                  XplaneOptionsHelper.getOptions().getResidentialMax());
      }
    }
    return result;
  }