<div dir="ltr">First, <div>do you really need no duplicates?<div><br></div><div>Then, Creating an index on a 500 million row table is going to take time and a lot of spaces (several gigas??).</div><div>I don't think you have a choice here.</div>
<div>Yet I'm not sure the index would be used, I'm not an expert.</div><div><br></div><div>What you can do is </div><div>_create a table with only a part of points to test</div><div>_create an index on it</div><div>
_check how much time distinct takes, and if it uses index.</div><div><br></div><div><br></div><div>CREATE TABLE <span style="font-family:arial,sans-serif;font-size:12.800000190734863px">grid_temp AS </span></div><div><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">SELECT st_x,st_y</span></div>
<div><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">FROM grid</span></div><div><span style="font-family:arial,sans-serif;font-size:12.800000190734863px">LIMIT 1000000; --only 1 million points</span></div>
<div><span style="font-family:arial,sans-serif;font-size:12.800000190734863px"><br></span></div><div>CREATE INDEX ON grid_temp(st_x);</div><div>CREATE INDEX ON grid_temp(st_y);</div><div><br></div><div>EXPLAIN ANALYZE </div>
<div>SELECT DISTINCT st_x, st_y</div><div>FROM grid_temp ; </div><div>--(if you see some index uses in the return, it's good news)</div><div><br></div><div>Then doing it on all your data.</div><div><br></div><div><br>
<br></div><div>For the record, </div></div><div>The ideal solution would have been : </div><div>no have a X | Y table , but a X | Y | id_of_the_road table</div><div>This way you can create a table y grouping points by id_of_the_road (creating so a multipoint per road).</div>
<div><br></div><div>With this , you would have far less rows, you could create an index on geom.</div><div><br></div><div>Then you would get the intersecting multipoints (which would be efficient), and dedup only pair by pair (which would be efficient).</div>
<div><br></div><div><br></div><div>Cheers,</div><div><br>Rémi-C</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/11/29 James David Smith <span dir="ltr"><<a href="mailto:james.david.smith@gmail.com" target="_blank">james.david.smith@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Remi / all,<br>
<br>
I am just coming back to this project. I have made some progress. But<br>
would appreciate advice on how best to proceed now. What I have now is<br>
a table with two columns, 'st_x' and 'st_y'. They are the 20 metre by<br>
20 metre grid points that are within 1km of main roads in the UK. The<br>
table has 499,677,666 rows! Because of the method that I used to<br>
create this however, I have alot of duplication of points. So I think<br>
I need to do something like:<br>
<br>
CREATE TABLE grid_no_duplications AS (SELECT DISTINCT(x, y) FROM grid);<br>
<br>
However I thought that first I could put an index on it?<br>
<br>
CREATE INDEX grid_x_y ON grid (st_x, st_y);<br>
<br>
Is this a good approach?<br>
<br>
Cheers<br>
<span class="HOEnZb"><font color="#888888"><br>
James<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On 15 November 2013 16:39, Rémi Cura <<a href="mailto:remi.cura@gmail.com">remi.cura@gmail.com</a>> wrote:<br>
> good =)<br>
><br>
> It is better to do the buffer computation first,<br>
> because this way you are sure youwon't compute the same buffer many times.<br>
><br>
> Something like (not so sure without trying it)<br>
> UPDATE ukmajrdbuffer SET geom = ST_Buffer(geom,1000);<br>
><br>
> You may have an error if you hav e a fixed geom data type, then you could<br>
> just add a new column like<br>
><br>
> ALTER TABLE ukmajrdbuffer ADD COLUMN the_geom geometry ;<br>
> UPDATE ukmajrdbuffer SET the_geom = ST_Buffer(geom,1000);<br>
><br>
><br>
> Cheers,<br>
><br>
> Rémi-C<br>
><br>
><br>
><br>
> 2013/11/15 James David Smith <<a href="mailto:james.david.smith@gmail.com">james.david.smith@gmail.com</a>><br>
>><br>
>> Hey Remi,<br>
>><br>
>> I've actually managed to get the file 'ukmajorroads' already and have<br>
>> loaded it into my database. There are 395356 rows in the database. There is<br>
>> a field called 'geom' and I have built an index on it as below;<br>
>><br>
>> CREATE INDEX ukrds_index ON ukrds USING GIST (geom);<br>
>><br>
>> So should I now run the same query, but do the buffering of the roads 'on<br>
>> the fly' maybe? For example as below?<br>
>><br>
>><br>
>> CREATE TABLE lines_for_each_road AS<br>
>> WITH all_lines AS (<br>
>> SELECT *<br>
>> FROM all_lines<br>
>> ),<br>
>> cutted_lines AS ( --we cut the line to keep only part of lines inside<br>
>> road_buffer<br>
>> SELECT ST_Intersection(all_lines.the_geom,st_buffer(ukmajrdbuffer.geom,<br>
>> 1000)) as lines_cutted, direction<br>
>> FROM ukmajrdbuffer, all_lines<br>
>> WHERE ST_Intersects(st_buffer(ukmajrdbuffer.geom, 1000),<br>
>> all_lines.the_geom)=TRUE<br>
>> ),<br>
>> cutted_lines_SN AS ( --this is the cutted lines which going from South to<br>
>> North<br>
>> SELECT *<br>
>> FROM cutted_lines<br>
>> WHERE direction = 'SN'<br>
>> ),<br>
>> cutted_lines_EW AS ( --this is the cutted lines going from East toWest<br>
>> SELECT *<br>
>> FROM cutted_lines<br>
>> WHERE direction = 'EW'<br>
>> ),<br>
>> points AS ( -- we take the intersection of EW lines with SN lines , that<br>
>> is the points on the grid.<br>
>> SELECT ST_Intersection(clSN.lines_cutted, clEW.lines_cutted) AS point<br>
>> FROM cutted_lines_SN as clSN, cutted_lines_EW AS clEW<br>
>> WHERE ST_Intersects(clSN.lines_cutted, clEW.lines_cutted)=TRUE --no point<br>
>> ot compute an intersection if lines don't intersect<br>
>> )<br>
>> SELECT row_number() over() AS id , point<br>
>> FROM points ;<br>
>><br>
>><br>
>> On 15 November 2013 15:42, Rémi Cura <<a href="mailto:remi.cura@gmail.com">remi.cura@gmail.com</a>> wrote:<br>
>>><br>
>>> Still is a shame :<br>
>>> with proper data we should have some result with about one hour i guess.<br>
>>><br>
>>> Cheers,<br>
>>> Rémi C<br>
>>><br>
>>><br>
>>> 2013/11/15 James David Smith <<a href="mailto:james.david.smith@gmail.com">james.david.smith@gmail.com</a>><br>
>>>><br>
>>>> Remi,<br>
>>>><br>
>>>> Ok. Cool. I've set the below query running. On Monday I will also<br>
>>>> attempt to get the original road lines file too. Let's see if we have<br>
>>>> a result on Monday.<br>
>>>> ----------------------------------<br>
>>>> CREATE TABLE lines_for_each_road AS<br>
>>>> WITH all_lines AS (<br>
>>>> SELECT *<br>
>>>> FROM all_lines<br>
>>>> ),<br>
>>>> cutted_lines AS ( --we cut the line to keep only part of lines inside<br>
>>>> road_buffer<br>
>>>> SELECT ST_Intersection(all_lines.the_geom,ukmajrdbuffer.geom) as<br>
>>>> lines_cutted, direction<br>
>>>> FROM ukmajrdbuffer, all_lines<br>
>>>> WHERE ST_Intersects(ukmajrdbuffer.geom, all_lines.the_geom)=TRUE<br>
>>>> ),<br>
>>>> cutted_lines_SN AS ( --this is the cutted lines which going from South<br>
>>>> to North<br>
>>>> SELECT *<br>
>>>> FROM cutted_lines<br>
>>>> WHERE direction = 'SN'<br>
>>>> ),<br>
>>>> cutted_lines_EW AS ( --this is the cutted lines going from East toWest<br>
>>>> SELECT *<br>
>>>> FROM cutted_lines<br>
>>>> WHERE direction = 'EW'<br>
>>>> ),<br>
>>>> points AS ( -- we take the intersection of EW lines with SN lines ,<br>
>>>> that is the points on the grid.<br>
>>>> SELECT ST_Intersection(clSN.lines_cutted, clEW.lines_cutted) AS point<br>
>>>> FROM cutted_lines_SN as clSN, cutted_lines_EW AS clEW<br>
>>>> WHERE ST_Intersects(clSN.lines_cutted, clEW.lines_cutted)=TRUE --no<br>
>>>> point ot compute an intersection if lines don't intersect<br>
>>>> )<br>
>>>> SELECT row_number() over() AS id , point<br>
>>>> FROM points ;<br>
>>>> ------------------------------------------<br>
>>>> Thanks<br>
>>>><br>
>>>> James<br>
>>>><br>
>>>> On 15 November 2013 15:37, Rémi Cura <<a href="mailto:remi.cura@gmail.com">remi.cura@gmail.com</a>> wrote:<br>
>>>> ><br>
>>>> > You should try to get the original road file, because i will be very<br>
>>>> > easy to<br>
>>>> > reapply some buffer and filtering to keep only major road.<br>
>>>> > Yet, why not let it run during the week end?<br>
>>>> ><br>
>>>> > Cheers,<br>
>>>> ><br>
>>>> > Rémi-C<br>
>>>> ><br>
>>>> ><br>
>>>> > 2013/11/15 James David Smith <<a href="mailto:james.david.smith@gmail.com">james.david.smith@gmail.com</a>><br>
>>>> >><br>
>>>> >> Hey Remi,<br>
>>>> >><br>
>>>> >> Do you think before I try running the big query you have just sent<br>
>>>> >> me,<br>
>>>> >> that I should go back and try to get the original file of uk roads? I<br>
>>>> >> mean the very original file that has not had any buffers applied or<br>
>>>> >> any merging done.<br>
>>>> >><br>
>>>> >> Or shall we just go for it and see if it has finished when I come<br>
>>>> >> into<br>
>>>> >> work on Monday?! haha.<br>
>>>> >><br>
>>>> >> Thanks<br>
>>>> >><br>
>>>> >> James<br>
>>>> >><br>
>>>> >> On 15 November 2013 14:01, Rémi Cura <<a href="mailto:remi.cura@gmail.com">remi.cura@gmail.com</a>> wrote:<br>
>>>> >> > Outch,<br>
>>>> >> > you have only 8 roads in GB? =)<br>
>>>> >> ><br>
>>>> >> > This is not going to go fast till you don't have some dozens k's of<br>
>>>> >> > roads.<br>
>>>> >> ><br>
>>>> >> > I'm guessing you are not at will to send those roads?<br>
>>>> >> ><br>
>>>> >> ><br>
>>>> >> > The next step will be (when you'll be sure everything is OK)<br>
>>>> >> ><br>
>>>> >> ><br>
>>>> >> > CREATE TABLE lines_for_each_road AS<br>
>>>> >> > WITH all_lines AS (<br>
>>>> >> > SELECT *<br>
>>>> >> > FROM all_lines<br>
>>>> >> > ),<br>
>>>> >> > cutted_lines AS ( --we cut the line to keep only part of lines<br>
>>>> >> > inside<br>
>>>> >> > road_buffer<br>
>>>> >> > SELECT ST_Intersection(all_lines.the_geom,ukmajrdbuffer.geom) as<br>
>>>> >> > lines_cutted, direction<br>
>>>> >> > FROM ukmajrdbuffer, all_lines<br>
>>>> >> > WHERE ST_Intersects(ukmajrdbuffer.geom, all_lines.the_geom)=TRUE<br>
>>>> >> > ),<br>
>>>> >> > cutted_lines_SN AS ( --this is the cutted lines which going from<br>
>>>> >> > South<br>
>>>> >> > to<br>
>>>> >> > North<br>
>>>> >> > SELECT *<br>
>>>> >> > FROM cutted_lines<br>
>>>> >> > WHERE direction = 'SN'<br>
>>>> >> > ),<br>
>>>> >> > cutted_lines_EW AS ( --this is the cutted lines going from East<br>
>>>> >> > toWest<br>
>>>> >> > SELECT *<br>
>>>> >> > FROM cutted_lines<br>
>>>> >> > WHERE direction = 'EW'<br>
>>>> >> > ),<br>
>>>> >> > points AS ( -- we take the intersection of EW lines with SN lines<br>
>>>> >> > ,<br>
>>>> >> > that is<br>
>>>> >> > the points on the grid.<br>
>>>> >> > SELECT ST_Intersection(clSN.lines_cutted, clEW.lines_cutted) AS<br>
>>>> >> > point<br>
>>>> >> > FROM cutted_lines_SN as clSN, cutted_lines_EW AS clEW<br>
>>>> >> > WHERE ST_Intersects(clSN.lines_cutted, clEW.lines_cutted)=TRUE --no<br>
>>>> >> > point ot<br>
>>>> >> > compute an intersection if lines don't intersect<br>
>>>> >> > )<br>
>>>> >> > SELECT row_number() over() AS id , point<br>
>>>> >> > FROM points ;<br>
>>>> >> ><br>
>>>> >> ><br>
>>>> >> ><br>
>>>> >> ><br>
>>>> >> ><br>
>>>> >> > Cheers,<br>
>>>> >> ><br>
>>>> >> > Rémi-C<br>
>>>> >> ><br>
>>>> >> ><br>
>>>> >> ><br>
>>>> >> > 2013/11/15 James David Smith <<a href="mailto:james.david.smith@gmail.com">james.david.smith@gmail.com</a>><br>
>>>> >> >><br>
>>>> >> >> Hey Remi,<br>
>>>> >> >><br>
>>>> >> >> I'll do a few checks and get back to you. Maybe I did something<br>
>>>> >> >> wrong<br>
>>>> >> >> because I set this query going on my local PostgreSQL installation<br>
>>>> >> >> but<br>
>>>> >> >> also on our Linux Cluster machine which is much more powerful. And<br>
>>>> >> >> it<br>
>>>> >> >> finished on my local installation BEFORE the cluster. So maybe I<br>
>>>> >> >> did<br>
>>>> >> >> something wrong on the local query.<br>
>>>> >> >><br>
>>>> >> >> The query that has finished took about 1 hour.<br>
>>>> >> >> The query on our cluster is still running.<br>
>>>> >> >><br>
>>>> >> >> select count(*) from ukmajrdbuffer = 8<br>
>>>> >> >> This is because before I was given the data the roads buffer had<br>
>>>> >> >> already been dissolved unfortunately.<br>
>>>> >> >><br>
>>>> >> >> James<br>
>>>> >> >><br>
>>>> >> >><br>
>>>> >> >><br>
>>>> >> >><br>
>>>> >> >> On 15 November 2013 13:43, Rémi Cura <<a href="mailto:remi.cura@gmail.com">remi.cura@gmail.com</a>> wrote:<br>
>>>> >> >> > Good !<br>
>>>> >> >> ><br>
>>>> >> >> > Something is strange with the result,<br>
>>>> >> >> > you get only 190k lines intersecting road buffer,<br>
>>>> >> >> > it is very few , I expected at least 10times this!<br>
>>>> >> >> > How many time took this computing by the way?<br>
>>>> >> >> ><br>
>>>> >> >> > How many road buffer geom do you have ? (select count(*) from<br>
>>>> >> >> > ukmajrdbuffer<br>
>>>> >> >> > ).<br>
>>>> >> >> ><br>
>>>> >> >> > Cheers,<br>
>>>> >> >> > Rémi-C<br>
>>>> >> >> ><br>
>>>> >> >> ><br>
>>>> >> >> > 2013/11/15 James David Smith <<a href="mailto:james.david.smith@gmail.com">james.david.smith@gmail.com</a>><br>
>>>> >> >> >><br>
>>>> >> >> >> Hey.<br>
>>>> >> >> >><br>
>>>> >> >> >> Yes, it's done. Was just getting some lunch! :-)<br>
>>>> >> >> >><br>
>>>> >> >> >> select count(*) from lines_for_each_road<br>
>>>> >> >> >> Result = 187033<br>
>>>> >> >> >><br>
>>>> >> >> >> I have also just ran 'VACUUM ANALYZE' on the tables<br>
>>>> >> >> >> 'lines_for_each_road' as well as the table 'all_lines'<br>
>>>> >> >> >><br>
>>>> >> >> >> I also can confirm that I have ran the following commands:<br>
>>>> >> >> >><br>
>>>> >> >> >> CREATE INDEX all_lines_index ON all_lines USING GIST ( the_geom<br>
>>>> >> >> >> )<br>
>>>> >> >> >> CREATE INDEX ukmajrdbuffer_index ON ukmajrdbuffer USING GIST<br>
>>>> >> >> >> (geom);<br>
>>>> >> >> >><br>
>>>> >> >> >> Should we now uncomment this line from the previous query?<br>
>>>> >> >> >><br>
>>>> >> >> >> " SELECT row_number() over() AS id--,* "<br>
>>>> >> >> >><br>
>>>> >> >> >> Thanks again Remi,<br>
>>>> >> >> >><br>
>>>> >> >> >> James<br>
>>>> >> >> >><br>
>>>> >> >> >><br>
>>>> >> >> >><br>
>>>> >> >> >> On 15 November 2013 13:14, Rémi Cura <<a href="mailto:remi.cura@gmail.com">remi.cura@gmail.com</a>><br>
>>>> >> >> >> wrote:<br>
>>>> >> >> >> > Also if you do have indexes,<br>
>>>> >> >> >> > can you run a "VACUUM ANALYZE", so that the indexes will be<br>
>>>> >> >> >> > used?<br>
>>>> >> >> >> ><br>
>>>> >> >> >> > Cheers,<br>
>>>> >> >> >> ><br>
>>>> >> >> >> > Rémi-C<br>
>>>> >> >> >> ><br>
>>>> >> >> >> ><br>
>>>> >> >> >> > 2013/11/15 Rémi Cura <<a href="mailto:remi.cura@gmail.com">remi.cura@gmail.com</a>><br>
>>>> >> >> >> >><br>
>>>> >> >> >> >> It should be finished by now,<br>
>>>> >> >> >> >> can you check you have geom indexes on :<br>
>>>> >> >> >> >> "ukmajrdbuffer.geom" and "all_lines.the_geom"<br>
>>>> >> >> >> >><br>
>>>> >> >> >> >><br>
>>>> >> >> >> >> How many geoms do you have in "ukmajrdbuffer"?<br>
>>>> >> >> >> >><br>
>>>> >> >> >> >> Cheers,<br>
>>>> >> >> >> >> Rémi-C<br>
>>>> >> >> >> >><br>
>>>> >> >> >> >><br>
>>>> >> >> >> >> 2013/11/15 Rémi Cura <<a href="mailto:remi.cura@gmail.com">remi.cura@gmail.com</a>><br>
>>>> >> >> >> >>><br>
>>>> >> >> >> >>> Hey Sandro,<br>
>>>> >> >> >> >>><br>
>>>> >> >> >> >>> Thanks for this, it is at least twice faster =)<br>
>>>> >> >> >> >>><br>
>>>> >> >> >> >>> Cheers,<br>
>>>> >> >> >> >>> Rémi-C<br>
>>>> >> >> >> >>><br>
>>>> >> >> >> >>><br>
>>>> >> >> >> >>><br>
>>>> >> >> >> >>><br>
>>>> >> >> >> >>> 2013/11/15 James David Smith <<a href="mailto:james.david.smith@gmail.com">james.david.smith@gmail.com</a>><br>
>>>> >> >> >> >>>><br>
>>>> >> >> >> >>>> Thanks both. Geometries now fixed.<br>
>>>> >> >> >> >>>><br>
>>>> >> >> >> >>>> The query 'CREATE TABLE lines_for_each_road....' has now<br>
>>>> >> >> >> >>>> been<br>
>>>> >> >> >> >>>> set<br>
>>>> >> >> >> >>>> running. Will report back when it's done. I suspect it may<br>
>>>> >> >> >> >>>> take<br>
>>>> >> >> >> >>>> a<br>
>>>> >> >> >> >>>> while!<br>
>>>> >> >> >> >>>><br>
>>>> >> >> >> >>>> James<br>
>>>> >> >> >> >>>><br>
>>>> >> >> >> >>>> On 15 November 2013 11:03, Sandro Santilli<br>
>>>> >> >> >> >>>> <<a href="mailto:strk@keybit.net">strk@keybit.net</a>><br>
>>>> >> >> >> >>>> wrote:<br>
>>>> >> >> >> >>>> > On Fri, Nov 15, 2013 at 11:50:42AM +0100, Rémi Cura<br>
>>>> >> >> >> >>>> > wrote:<br>
>>>> >> >> >> >>>> >> Yep, maybe something like<br>
>>>> >> >> >> >>>> >><br>
>>>> >> >> >> >>>> >> UPDATE ukmajrdbuffer SET the_geom =<br>
>>>> >> >> >> >>>> >> ST_MakeValid(the_geom)<br>
>>>> >> >> >> >>>> >> WHERE ST_IsValid(the_geom) = FALSE<br>
>>>> >> >> >> >>>> ><br>
>>>> >> >> >> >>>> > ST_MakeValid internally checks for ST_IsValid, so no<br>
>>>> >> >> >> >>>> > need<br>
>>>> >> >> >> >>>> > to add the condition (which would run the test twice).<br>
>>>> >> >> >> >>>> ><br>
>>>> >> >> >> >>>> > --strk;<br>
>>>> >> >> >> >>>> > _______________________________________________<br>
>>>> >> >> >> >>>> > postgis-users mailing list<br>
>>>> >> >> >> >>>> > <a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
>>>> >> >> >> >>>> ><br>
>>>> >> >> >> >>>> > <a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
>>>> >> >> >> >>>> _______________________________________________<br>
>>>> >> >> >> >>>> postgis-users mailing list<br>
>>>> >> >> >> >>>> <a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
>>>> >> >> >> >>>><br>
>>>> >> >> >> >>>> <a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
>>>> >> >> >> >>><br>
>>>> >> >> >> >>><br>
>>>> >> >> >> >><br>
>>>> >> >> >> ><br>
>>>> >> >> >> ><br>
>>>> >> >> >> > _______________________________________________<br>
>>>> >> >> >> > postgis-users mailing list<br>
>>>> >> >> >> > <a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
>>>> >> >> >> > <a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
>>>> >> >> >> _______________________________________________<br>
>>>> >> >> >> postgis-users mailing list<br>
>>>> >> >> >> <a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
>>>> >> >> >> <a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
>>>> >> >> ><br>
>>>> >> >> ><br>
>>>> >> >> ><br>
>>>> >> >> > _______________________________________________<br>
>>>> >> >> > postgis-users mailing list<br>
>>>> >> >> > <a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
>>>> >> >> > <a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
>>>> >> >> _______________________________________________<br>
>>>> >> >> postgis-users mailing list<br>
>>>> >> >> <a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
>>>> >> >> <a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
>>>> >> ><br>
>>>> >> ><br>
>>>> >> ><br>
>>>> >> > _______________________________________________<br>
>>>> >> > postgis-users mailing list<br>
>>>> >> > <a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
>>>> >> > <a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
>>>> >> _______________________________________________<br>
>>>> >> postgis-users mailing list<br>
>>>> >> <a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
>>>> >> <a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
>>>> ><br>
>>>> ><br>
>>>> ><br>
>>>> > _______________________________________________<br>
>>>> > postgis-users mailing list<br>
>>>> > <a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
>>>> > <a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
>>>> _______________________________________________<br>
>>>> postgis-users mailing list<br>
>>>> <a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
>>>> <a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
>>><br>
>>><br>
>>><br>
>>> _______________________________________________<br>
>>> postgis-users mailing list<br>
>>> <a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
>>> <a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> postgis-users mailing list<br>
>> <a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
>> <a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
><br>
><br>
><br>
> _______________________________________________<br>
> postgis-users mailing list<br>
> <a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
> <a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
_______________________________________________<br>
postgis-users mailing list<br>
<a href="mailto:postgis-users@lists.osgeo.org">postgis-users@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users" target="_blank">http://lists.osgeo.org/cgi-bin/mailman/listinfo/postgis-users</a><br>
</div></div></blockquote></div><br></div>