[mapserver-users] MapServer and Geopackage failing

Jeff McKenna jmckenna at gatewaygeomatics.com
Tue Mar 6 09:16:53 PST 2018


Hi Seth,

I was also testing with that same test dataset when you wrote this last 
message.  In my testing using MS4W v3.2.5 here (MapServer 7.0.7, GDAL 
2.2.3) I can display both the v1.2 and v1.0/1.1 test datasets of GPKG. 
(I remember painfully spending a lot of time building spatialite with 
sqlite, for the MS4W community).

-jeff



-- 
Jeff McKenna
MapServer Consulting and Training Services
http://www.gatewaygeomatics.com/




On 2018-03-06 12:58 PM, Seth G wrote:
> Hi,
> 
> I'm trying to create an image from a Geopackage with MapServer.
> I can recreate the issue using data from http://www.geopackage.org/#sampledata
> 
> It appears a v1.1 Geopackage will throw an error if the Sqlite database does not include the Spatialite extension.
> A v1.2 Geopackage does not seem to produce the same error.
> Even's patch fixes this error. It also seems the issue disappears when using a dev 2.3.0 build of GDAL.
> 
> A sample Mapfile using the sample datasets is below. The first shp2img command works, the second does not.
> 
> shp2img -m test.map -l point2d_v1_2 -o test.png
> shp2img -m test.map -l point2d_v1_1 -o test.png
> 
> 
> MAP
>      # cd /D C:\MapServer\apps\gpkg
>      # shp2img -m test.map -l point2d_v1_2 -o test.png
>      # shp2img -m test.map -l point2d_v1_1 -o test.png
>      SIZE 200 200
>      DEBUG 5
>      CONFIG "MS_ERRORFILE" "test.log"
>      CONFIG "CPL_DEBUG" "ON"
>      EXTENT 0 0 10 10
>      SYMBOL
>          NAME "circle"
>          TYPE ELLIPSE
>          FILLED TRUE
>          POINTS
>              1 1
>          END
>      END
>      LAYER
>          NAME "point2d_v1_2"
>          TYPE POINT
>          DATA "point2d"
>          CONNECTIONTYPE OGR
>          CONNECTION "gdal_sample_v1.2_no_extensions.gpkg"
>          CLASS
>              STYLE
>                  SYMBOL "circle"
>                  SIZE 10
>                  COLOR 0 255 255
>              END
>          END
>      END
>      LAYER
>          NAME "point2d_v1_1"
>          TYPE POINT
>          DATA "point2d"
>          CONNECTIONTYPE OGR
>          CONNECTION "gdal_sample.gpkg"
>          CLASS
>              STYLE
>                  SYMBOL "circle"
>                  SIZE 10
>                  COLOR 0 255 255
>              END
>          END
>      END
> END
> 
> 
> --
> web:http://geographika.co.uk
> twitter: @geographika
> 
> On Tue, Mar 6, 2018, at 5:05 PM, Rahkonen Jukka (MML) wrote:
>> Hi,
>>
>> Please explain what you are actually doing. Do you wish to use
>> geopackage for input or output, or both?  For rasters, vectors, or both?
>>
>> If you use gpkg as input I suggest to create the database with GDAL from
>> some publicly available datasets so others can do the same for
>> reproducing you case (share your ogr2ogr or gdal_translate commands),
>> with a complete mapfile that you will hopefully provide as well.
>>
>> -Jukka Rahkonen-
>>
>> -----Alkuperäinen viesti-----
>> Lähettäjä: mapserver-users
>> [mailto:mapserver-users-bounces at lists.osgeo.org] Puolesta Seth G
>> Lähetetty: 6. maaliskuuta 2018 12:20
>> Vastaanottaja: mapserver-users at lists.osgeo.org
>> Aihe: [mapserver-users] MapServer and Geopackage failing
>>
>> Hi all,
>>
>> I'm trying out the geopackage format as an alternative to shapefiles but
>> running into an issue where MapServer expects the geopackage dataset to
>> include spatialite. Drawing layers with shp2img logs the following:
>>
>> [Tue Mar 06 10:39:42 2018].512000 msDrawMap(): rendering using
>> outputformat named png (AGG/PNG).
>> [Tue Mar 06 10:39:42 2018].512000 msDrawMap(): WMS/WFS set-up and query,
>> 0.000s [Tue Mar 06 10:39:42 2018].529000 msOGRFileOpen: Spatialite
>> support in GPKG not enabled [Tue Mar 06 10:39:42 2018].549000
>> msOGRFileNextShape(): OGR error. OGR GetNextFeature() error'd. Check
>> logs.
>> [Tue Mar 06 10:39:42 2018].549000 msOGRFileNextShape(): In ExecuteSQL():
>> sqlite3_prepare(SELECT spatialite_version()):
>>    no such function: spatialite_version
>> [Tue Mar 06 10:39:42 2018].550000 msDrawMap(): Image handling error.
>> Failed to draw layer named 'ways'.
>>
>> The spatialite_version function is missing in the geopackage. The
>> dataset was created by exporting from MapServer as an OUTPUTOPTION:
>>
>>        OUTPUTFORMAT
>>          NAME "GeoPackage"
>>          DRIVER "OGR/GPKG"
>>          FORMATOPTION "STORAGE=memory"
>>          FORMATOPTION "FORM=simple"
>>          FORMATOPTION "FILENAME=result.gpkg"
>>          FORMATOPTION "DSCO:SPATIALITE=YES"	# not a listed option, but
>> tried anyway	
>>          FORMATOPTION "LCO:SPATIAL_INDEX=YES"
>>      END
>>    
>> Running a GisInternals build,  including GDAL 2.1.3 and MapServer 7.0.4.
>>
>> Relevant code is at
>> https://github.com/mapserver/mapserver/blob/aae74ff2abed3f2f8fe1f76c9b4bbccf15023dc1/mapogr.cpp#L1313
>> It looks like the error should be swallowed up?
>>
>> The same dataset exported directly to spatilite works fine.
>>
>> Anyone experienced the above issue?
>>
>> Regards,
>>
>> Seth
>>
>>
>> --
>> web:http://geographika.co.uk
>> twitter: @geographika
>> __


More information about the mapserver-users mailing list