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); }