Resend to the mailing list.<br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Even Rouault</b> <span dir="ltr">&lt;<a href="mailto:even.rouault@mines-paris.org">even.rouault@mines-paris.org</a>&gt;</span><br>
Date: Thu, May 17, 2012 at 12:05 PM<br>Subject: Re: [gdal-dev] Can OGR WFS driver take advantage of WFS Server streaming?<br>To: Yingqi Tang &lt;<a href="mailto:anakintang@gmail.com">anakintang@gmail.com</a>&gt;<br><br><br>
Le jeudi 17 mai 2012 20:52:07, Yingqi Tang a écrit :<br>
<div class="im">&gt; Even,<br>
&gt;<br>
&gt; Just to clarify, when you say:<br>
&gt;<br>
&gt; &quot;...server allows partial downloading of arbitrary ranges of bytes within<br>
&gt; the file...&quot;, what does it really mean? If I simply put a static GML file<br>
&gt; in IIS and share it through HTTP, will it support partial downloading?<br>
<br>
</div>Yes, static pages should support partial downloading. But WFS servers that<br>
generate response on the fly generally don&#39;t.<br>
<div class="HOEnZb"><div class="h5"><br>
&gt;<br>
&gt; Thanks,<br>
&gt; Yingqi<br>
&gt;<br>
&gt; On Thu, May 17, 2012 at 4:19 AM, Even Rouault<br>
&gt;<br>
&gt; &lt;<a href="mailto:even.rouault@mines-paris.org">even.rouault@mines-paris.org</a>&gt;wrote:<br>
&gt; &gt; Le jeudi 17 mai 2012 00:25:52, Yingqi Tang a écrit :<br>
&gt; &gt; &gt; Thanks for confirming it, Even. I have two follow up questions though:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; 1. Does the GML driver (reading local big GML file) also load the whole<br>
&gt; &gt;<br>
&gt; &gt; GML<br>
&gt; &gt;<br>
&gt; &gt; &gt; in memory too?<br>
&gt; &gt;<br>
&gt; &gt; No, it will read it by small chunks. If no matching XML schema is<br>
&gt; &gt; available (or that the parser of the GML driver cannot manage to<br>
&gt; &gt; understand it because<br>
&gt; &gt; it is too complex (when the GML data is not limited to the Simple Feature<br>
&gt; &gt; convention)), there will be an initial full scan of the file to determine<br>
&gt; &gt; the<br>
&gt; &gt; schema of features.<br>
&gt; &gt;<br>
&gt; &gt; &gt; 2. Does the GML driver take url pointing to a GML?<br>
&gt; &gt;<br>
&gt; &gt; It can work with /vsicurl/<a href="http://something" target="_blank">http://something</a>, provided that the server<br>
&gt; &gt; allows<br>
&gt; &gt; partial downloading of arbitrary ranges of bytes within the file, which<br>
&gt; &gt; is rarely the case with GetFeature() requests.<br>
&gt; &gt;<br>
&gt; &gt; In theory the WFS driver could be improved to use the capability of the<br>
&gt; &gt; GML driver to read chunk by chunk, but there is some work to make that<br>
&gt; &gt; happen. This would probably require a /vsicurl_streaming/ virtual file<br>
&gt; &gt; system where basically only Read() requests would be available, thus not<br>
&gt; &gt; requiring the server to have download range capabilities.<br>
&gt; &gt;<br>
&gt; &gt; &gt; Thanks<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On Wed, May 16, 2012 at 3:20 PM, Even Rouault<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &lt;<a href="mailto:even.rouault@mines-paris.org">even.rouault@mines-paris.org</a>&gt;wrote:<br>
&gt; &gt; &gt; &gt; Le mercredi 16 mai 2012 23:58:29, Yingqi Tang a écrit :<br>
&gt; &gt; &gt; &gt; &gt; Hi all,<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; I am communicating against a WFS server which supports data (GML)<br>
&gt; &gt; &gt; &gt; &gt; streaming, which means that once I send a GetFeature quest for a<br>
&gt; &gt; &gt; &gt; &gt; big GML (2.0GB+), server will take only seconds to start streaming<br>
&gt; &gt; &gt; &gt; &gt; GML back to client while at the same time it&#39;s still preparing the<br>
&gt; &gt; &gt; &gt; &gt; rest<br>
&gt; &gt;<br>
&gt; &gt; of<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; the big<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; GML.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Now I wonder if GDAL/OGR WFS client can take advantage of that?<br>
&gt; &gt; &gt; &gt; &gt; Will<br>
&gt; &gt;<br>
&gt; &gt; I<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; be able to access the first few features while the streaming is<br>
&gt; &gt; &gt; &gt; &gt; still going on? It seems to me that it doesn&#39;t because it always<br>
&gt; &gt; &gt; &gt; &gt; waiting<br>
&gt; &gt;<br>
&gt; &gt; the<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; whole<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; big<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; GML response is loaded in memory.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Yes indeed, the OGR WFS driver waits for the whole response to be<br>
&gt; &gt; &gt; &gt; downloaded<br>
&gt; &gt; &gt; &gt; before parsing it. It could be desirable to have on-the-fly parsing<br>
&gt; &gt; &gt; &gt; indeed, but<br>
&gt; &gt; &gt; &gt; we currently lack the capability of doing it with the way we use the<br>
&gt; &gt;<br>
&gt; &gt; Curl<br>
&gt; &gt;<br>
&gt; &gt; &gt; &gt; library.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Thanks<br>
</div></div></div><br>