[Qgis-developer] Interlis support of OGR inside QGIS (make it default? modify make files? Windows but not only...)

Stefan Keller sfkeller at gmail.com
Tue Oct 19 07:14:43 EDT 2010


Hi Andreas, Frank, everyone (Marco is currently in holidays)

I solved my problems so far. I initially had to uninstall QGIS and reinstall it.

=> I suggest to update http://www.qgis.org/wiki/Download with
information regarding upgrading (based on
http://www.qgis.org/wiki/OSGeo4wSetup)

Then I located the problem in file interlisdialog.py in the Interlis
plugin: see below.
The problem boils down to the check (functions checkJRE and
checkFileInPath) if java runtime is installed - which fails because
under Win XP (I think all Windows OS) >>> there is no "java" file;
it's called "java.exe".

=> Any ideas are welcome on how to best do the checkJRE in an elegant
OS independent way :->

Yours, S.


That's the current code in line 45 ff. of interlisdialog.py (at
<settings>/.qgis/python/plugins/interlis/) to be enhanced:
    #checks if there is a java runtime available
    def checkJRE(self):
        jrePresent = self.checkFileInPath("java")
        return jrePresent

    #checks if ili2c.jar is in the path
    def checkIli2c(self):
        ili2cFound = self.checkFileInPath("ili2c.jar")
        return ili2cFound

    #checks if a given filename is contained in directory contained in
the PATH environment variable
    def  checkFileInPath(self, filename):
        fileFound = False
        pathVariable = os.environ['PATH']
        pathString = QString(pathVariable)
        #on Unix, entries are separated with ':'
        osString = sys.platform
        if(osString == "win32" or osString == "cygwin"):
            pathStringList = pathString.split(";")
        else:
            pathStringList = pathString.split(":")

        for i in range(pathStringList.count()):
            filePath = QFileInfo(QDir(pathStringList[i]),  QString(filename))
            if filePath.exists():
                fileFound = True
                break
        return fileFound




2010/10/18 Andreas Neumann <a.neumann at carto.net>:
> Hi Stefan,
>
> I use the plugin on Windows (OSGeo4W) and Linux.
>
> Are you using the OSGeo4W installer or the Windows standalone installer? I
> have only experience with the OSGeo4W installer, which I believe comes
> with Interlis support out of the box. At least it works on several of our
> windows machines. It may be that you manually have to copy the ili2c.jar
> fileinto a path reachable by osgeo. You can copy ili2c.jar to
> \OSGeo4Wroot\bin (on my machines it is C:\Programme\OSGeo4W\bin). Since
> ili2c.jar is based on Java, you also need Java.
>
> Also, with OSGeo4W you have to use at least QGIS 1.5 or trunk (qgis-dev).
>
> I have no experience with the Windows standalone installation. It may be
> that the OGR included with that version does not support Interlis.
>
> Hope this helps. The goal should be have Interlis support enabled by
> default - I agree.
>
> Andreas
>
>
> On Mon, October 18, 2010 4:25 pm, Stefan Keller wrote:
>> I'm trying to use OGR in whatever plugin under QGIS and Windows XP.
>>
>> The error reported in a QGIS window is "The GDAL/OGR library you are
>> using has been compiled without Interlis support".
>>
>> I think you (and Horst too) are using Linux, so it seems to me I'm the
>> first user of the Interlis plugin :->?
>>
>> The plugin "Interlis" (Python) mentioned before is the one from Marco
>> (via http://karlinapp.ethz.ch/python_plugins/python_plugins.xml)
>> => Or do you mean another one?
>>
>> Looking inside <settings>\.qgis\python\plugins\interlis\interlisplugin.py
>> there is an obious test:
>> Interlis support".
>>>    def run(self):
>>>        fileFilters = QgsProviderRegistry.instance().fileVectorFilters()
>>>        if not fileFilters.contains("Interlis",  Qt.CaseInsensitive):
>>>            QMessageBox.critical(None,
>>> QCoreApplication.translate("InterlisPlugin","No Interlis
>>> support available"),
>>>                                             QCoreApplication.translate("InterlisPlugin","The
>>> GDAL/OGR library you are
>>> using has been compiled
>>>                                                                                      without
>>> Interlis
>>> support"))
>>
>> Replacing C:\Programs\OSGeo4W\bin\ogr2ogr.exe did'nt help neither
>> which is weird, because calling the same ogr2ogr.exe out of a Windows
>> shell reports
>>      -f "Interlis 1"
>>      -f "Interlis 2"
>> as possible values.
>>
>> Yours, S.
>>
>>
>> 2010/10/18 Andreas Neumann <a.neumann at carto.net>:
>>> Hi Stefan,
>>>
>>> You should use Marco Hugentoblers Interlis plugin to load files, which,
>>> like you said uses OGR. It just makes the OGR handling easier and allows
>>> to select only certain topics/tables.
>>>
>>> What exactly is the problem? What error message are you getting?
>>>
>>> I believe that Interlis should be enabled by default by QGIS 1.5 or QGIS
>>> 1.6. It works on my machine for small and medium sized itf's but fails
>>> for
>>> big itfs. I haven't tested Interlis 2 so far.
>>>
>>> Andreas
>>>
>>>
>>> On Mon, October 18, 2010 12:14 pm, Stefan Keller wrote:
>>>> Hi,
>>>>
>>>> I'm trying to import/export INTERLIS geodata inside QGIS under Windows
>>>> (XP Professional) - but had no luck so far.
>>>>
>>>> There are two QGIS plugins around, "OGR Converter" (C++) and
>>>> "Interlis" (Python) which obviously call OGR/GDAL libraries.
>>>> "OGR Converter" doesn't list Interlis format and "Interlis" plugin
>>>> reports "The GDAL/OGR library you are using has beend compiled without
>>>> Interlis support".
>>>> I'm talking about INTERLIS format version 1 and 2 (read/write).
>>>>
>>>> I fear that the default make files for GDAL/OGR do not include
>>>> INTERLIS libraries.
>>>> I know also that there is a problem - at least under Windows and MacOS
>>>> - of ogr/gdal accessing java jar packages (ili2.jar) unless they are
>>>> copied in the default library search path - or even in every directory
>>>> where programs and data reside.
>>>>
>>>> 1.Can anybody involved in delivering the (Windows) binaries and in
>>>> committing to the "OGR Converter" and "Interlis" plugins have a look
>>>> at this problem?
>>>>
>>>> => To me an optimal solution would be, that Interlis support is
>>>> included by default in all QGIS deliveries.
>>>>
>>>> 2. Is there any workaround? Eventually I can replace the GDAL/OGR .dll
>>>> (.so) myself?
>>>>
>>>> Yours, S.
>>>> _______________________________________________
>>>> Qgis-developer mailing list
>>>> Qgis-developer at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>>>>
>>>
>>>
>>> --
>>> Andreas Neumann
>>> http://www.carto.net/neumann/
>>> http://www.svgopen.org/
>>>
>>>
>>
>
>
> --
> Andreas Neumann
> http://www.carto.net/neumann/
> http://www.svgopen.org/
>
>


More information about the Qgis-developer mailing list