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);
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值