コード例 #1
0
  /** fix the resolution to something compatible with the resolutions available in tilecache. */
  private Transformer fixTiledTransformer(Transformer transformer) {
    double resolution;

    // if clientResolution is passed from client use it explicitly if available otherwise calculate
    // nearest resolution
    if (this.context.getCurrentPageParams().has("clientResolution")) {
      float clientResolution = this.context.getCurrentPageParams().getFloat("clientResolution");
      boolean hasServerResolution = false;
      for (double serverResolution : this.tileCacheLayerInfo.getResolutions()) {
        if (serverResolution == clientResolution) {
          hasServerResolution = true;
        }
      }
      if (!hasServerResolution) {
        return null;
      } else {
        resolution = clientResolution;
      }
    } else {
      double targetResolution = (transformer.getGeoW() / transformer.getStraightBitmapW());
      TileCacheLayerInfo.ResolutionInfo resolutionInfo =
          tileCacheLayerInfo.getNearestResolution(targetResolution);
      resolution = resolutionInfo.value;
    }
    // TODO Gucken was mit diesem Transformer gemacht wird!!!
    transformer = transformer.clone();
    transformer.setResolution(resolution);
    return transformer;
  }