You can get this with the interpolate function in PyQGIS.
I manually tested this with a multilinestring layer.
- Open the python console
Plugins -> Python Console
- Select the layer you want to place points on, and select the linestring feature you want to place a point on
- In the Python console do the following commands
lineLayer = iface.activeLayer() lineLayer now represents the layer you have selected
line = lineLayer.selectedFeatures() line now represents the first feature selected on your line layer. Make sure you only have one feature selected
feature = QgsFeature() creates a new feature
point = line.geometry().interpolate([distance along line]) point represents the geometry of the point at the specified distance along your line feature
feature.setGeometry(point) sets the geometry of the feature
- Create a new multipoint layer and select that layer in the layers panel and then do the following commands.
pointLayer = iface.activeLayer() pointLayer is now the multipoint layer just created.
pointLayer.addFeature(feature) add the point feature you created with interpolate to the new layer.
Notes: The distance used in interpolate is based on the coordinate reference system that you are using. Make sure it is a projected CRS with appropriate feet or meters conversions to match the distances you want to offset. Test to make sure the distances are correct before doing too much.
With this general pattern you should be able to set up a simple script in python to create all of the points from your offsets.