3

In the newer versions of QGIS it's possible to export a layer as a Mapinfo Tab file and include the Feature Symbology. Does anyone know if you can access this as part of the 'Save Vector Features To File' algorithm or PyQGIS?

symbology export

1 Answer 1

3

Apply the symbologyExport=QgsVectorFileWriter.FeatureSymbology parameter when writing and it will keep its symbology when opened in MapInfo.

from os.path import abspath
from qgis.utils import iface 

_vlayer = iface.activeLayer()

_writer = QgsVectorFileWriter.writeAsVectorFormat(
    layer=_vlayer,
    fileName=abspath("D:/test_file.tab"),
    fileEncoding="utf-8",
    driverName="MapInfo File",
    symbologyExport=QgsVectorFileWriter.FeatureSymbology
    )
5
  • have you checked it with a point layer?
    – KVO
    Commented May 21, 2023 at 14:10
  • it doesn't seem to work with points but it does work with polygons. Haven't checked lines yet. That's a pain, as it will read MapInfo point symbology into QGIS
    – Prosper
    Commented May 22, 2023 at 7:43
  • is it possible to export a layer from QGIS to MapInfo .MIF format retaining MapInfo symbology by a PyQGIS script? MIF format is human readable and a .MIF file can be edited by simple text editor such as blocknote or Notepad++
    – KVO
    Commented Oct 16, 2023 at 12:59
  • 1
    it's been a while but recently found out you can apply a style to a Mapinfo tab file using Geopandas. You just need to create a column called 'OGR_STYLE' and create a style using the GDAL style specifcation: gdal.org/user/ogr_feature_style.html before you write the tab. I've tested with points and it works. Only issue so far is that you end up with a column called 'OGR_STYLE' in the tab but looking to sort that.
    – Prosper
    Commented May 23 at 15:32
  • 1
    @KVO you can use ogr2ogr to copy the file and drop the OGR_STYLE column. Ogr2ogr can be called from the osgeo4w shell or as a subprocess in your script.
    – Prosper
    Commented Jul 3 at 14:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.