I know that mapserver drop the support for ecw due to licensing issues. But if i understand well, as mapserver rely on GDAL, if GDAL support ECW, mapserver can serve ECW data.

So I've compiled libecwj 3.3 , then compile GDAL. Now GDAL can read ECW.

But in mapserver, ecw data don't work. The error is :

MsDrawMap(): Image handling error. Failed to draw layer named 'ortho'.; MsDrawRasterLayerLow(): Unable to access file. Corrupt, empty or missing file 'my_file.ecw' for layer 'ortho'.

I tried to recompile mapserver. But with no effect. Does someone know if it's possible and where is the mistake ?

My config is : - debian 7 - libecwj 3.3 - gdal 1.10.1 - mapserver 6.4.0

Thanks for your help !

  • I don't think MapServer dropped ECW support. MapServer just uses GDAL and you just need a licence if you want to use the newer ECW SDKs for a sever application.
    – Nathan W
    Dec 9 '13 at 22:10
  • I don't understand why my GDAL install can read ECW and mapserver that use that GDAL install don't. Is it really related to license?
    – nykopol
    Dec 10 '13 at 2:45

After hours of compiling, i found my mistake...

Nothing related to compilation. The problem was my mapfile. I had a layer definition that look like :

  SHAPEPATH /my/absolute/path

    DATA "../my_file.ecw"

If i give absolute path in layer definition, mapserver work perfectly. It work with shapefile, but not with ecw. My mistake, SHAPEPATH is rather explicit.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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