Hej<br>Jag blev medveten om topojson ganska nyligen, men det verkar väldigt intressant också.<br>Topojson har stöd för topologier, så om Norges kommuner skall lagras så lagras bara gränserna mellan två polygoner 1 gång istället för en gång per polygon som vanligt. <br>Ett sådant stöd går att bygga in i twkb också.<br>Men den stora skillnaden är att topojson är ett läsbart textformat. Twkb är binärt så den är inte läsbar. <br><br>/Nicklas<br><br>Jørn-Vegard Røsnes <jvrosnes@gmail.com> wrote:<br><br><p>Hei,<br>
bare leste din epost raskt. Høres spennende ut.<br>
Likner litt på TopoJSON, men sannsynligvis tar jeg feil.</p>
<p>vennlig hilsen<br>
Jørn-Vegard Røsnes</p>
<div class="gmail_quote">Den 8. apr. 2013 00:31 skrev "Nicklas Avén" <<a href="mailto:nicklas.aven@jordogskog.no">nicklas.aven@jordogskog.no</a>> følgende:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hej<br>
<br>
När ändå listan har vaknat lite så är det väl lika bra att fortsätta :-)<br>
<br>
Jag har hållit på en del den senaste tiden med ett exportformat från<br>
PostGIS som jag har stor tro på.<br>
<br>
Det är ett komprimerat binärt format.<br>
<br>
Jag skall inte ta hela förklaringen här och nu, det kommer en blog-post<br>
med tiden.<br>
<br>
funktionen har jag än så länge kallat ST_ASTWKB<br>
Men kort förklarat så är det ett binärformat som har liknande features<br>
som en del text-baserade format. Den lagrar relativa koordinater, dvs<br>
den första koordnaten är komplett men sedan är det bara sträckan i x och<br>
y-led fram till nästa koordinat som lagras. På det sättet kan de flesta<br>
koordinaterna lagras på betydligt mindre utrymme.<br>
<br>
En annan sak är att i geometrien så finns det också plats att lagra ett<br>
id.<br>
<br>
Det är fortfarande en hel del optimaliseringar att göra, och jag har en<br>
hel del idéer på hur man kan gå vidare, tex genom att göra en<br>
aggregerande variant på ST_ASTWKB. Då geometrien har plats för sin egen<br>
id så kan man nästla många geometrier i en geometry collection med<br>
bibehållna id på varje geometrie. Om man då gör aggregeringen utifrån en<br>
grid så har man skapat vektor-tiles i binärformat.<br>
<br>
Man kan också tänka sig att utvidga formatet till att hantera<br>
topologier.<br>
<br>
Jag har tro på att det kan bli bra, men har inte lagt stort jobb på att<br>
sälja in det till resten av PostGIS-gänget än.<br>
<br>
Här finns en demo som fungerar (åtminståne för mig) Det verkar vara lite<br>
problem med färgsättningen av arealdekke i en del browsrar.<br>
<a href="http://178.79.156.122/twkb" target="_blank">http://178.79.156.122/twkb</a><br>
<br>
I botten av sidan kan ni klicka igång två lager, Norges kommuner och ett<br>
lager som heter N2000 som norska kartverket har släppt fritt (jag hoppas<br>
detta är tillåten använding).<br>
<br>
I kommun-lagret är det 435 polygoner med ca 130000 vertex-punkter om jag<br>
minns rätt. I arealdekke är det drygt 3500 polygoner och ca 180000<br>
vertexpunkter.<br>
lagren är på ca 160 respektive 600 kb när de sänds över nätet. Då är de<br>
gzippade i php också.<br>
<br>
Demon är inte särskilt snabb. Flaskhalsarna är både i att jag både<br>
dumpar geometrierna till singel polygoner, transformerar dem till srid<br>
4326 och bygger twkb on the fly. Det som tar tid är dumpingen och<br>
transformeringen. Båda är onödiga att göra on the fly.<br>
<br>
Nästa flaskhals är att jag är för dålig på leaflet och javascript. Efter<br>
att geometrierna är parsade från binärformat så lagras de i ganska<br>
komplexa object som verkar vara väldigt slöa. Dessutom verkar det ta tid<br>
att skapa upp polygonerna i Leaflet.<br>
<br>
Så om det finns någon som tror på id±en och vill hjälpa till för att få<br>
in den i PostGIS core, så ta gärna en titt och hjälp mig optimalisera<br>
client-sidan.<br>
<br>
koden till ST_ASTWKB ligger i<br>
<a href="http://svn.osgeo.org/postgis/spike/nicklas/twkb" target="_blank">http://svn.osgeo.org/postgis/spike/nicklas/twkb</a><br>
<br>
Den är bara att kompilera och köra.<br>
<br>
Själva funktionen finns i<br>
<a href="http://svn.osgeo.org/postgis/spike/nicklas/twkb/liblwgeom/lwout_twkb.c" target="_blank">http://svn.osgeo.org/postgis/spike/nicklas/twkb/liblwgeom/lwout_twkb.c</a><br>
<br>
Så kom gärna med inspel om det är något ni tror på eller inte.<br>
<br>
För att se hur själva parsingen från binärt går hos klienten så är det<br>
lättast att kolla i twkb.js i demon ovanför.<br>
<br>
Det finns helt säkert buggar där :-)<br>
<br>
<br>
Hälsningar<br>
<br>
Nicklas Avén<br>
<br>
_______________________________________________<br>
Nordic mailing list<br>
<a href="mailto:Nordic@lists.osgeo.org">Nordic@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/nordic" target="_blank">http://lists.osgeo.org/mailman/listinfo/nordic</a><br>
</blockquote></div>