<div dir="ltr"><div>Hi Jukka,</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Dec 7, 2022 at 12:18 PM Rahkonen Jukka <<a href="mailto:jukka.rahkonen@maanmittauslaitos.fi">jukka.rahkonen@maanmittauslaitos.fi</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg6480129275909678021">





<div lang="FI" style="overflow-wrap: break-word;">
<div class="m_1311351689605559357WordSection1">
<p class="MsoNormal"><span lang="EN-US">“</span><span lang="EN-US">OGR layers can utilize tile indexes in a similar fashion to Shapefile based layers. The TILEINDEX keyword should contain the connection string for the tile index file. The tile index file may be any supported OGR format, including
 shapefiles.”</span><br></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US">So this is what I used in LAYER and it worked both for WMS and WFS:<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US"><br>
</span><span lang="EN-US">CONNECTIONTYPE OGR</span> </p></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg6480129275909678021"><div lang="FI" style="overflow-wrap: break-word;"><div class="m_1311351689605559357WordSection1"><p class="MsoNormal">TILEINDEX "c:\data\000\mapservertest\tindex.gpkg"</p></div></div></div></blockquote><br class="gmail-Apple-interchange-newline"><div> </div><div>Thanks for your message, it is very helpful!  I am now struggling how to use an SQL query of my choosing when the OGR TILEINDEX is in a Postgis database.</div><div><br></div><div>I can get a TILEINDEX working using the OGR format.  Ultimately my TILEINDEX lives in Postgis.  I can make a postgis table and populate it with items like so:</div><div><br></div><div>    create table testtable (id int, location text, geom geometry(Polygon,4326));<br>    insert into testtable (id, location, geom) values (1,<br>'/test_data/test.geojson,0', 'POLYGON((122.01377475333321<br>29.96355712017804,122.01424752183958 29.915620560607106,122.06927507957919<br>29.91602043815968,122.0688286928125 29.963957768165944,122.01377475333321<br>29.96355712017804))'::geometry);<br></div><div><br></div><div>and then reference my Postgis TILEINDEX of vectors in this fashion:</div><div><br></div><div>    LAYER<br>        DEBUG 5<br>        NAME "vector_via_postgis"<br>        TYPE POLYGON<br>        TILEINDEX "PG:\"host='localhost' user='postgres' dbname='<span style="color:rgb(0,0,0);white-space:pre-wrap">mydatabase</span>' password='mypwd' tables=testtable(geom)\""<br>        CONNECTIONTYPE OGR<br>        STATUS OFF<br>    END<br></div><div><br></div><div>and now I can query my vector index of tiles:</div><div><br></div><div>    mapserv -nh QUERY_STRING='service=WFS&VERSION=1.0.0&REQUEST=getfeature&map=/app/mapfiles/test2.map&typename=vector_via_postgis&OUTPUTFORMAT=geojson'<br></div><div><br></div><div>I can query the database with the OGR driver by passing the `-sql` option:</div><div><br></div><div>    ogrinfo -ro PG:"host='localhost' user='postgres' dbname='mydatabase' password='mypwd'" -sql 'SELECT * FROM testtable'<br></div><div><br></div><div>but let's say my query was more complicated than `SELECT * FROM testtable;`.  I could make a Postgres view, but I'm hoping there is some way to override the default SQL query used. </div><div><br></div><div>How do I specify such a query using the OGR PG driver as a Mapserver layer to be used as a TILEINDEX of OGR vector files? </div><div><br></div><div>Perhaps this is more of a GDAL question... or how does Mapserver's use of OGR TILEINDEX of OGR vector files allow custom SQL?  Note that as a TILEINDEX of Rasters the TILEINDEX can point to a Mapserver Layer, so I /can/ add custom SQL queries in that case.  But I don't know how to do it as a OGR TILEINDEX pointing to OGR vectors.</div><div><br></div><div>Thanks,</div><div>Pete</div></div></div>