<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">I'm working on a batch way to import topology,</div><div class="gmail_default" style="font-family:monospace,monospace">it is not ready yet.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">If you now for sure your data is correct, you can skip a lot of testing and be efficient in a batch way.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">You could use grass and the topological export.<br><br>Cheers,</div><div class="gmail_default" style="font-family:monospace,monospace">Rémi-C</div></div><div class="gmail_extra"><br><div class="gmail_quote">2015-06-02 19:25 GMT+02:00 Marc-André Goderre <span dir="ltr"><<a href="mailto:magoderre@cgq.qc.ca" target="_blank">magoderre@cgq.qc.ca</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="FR-CA" link="blue" vlink="purple">
<div>
<p class="MsoNormal">Hello all,<u></u><u></u></p>
<p class="MsoNormal">I'm creating topology data from almost all world road OSM data ( More than 77 Million ways).<u></u><u></u></p>
<p class="MsoNormal">Processing the data  with postgis topology in one shot is so long than that I created a hexagonal grid that let me create topological data from only one or many cell of the grid.<u></u><u></u></p>
<p class="MsoNormal">Even this way, It' s going to take many month to process the world's data.<u></u><u></u></p>
<p class="MsoNormal">Is there a way to make it faster?<u></u><u></u></p>
<p class="MsoNormal">This is my function that I use to process data.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">CREATE OR REPLACE FUNCTION cm_update_tile_data(tile_id integer)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">  RETURNS character varying AS<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">$BODY$<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">DECLARE r RECORD;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif""><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">BEGIN<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">  FOR r IN SELECT * FROM way, join world_grid  on line&& the_geom where gid=tile_id and topo_geom is NULL LOOP<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">    BEGIN<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">      UPDATE way
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">SET topo_geom = topology.toTopoGeom(st_force2d(line), 'way_topo', 1)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">      WHERE id = <a href="http://r.id" target="_blank">r.id</a>;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">    EXCEPTION<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">      WHEN OTHERS THEN<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">        RAISE WARNING 'Loading of record % failed: %', <a href="http://r.id" target="_blank">r.id</a>, SQLERRM;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">    END;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">  END LOOP;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">  UPDATE world_grid set last_update = now() where gid=tile_id;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">  return 'OK';<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">END<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">$BODY$<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">  LANGUAGE plpgsql VOLATILE<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial Narrow","sans-serif"">  COST 100;<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks<span class="HOEnZb"><font color="#888888"><u></u><u></u></font></span></p><span class="HOEnZb"><font color="#888888">
<p class="MsoNormal"><b><span lang="FR" style="color:#000099"><u></u> <u></u></span></b></p>
<p class="MsoNormal"><b><span lang="FR" style="color:#000099">Marc</span></b><span lang="FR">
</span><span><u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
</font></span></div>
</div>

<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></blockquote></div><br></div>