Hi,

I remember that I did tileindexes for vector layers a couple  of years ago.
I can’t find my example right now, but I think I was following this example for 
raster.
The important thing is to have a one layer for the actual tile index, that has 
status off and one layer that is using the tile index layer. In my case I did 
it with sqlite if remember correctly.   I believe I was following this example 
for raster, but did it  with vector data.

https://github.com/mapserver/mapserver/wiki/MapServer-TILEINDEXes-with-Database-RASTERS

https://lists.osgeo.org/pipermail/mapserver-users/2014-August/076877.html

Have fun / Lars Schyberg


From: MapServer-users <[email protected]> On Behalf Of 
Peter Schmitt
Sent: den 7 december 2022 00:56
To: Mapserver-Users ([email protected]) 
<[email protected]>
Subject: [EXTERNAL] [MapServer-users] Vector tileindex with connectiontype OGR

Hi,

How do I get a vector tileindex working with another Mapserver layer as the 
tileindex?

I have the following tindex.geojson:

{ 
"type":"FeatureCollection","features":[{"type":"Feature","properties":{"location":"/app/mapfiles/test.geojson"},"geometry":{"type":"Polygon","coordinates":[[[122.013774753,29.96355712],[122.014247522,29.915620561],[122.06927508,29.916020438],[122.068828693,29.963957768],[122.013774753,29.96355712]]]}}]}

Which points to a single file /app/mapfiles/test.geojson:

{"type":"Feature","properties":{},"geometry":{"coordinates":[[[122.04067791363536,29.944772490597998],[122.03620089848994,29.94141730774004],[122.03819740524398,29.937852301951125],[122.0446709271447,29.938166866424368],[122.04648593328471,29.940211511256464],[122.04067791363536,29.944772490597998]]],"type":"Polygon"}}

I would like to define the TILEINDEX as one MapServer Layer and have another 
MapServer layer reference that tile index.  I tried this layer:

  LAYER
    NAME "vector_via_ogr"
    TYPE POLYGON
    TILEINDEX tindex_ogr
    CONNECTIONTYPE OGR
    STATUS OFF
  END

but when I run `mapserv -nh 
QUERY_STRING='service=WFS&VERSION=1.0.0&REQUEST=getfeature&map=/app/mapfiles/test2.map&typename=vector_via_ogr&OUTPUTFORMAT=geojson'`,
 I get the following error:

"msOGRFileOpen(): OGR error. Open failed for OGR connection in layer 
`vector_via_ogr&#39;.  File not found or unsupported format. Check server logs."

If I run without CONNECTIONTYPE OGR, I get the following error:

"msTiledSHPOpenFile(): Shapefile error. Tileindex layer must be a shapefile."

I can get a similar thing working for a TILEINDEX of rasters. However I cannot 
get it working on a TILEINDEX of vectors.  The example below is the simplest 
reproduce case I could create.  Ultimately I plan on having a TILEINDEX point 
to a layer of defined via CONNECTIONTYPE postgis.

How do I get a vector tileindex working with another Mapserver layer as the 
tileindex?

Thanks!
Pete


Full mapfile below with example commands reproducing my errors.

MAP
  OUTPUTFORMAT
    NAME "geojson"
    DRIVER "OGR/GEOJSON"
    MIMETYPE "application/json; subtype=geojson"
    FORMATOPTION "STORAGE=memory"
    FORMATOPTION "FORM=SIMPLE"
    FORMATOPTION "LCO:RFC7946=NO"
    FORMATOPTION "FILENAME=result.json"
  END

  WEB
    METADATA
      "ows_enable_request"              "*"
      "wfs_getfeature_formatlist"       "ogrgml,geojson"
    END
  END
  CONFIG "MS_ERRORFILE" "stderr"

  PROJECTION
    "init=epsg:4326"
  END

DEBUG 5

  # mapserv -nh 
QUERY_STRING='service=WFS&VERSION=1.0.0&REQUEST=getfeature&map=/app/mapfiles/test2.map&typename=vector_directly&OUTPUTFORMAT=geojson'
  # returns the contents of 'test.geojson'!
  LAYER
    NAME "vector_directly"
    TYPE POLYGON
    TILEINDEX "/app/mapfiles/tindex.geojson"
    CONNECTIONTYPE OGR
    STATUS OFF
  END

  # mapserv -nh 
QUERY_STRING='service=WFS&VERSION=1.0.0&REQUEST=getfeature&map=/app/mapfiles/test2.map&typename=tindex_ogr&OUTPUTFORMAT=geojson'
  # returns contents of tindex.geojson!
  LAYER
    NAME "tindex_ogr"
    TYPE POLYGON
    CONNECTIONTYPE OGR
    CONNECTION "/app/mapfiles/tindex.geojson"
    STATUS OFF
  END

  # mapserv -nh 
QUERY_STRING='service=WFS&VERSION=1.0.0&REQUEST=getfeature&map=/app/mapfiles/test2.map&typename=vector_tindex&OUTPUTFORMAT=geojson'
  # returns 'msTiledSHPOpenFile(): Shapefile error. Tileindex layer must be a 
shapefile.'
  LAYER
    NAME "vector_via_tindex"
    TYPE POLYGON
    TILEINDEX tindex_ogr
    STATUS OFF
  END

  #  mapserv -nh 
QUERY_STRING='service=WFS&VERSION=1.0.0&REQUEST=getfeature&map=/app/mapfiles/test2.map&typename=vector_via_ogr&OUTPUTFORMAT=geojson'
  # returns 'msOGRFileOpen(): OGR error. Open failed for OGR connection in 
layer `vector_via_ogr&#39;.  File not found or unsupported format. Check server 
logs.'
  LAYER
    NAME "vector_via_ogr"
    TYPE POLYGON
    TILEINDEX tindex_ogr
    CONNECTIONTYPE OGR
    STATUS OFF
  END

END # mapfile
_______________________________________________
MapServer-users mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to