docs: function getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {
      var coordSys = seriesModel.coordinateSystem;
      var itemModel = data.getItemModel(idx);
  
      var point;
      var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());
      var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight());
      if (!isNaN(xPx) && !isNaN(yPx)) {
          point = [xPx, yPx];
      }
      else {
          // Chart like bar may have there own marker positioning logic
          if (seriesModel.getMarkerPosition) {
              // Use the getMarkerPoisition
              point = seriesModel.getMarkerPosition(
                  data.getValues(dims, idx)
              );
          }
          else {
              var x = data.get(dims[0], idx);
              var y = data.get(dims[1], idx);
              var pt = [x, y];
              coordSys.clampData && coordSys.clampData(pt, pt);
              point = coordSys.dataToPoint(pt, true);
          }
          if (coordSys.type === 'cartesian2d') {
              var xAxis = coordSys.getAxis('x');
              var yAxis = coordSys.getAxis('y');
              var x = data.get(dims[0], idx);
              var y = data.get(dims[1], idx);
              if (isInifinity(x)) {
                  point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);
              }
              else if (isInifinity(y)) {
                  point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);
              }
          }
  
          // Use x, y if has any
          if (!isNaN(xPx)) {
              point[0] = xPx;
          }
          if (!isNaN(yPx)) {
              point[1] = yPx;
          }
      }
  
      return point;
  }