geotoolkit 测井曲线显示时间、深度双刻度

geotoolkit 测井曲线显示时间、深度双刻度

geotoolkit wellLog show two axis,depth anddepth

 

设置刻度道类型 md, tvd, time

new geotoolkit.welllog.widgets.WellLogWidget({
  'indexType':'md',
  'indexUnit':'ms'
})

 

添加刻度道,类型由widget'indexType'决定

IndexTrack的单位由indexUnit决定,双刻度单位,需要自定义Header

wellLogWidget.addTrack(geotoolkit.welllog.widgets.TrackType.IndexTrack)

 

添加第二刻度道

geotoolkit.axis.Axis(tickGenerator)

logTrack.addChild(axis)

wellLogWidget.addTrack(geotoolkit.welllog.LogTrack)

 

createCustomHeader()自定义Header

其中若用LogAxis,将自动生成Header

var logTrack = new geotoolkit.welllog.LogTrack()



var times = [400, 1000, 2000, 4000];

var stepDepthMajor = 100;

var stepDepthMinor = stepDepthMajor / depths,stepDepthMajor,stepDepthMinor);

tickGenerator.setVisibleLabelGrade('MINOR',false)

tickGenerator.setVisibleTickGrade('MINOR',false)

var axis = new geotoolkit.axis.Axis(tickGenerator)



axis.setName("Depth")

logTrack.addChild(50)



var depthIndexTrackHeader = createCustomHeader(axis)

    .setBounds(new geotoolkit.util.Rect(logTrack.<span lang="EN-US" style="" font-size:"="">getBounds().getLeft(), 15, logTrack.getBounds().getRight(), 100))

// wellLogWidget.getHeaderContainer().addChild(depthIndexTrackHeader)

wellLogWidget.addChild(depthIndexTrackHeader)


 

function createCustomHeader(curve) {
  var CustomCurveVisualHeader = function (visual) {
    geotoolkit.welllog.header.LogVisualHeader.call(this, visual);
    this.setTextStyle(new geotoolkit.attributes.TextStyle("rgb(0,0,0)", "middle", "left", "11px sans-serif"));
    this.setModelLimits(new geotoolkit.util.Rect(0, 0, 100, 40));
  };
  geotoolkit.inherits(CustomCurveVisualHeader, geotoolkit.welllog.header.LogVisualHeader);
  geotoolkit.setClassName(CustomCurveVisualHeader, 'CustomCurveVisualHeader');

  /**
   * Render
   * @override
   * @param {geotoolkit.renderer.RenderingContext} inputContext
   */
  CustomCurveVisualHeader.prototype.render = function (inputContext) {
    var context = this.getWorldTransform() != null ? inputContext.pushTransformation(this.getWorldTransform()) : inputContext;
    var rc = this.getModelLimits();
    if (rc != null) {
      var curve = this.getVisual();
      var curveName = 'Depth' //curve.getName();
      // sets text style
      context.setTextStyle(this.getTextStyle().clone().setAlignment("center").setBaseLine("top"));
      var oldTr = context.getTransformation();
      // transform anchor coordinates to device
      var pos = oldTr.transformXY(rc.getCenterX(), rc.getTop());
      // Sets identity transformation
      context.setTransformation(new geotoolkit.util.Transformation());
      // draw text
      context.drawText(pos.getX(), pos.getY(), curveName);

      // context.setTextStyle(this.getTextStyle().clone().setAlignment("center").setBaseLine("top").setFont('12px Arial'));
      // context.drawText(pos.getX(), pos.getY()+40, "in:m");
    }
  };

  /**
   * Clone
   * @override
   * @returns {CustomCurveVisualHeader} this
   */
  CustomCurveVisualHeader.prototype.clone = function () {
    var header = new CustomCurveVisualHeader(this.getVisual());
    geotoolkit.mergeObjects(this, header);
    return header;
  };
  // Allows using obfuscated toolkit
  geotoolkit.obfuscate(CustomCurveVisualHeader, geotoolkit.welllog.header.LogVisualHeader);

  return new CustomCurveVisualHeader(curve);
}

版权声明:本文为lvzhyt原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。