NoSQL vs SQL Geo DB

December 20, 2018 | Author: Ljubiša Isaković | Category: No Sql, Relational Database, Databases, Geographic Information System, Conceptual Model
Share Embed Donate


Short Description

Hoooah!...

Description

NoSQL spatial  Neo4j versus PostGIS 

Bart Baas

NoSQL spatal

NoSQL spatial  Neo4j versus PostGIS  Maser Thesis

Date: May 22, 2012 Version: 1.01 fnal Author: Bar Baas Geographical Inor!aton Manage!en an" #pplicatons $GIM#%

Supervisor: &. Q'a( $T)*% Professor: +. an -osero! $T)*% Reviewer: . "e By $IT/%

iii

NoSQL spatal

$Gee( #n" +o(e NoSQL 2011%

i

NoSQL spatal

 Abstract  The relatonal "aa !o"el is no !ore han 0 years ol". I3s goo" or ery "i4eren scenarios an" can han"le cerain ypes o "aa ery ell. B' i isn3 perec. #n increasing n'!5er o non6relatonal syse!s are 5eing or(e" on, collectely calle" he 3NoSQL !oe!en3. NoSQL is an '!5rella er! or a loosely "efne" class o non6relatonal "aasores an" 5es "escri5e" as 3No only SQL3. 78a!ples are Google3s BigTa5le an" #!a9on3s *yna!o. These syse!s !ay proi"e a"anages oer relatonal "aa5ases, 5' generally lac( he relatonal ro5'sness or hose a"anages. In an a:e!p o !o"esly conri5'e o he c'rren research in he fel" o geographical inor!aton syse! syse!s, s, his his resear research ch repor reporss on a co!par co!pariso ison n o one s'ch NoSQL NoSQL "aas "aasore ore calle" calle" Neo; Neo; ih ih he ra"itonal relatonal "aa5ase +osgreSQL hen soring an" 5ar5aas>g6neo;6spatal.. Soar Soare e "eelo "eelop!e p!en n has 5een 5een "one "one ih ih he open6s open6so'r o'rce ce Ne5ea Ne5eans ns Inegr Inegrae ae" " *eelo *eelop!e p!en n 7niron!en $I*7% $ne5eans.org 2011%. #ll he ools nee"e" o creae soare ih he =aa plaZor! are aaila5le. aaila5le. Licenses Licenses are o4ere" 'n"er a "'al license o he /**L $/o!!on $/o!!on *eelop!en *eelop!en an" *isri5'ton *isri5'ton License% an" G+L ersion 2. To si!pliy he 5'il" process, #pache Maen $!aen.apache.org 2011% is 'se" as a 5'il" ool. Base" on he concep o a pro;ec o5;ec !o"el $+-M%, Maen can !anage a pro;ec3s "epen"encies, 5'il", reportng an" "oc'!enaton ro! a cenral piece o inor!aton. The ool Kis'alKM $is'al!.;aa.ne 2012% has 5een 'se" o proi"e a is'al inerace or ieing "eaile" inor!aton a5o' =aa applicatons hile r'nning on a =aa Kir'al Machine $=KM%. "eo)* architecture Neo; "oes no hae a san"ar" SQL inerace he san"ar" inerace inerace lang'age o he Neo; "aa5ase "aa5ase is ih 7ST re > 0.!c" 4> resrictng oher graph ypes is reerre" o as 3graph ype !orphis!3 in o"rig'e9 an" Ne'5a'er $2010% as ill'srae" in @ig're in @ig're 12. 12 .

Figure 1#: Draph ype !orphis! 'Rodrigue5 and Neubauer #)1)*

# co!!on co!!on graph ype s'ppor s'ppore" e" 5y !os !os graph graph "aa5as "aa5ase e syse! syse!ss is a co!5in co!5inato aton n o he "irece" "irece"6, 6, la5ele"6, a:ri5'e"6 an" !'lt6graph. This ype o graph is also (non as a 3propery graph3 an" allos he represenaton o la5ele" ertces, la5ele" la5ele" e"ges, an" a:ri5'e "aa $or propertes% or 5oh ertces an" e"ges. The propery graph is co!!on 5eca'se 5y si!ply a5an"oning or a""ing partc'lar characeristcs, oher graph ypes can 5e e8presse" or e8a!ple, 5y re!oing he a:ri5'e" characeristcs, he graph 2

NoSQL spatal 5ehaes as a la5ele" graph. esrictng he graph any 'rher 5y no alloing loops, !'ltple e"ges, la5els an" "irectonaliy, a si!ple graph is creae". This is is'ali9e" in #ppen"i8 II. Neo; !a(es 'se o his propery graph "aa !o"el. To ens're opt!al peror!ance in graph raersals, he propertes are lin(e" o he "aa sr'c're as e8plaine" in paragraph .2.C paragraph  .2.C..

,!# Neo,& ,!#!1 Nodes and $elations%ips #s e8plaine" in he preio's paragraph, Neo; is a graph "aa5ase 'sing he propery graph "aa !o"el. This !o"el ens'res ha e"ges are "irece", ertces>e"ges are la5ele", ertces>e"ges hae associae" (ey>al'e pair "aa $i.e. propertes%, an" ha here can 5e !'ltple e"ges 5eeen any o ertces. In Neo Neo;, ;, a:ri5 a:ri5' 'e" e" ert ertce cess are calle calle" " 3no" 3no"es es33 an" an" he he "ire "irec ce" e" a:ri5 a:ri5' 'e" e" e"ge e"gess are are na!e na!e" " 3relatonsh 3relatonships3. ips3. The a:ri5'e" a:ri5'e" al'es he!sele he!seless are calle" calle" 3properte 3propertes3. s3. The no"es, relatonshi relatonships ps an" propertes are he 5'il"ing 5loc(s o he "aa !o"el. # relatonship connecs o no"es, has a ell6"efne" !an"aory ype, an", optonally, can 5e "irece". +ropertes are (ey>al'e pairs ha are a:ache" o 5oh no"es an" relatonships hich can 5e eiher a pri!ite or an array o one pri!ite ype. /o!5ining no"es, he relatonships 5eeen he! an" he propertes o 5oh no"es an" relatonships or!s a no"e space J a coheren neor( representng he graph "aa. $Neo Technology 200H%

Figure 1=: 6n ea!ple of a Neo4 graph

@ig're 1C shos a si!ple propery graph. Noe ho all no"es hae i"s an" ho all he relatonships hae a ype. In his case, he o relatonship ypes are PN-&S an" BL-/PS, a "irece" relatonship representng hich person person (nos anoher. anoher. #ll no"es hae a na!e propery $seen $seen in he ligh propery propery 5o8es% an" he relatonships hae propertes "escri5ing or ho long he people hae (non each6oher an" heher he acserer syse!, he Google &e5 Tool(i $G&T% is 'se" as applicaton ra!eor(. G&T is a "eelop!en ool(i or 5'il"ing 5roser65ase" applicatons in =aa. The applicaton r'ns as a serer6si"e =aa serle hile he clien asynchrono'sly re: Neo4 dashboard 

C0

NoSQL spatal

4!1!# "ost.S das%board Insalling Insalling he +osGIS +osGIS "aa5ase "aa5ase has 5een "one ih o!e5re $!8cl.gih' $!8cl.gih'5.co! 5.co!>ho!e >ho!e5re 5re 2012%, a pac(age !anage!en syse! ha si!plifes he insallaton o )NI soare on he Mac -S operatng syse!. So'rce6co"e is "onloa"e", co!pile" an" insalle" 5y pac(ages scrips calle" 3or!'lae3. The co!!an"s are all e8ec'e" ro! a Ter!inal session brew install postgis

The +osGIS 5re or!'la ill also insall +osgreSQL, +ro;, Geos an" so!e oher "epen"encies. *'ring he process, i ill presen an e8plainer a5o' ho o sar he +osgreSQL serer. /reae an e!py "aa5ase ih initdb /Users//data/pgdata

Ma(e he "aa5ase spatal aare ih +osGIS $posgis.reractons.ne 2011% psql -d -f /usr/local/share/postgis/postgis.sql psql -d -f /usr/local/share/postgis/spatial_ref_sys.sql

#"" he ro'tng engine pgo'tng $pgro'tng.org 2012% brew install pgRouting

Ma(e he "aa5ase ro'tng aare psql -d -f /usr/local/share/postlbs/routing_core.sql psql -d -f /usr/local/share/postlbs/routing_core_wrappers.sql psql -d -f /usr/local/share/postlbs/routing_topology.sql

-SM "aa is i!pore" ino +osGIS 'sing he -s!2pgs+osGIS incl'"es GiST operaor classes e: 9osDE$ polygon daa srucure ;olumn

9ype

Descrip%on

-SMi"b ineger

I"entfer as as s sore" in in h he -S -SM fle

ag

e8

-ne col'!n or eery ag specife" in he syle fle, conains he ag al'e

9o 9or"e r"er

ineger

[ or or"er "er $i $i sp specife ife" in in s syle yle fle fle%%, cal calcc'lae" e" a' a'o!atcal tcallly

ayare area real

#rea $i specife" in he syle yle fle% le%, calc' lc'lae" a'o!atcall ally

aybb

&ay geo!ery $coor"ina inaes o al all po poin ins as &PB% PB%

geo!ery

networ3 This a5le conains he ro'e neor( opology in a a5le or!a ha is e8pece" 5y pgo'tng, as e8plai e8plaine" ne" in paragr paragraph aph D. $page  2%.  2%. +go'tng3s shorespah 'ncton nee"s he so'rce an" arge no"es in ineger or!a. Table 1?: 9osDE$ neor( daa srucure ;olumn

9ype

Descrip%on

gi"

serial

)niools>os! "ocs>ools>os!2pgro'tng.h! 2pgro'tng.h!ll

C

NoSQL spatal NAIT OA A3IN FUNTDO createnet:or/ createnet:or/  ATUAS tet IS JJ 5NIA streetAecord record record@ @ :a2Aecord record record@ @ $ointNo)nt integer integer@ @ $ointDnde integer integer@ @ geoFragent record record@ @ ED -- start te transaction FOA streetAecord D SNT :a2 :a27 7 OSMid OSMid7 7 nae FAOM $,anetos,ine B9A ig:a2 DS OT U I5 ig:a2 OT D D   'c2c,e:a2' 'c2c,e:a2'7 7';oot:a2' ';oot:a2'7 7'$edestrain' '$edestrain'7 7'service' 'service'  OO3 SNT  SNT   FAOM $,anetos:a2s B9A id id =  = streetAecord streetAecord.os .osid id DTO :a2Aecord :a2Aecord@ @ FOA $ointDnde D arra2,o:er arra2,o:er :a2Aecord :a2Aecord. .nodes nodes7 7 1..arra2)$$er 1..arra2)$$er :a2Aecord :a2Aecord. .nodes nodes71-1 71-1 OO3 SNT sta/e,ine sta/e,ine st$ointn st$ointn streetAecord streetAecord. .:a2 :a27 7 $ointDnde $ointDnde7 7 st$ointn st$ointn streetAecord streetAecord. .:a2 :a27 7 $ointDnde $ointDnde1 1 IS :a2 DTO geoFragent geoFragent@ @ DSAT DTO net:or/ net:or/ OSMid OSMid7 7 nae nae7 7 tegeo tegeo7 7 so)rce so)rce7 7 target target7 7 ,engt ,engt  KIUS KIUS streetAecord streetAecord.os .osid id7 7 streetAecord. streetAecord .nae nae7 7 geoFragent. geoFragent .:a2 :a27 7 :a2Aecord. :a2Aecord .nodesV$ointDndeW nodesV$ointDndeW7 7 :a2Aecord. :a2Aecord .nodesV$ointDnde1W nodesV$ointDnde1W7 7 st,engt st,engt STeogFroB+E STeogFroB+E geoFragent geoFragent. .:a2 :a27 7 ;a,se@ ;a,se @ 5 OO3 OO3@ @ 5 OO3 OO3@ @ ret)rn '5one' '5one'@ @ 5@ 5 @ JJ IUI '$,$gsL,' '$,$gsL,'@ @

$nippe 5ar5aas>gi!a6neo;ess +osGIS h:p>>gih'5.co!>5ar5aas>gi!a6posgisess So!e reg'i"e.co'ch"5.org>e"itons>1>en>in"e8.h!l $las accesse" 11 -co5er 2011%. *ean, =., an" S. Ghe!aa. 200. Mape"'ce Si!plife" "aa processing on large cl'sers. 8o!!unicatons of he  68 D1 $1%10EJ11C. *e/an"ia, G. e al. 200E. *yna!o a!a9on_s highly aaila5le (ey6al'e sore. 68 $EDB9$ Bperatng $yse!s Re3ie  1 $H%20DJ220. *i;(sra, 7. &. 1FDF. # noe on o pro5le!s in conne8ion ih graphs. Nu!erische ahe!at(  1  1 $1%2HFJ2E1. *o!ing'e96Sal, *. e al. 2011. # "isc'ssion on he "esign o graph "aa5ase 5ench!ar(s. In 9roceedings of he $econd T98 echnology conference on 9erfor!ance e3aluaton2 !easure!en and characeri5aton of co!ple syse!s, 2DJ0. Singapore Springer6Kerlag. 7"lich, S. e al. 2010. No$%&: 7insteg in die Wel nichrelatonaler Web-#.)-,aenban(en. anser. Gee( #n" +o(e NoSQL. 2011. Dee( 6nd 9o(e: No$%&. h:p>>gee(an"po(e.ypepa".co!>gee(an"po(e>2011>01>nosG7-S>&elco!e $las accesse" 10 March 2012%. Gil5er, S., an" N. Lynch. 2002. Breer_s con;ec're an" he easi5iliy o consisen, aaila5le, partton6oleran e5

H

NoSQL spatal serices. $ED68T Nes CC $2%D1JDF. gissole".5logspo.co!. 200F. DE$ $ol3ed . h:p>>gissole".5logspo.co!>200F>0D>pop'latng6!ongo"56ih6 pois.h!l $las accesse" 2C May 2011%. Gray, =. 1FF2. ench!ar( handboo(: for daabase and ransacton processing syse!s . Morgan Pa'!ann +'5lishers Inc. gre!lin.tn(erpop.co!. 2012. Dre!lin. h:ps>>gih'5.co!>tn(erpop>gre!lin>i(i $las accesse" 20 May 2012%. G]tng, . 1F. Geo6relatonal alge5ra # !o"el an" cassan"ra6s6!ongo"56s6co'ch"56s6re"is $las accesse" 1D #'g's 2011%. l'cene.apache.org. 2012. h:p>>l'cene.apache.org> $las accesse" 2 #pril 2012%. Maier, *. 1FF0. epresentng "aa5ase progra!s as o5;ecs. In  6d3ances in daabase progra!!ing languages languages, CEEJ CH. #/M. !aen.apache.org. 2011. 6pache a3en. h:p>>!aen.apache.org> $las accesse" 2C May 2012%. McGee, &. /. 1FEH. -n 'ser crieria or "aa !o"el eal'aton. 68 Transactons on ,aabase ,aabase $yse!s 'TB,$* 1 $%CE0JCE. Mische. 2011. i!eo.co!. 8ouch, and Deo8ouch - Gol(er ische on Gi!eo. h:p>>i!eo.co!>1FHE2E1H $las accesse" 11 -co5er 2011%. Michell, *. +., an" M. =. Merri:. 1F. # "isri5'e" algorih! or "ea"loc( "eecton an" resol'ton. In 9roceedings of he hird annual 68 sy!posiu! on 9rinciples of disribued co!putng, 22J2. #/M. !ongo"5.org. 2011. ongo,. h:p>>.!ongo"5.org> $las accesse" 1F Noe!5er 2011%. !8cl.gih'5.co!>ho!e5re. 2012. h:p>>!8cl.gih'5.co!>ho!e5re> $las accesse" 11 May 2012%. Neo Technology. 200H. The Neo *aa5ase J # Technology Inro"'cton. h:p>>"is.neo;.org>neo6echnology6 inro"'cton.p" $las accesse" 1 Noe!5er 2011%. Neo; /o!!'niy 6 More spatal $las accesse" 22 @e5r'ary 2012%. Neo; Spatal /o!ponens #+I. 2012. h:p>>co!ponens.neo;.org>neo;6spatal>0.E>api"ocs $las accesse" 21 @e5r'ary 2012%. neo;.org. 2011. neo4: WorldMs &eading Draph ,aabase . h:p>>neo;.org> $las accesse" 20 March 2012%. ne5eans.org. 2011. Neeans Neeans 9laor! $hocase . h:p>>plaZor!.ne5eans.org>screenshos.h!l $las accesse" 2C May 2011%. N-SQL !ee'p. 200F. h:p>>nos $las accesse" 11 ='ly 2011%. nos $las accesse" 2 May 2011%. HD

NoSQL spatal -racle Big *aa. 2011. ired.co!. h:p>>.ire".co!>ire"enerprise>2011>10>oracle6nos>.paolocort.ne>200F>12>0H>'sing6!ongo"56o6sore6geographic6 "aa> $las accesse" 2C May 2011%. +aroi, @. A. 1FF. *eer!ining ha o 5ench!ar( an analytc hierarchy process approach. Enernatonal ournal of  1 $H%2DJCF. Bperatons S 9roducton anage!en  1 pgro'tng.org. 2012. pgRoutng 9ro4ec . h:p>>.pgro'tng.org> $las accesse" 22 May 2012%. +osGIS 1.D.C Man'al. 2011. h:p>>posgis.reractons.ne>"ocs> $las accesse" 21 @e5r'ary 2012%. posgis.reractons.ne. 2011. 9osDE$ : @o!e. h:p>>posgis.reractons.ne> $las accesse" 2 #pril 2012%. +osgreSQL F.1.C *oc'!enaton. 2011. 9osgre$%&: ,ocu!enaton: anuals: 9osgre$%& >.posgres"ocs>F.1>satc>in"e8.h!l $las accesse" 2E March 2012%. +riche:, *. 200. Base #n aci" alernate. %ueue H $C%JDD. Q'a(, &. e al. 200. # spatal *BMS 5'yer_s g'i"e Inge Ne:er5erg an" Serena /oe9ee $7"s.%. h:p>>(ennis.rgi.nl> pagep'5licatonsjypep'5licatonsjs'5prinji"CFjcol5esan". rene6pic(har"."e. 2011. @o o co!bine Neo4 ih DWT and 7clipse . h:p>>.rene6pic(har"."e>ho6o6 co!5ine6neo;6ih6g6an"6eclipse> $las accesse" 22 @e5r'ary 2012%. o"rig'e9, M. #., an" +. Ne'5a'er. 2010. /onsr'ctons ro! *os an" Lines. 8oRR a5s>100H.2CH1. San(ar, P. 2010. B'il"ing a NoSQL *aa /lo'". h:p>>!y.saari5oo(sonline.co!>i"eo>"aa5ases>FE1FCFH2 $las accesse" 2 ='ne 2011%. Sch'95erg, #. 2011. NoSQL *aa5ases &ha Geospatal )sers Nee" o Pno. ,irectons !aga5ine. h:p>>."irectons!ag.co!>artcles>nos1HHCD $las accesse" 2C May 2011%. Sil5erscha9, #. e al. 1FFH. *aa !o"els. 68 8o!putng $ur3eys '8$UR* 2 $1%10DJ10. slash"o.org. 2012. Es E Ti!e For No$%& #.)K - $lashdo . h:p>>har"are.slash"o.org>sory>12>02>22>1EC2221>is6i6 t!e6or6nos>"ocs.neo;.org>ch'n(e">1.D.2>in"e8.h!l $las accesse" H Noe!5er 2011%. Theo"ori"is, A. e al. 1FF. Specifcatons or eRcien in"e8ing in spatoe!poral "aa5ases. In $cient/c and $atstcal ,aabase anage!en2 1tn(erpop.co!> $las accesse" 22 May 2012%. o!ca.apache.org. 2011. 6pache To!ca . h:p>>o!ca.apache.org> $las accesse" 2 March 2012%. Kenni8, =. #. M. e al. 1FFE. @oreor" Gro'p !o"el 5'il"ing, ar, an" science. $yse! ,yna!ics Re3ie  1C  1C $2%10CJ 10H. Kic(nair, /. e al. 2010. # /o!parison o a Graph *aa5ase an" a elatonal *aa5ase. In 9roceedings of he Ch annual $ouheas regional conference. is'al!.;aa.ne. 2012. GisualG. h:p>>is'al!.;aa.ne> $las accesse" 1F May 2012%. ii"sol'tons.co!>;s. 2012. T$ Topology $uie. h:p>>.ii"sol'tons.co!>;s>;sho!e.h! $las accesse" 22 May 2012%.

HH

NoSQL spatal &eglar9, G. 200. To &orl"s *aa6)nsr'c're" an" Sr'c're". , R7GE7W  11FJ2C.  11FJ2C. &es, *. B. 2001. Enroducton o graph heory . +rentce all )pper Sa""le ier, N=. i(i.opensree!ap.org. 2011. Bpen$reeap Wi(i . h:p>>i(i.opensree!ap.org>i(i>Legal@#Q $las accesse" C #'g's 2011%. i(i.opensree!ap.org>i(i>os!osis. 2011. Bs!osis. h:p>>i(i.opensree!ap.org>i(i>-s!osis $las accesse" C #'g's 2011%. i(ipe"ia.org. 2011. Wi(ipedia - No$%&. h:p>>en.i(ipe"ia.org>i(i>Nos>.9oero.org> $las accesse" 2E March 2012%.

HE

 Appendices  Appendi/ - Brewer=s 2CA"3 T%eorem  Appendi/ - .rap% internals  Appendi/ - Neo,& 8S* data structure  Appendi/ >>- "ost.S 8S* table structure  Appendi/ >>- *aven pom 5ile  Appendi/ >>- 8S* import differences  Appendi/ >>- 8S* e'ual geometries  Appendi/ >>- (efault!st+le 5ile  Appendi/ ??- Neo,& St+le$eader class  Appendi/ ??- Neo,& 8S*mporter 2improved3  Appendi/ ??- Creating route topolog+  Appendi/ ??-  Networks  Appendi/ ? ?- Source code- .9=s part   Appendi/ ?>?>- Source code tests  Appendi/ ?>?>- $esults of t%e operations  Appendi/ ?>?>- Tables of measurements  Appendi/ ?>?>- *emor+ measurements Neo,&

 Appendi/ 

Brewer=s 2CA"3 T%eorem T%eorem

@ig're a"ope" ro! h:p>>5log.nah'rs.co!>is'al6g'i"e6o6nos

"ost.S 8S* table structure structure List of relations

Schema |

Name

|

Type

|

Owner

|

Size

| Description

--------+----------------------------+----------+----------+------------+------------public | geography_colu mns

| view

| bartbaas | 0 bytes

|

public | geometry_colum ns

| table

| bartbaas | 48 kB

|

public | network

| table

| bartbaas | 11 MB

|

public | network_gid_se q

| sequence | bartbaas | 8192 bytes |

public | planet_osm_lin e

| table

| bartbaas | 5888 kB

|

public | planet_osm_lin e_pid_seq

| sequence | bartbaas | 8192 bytes |

public | planet_osm_nod es

| table

| bartbaas | 20 MB

|

public | planet_osm_poi nt

| table

| bartbaas | 1064 kB

|

public | planet_osm_poi nt_pid_seq

| sequence | bartbaas | 8192 bytes |

public | planet_osm_pol ygon

| table

| bartbaas | 11 MB

|

public | planet_osm_polygon_pid_seq | sequence | bartbaas | 8192 bytes | public | planet_osm_rel s

| table

| bartbaas | 8192 bytes |

public | planet_osm_roa ds

| table

| bartbaas | 1112 kB

|

public | planet_osm_way s

| table

| bartbaas | 17 MB

|

public | spatial_ref_sy s

| table

| bartbaas | 3000 kB

|

public | vertices_tmp

| table

| bartbaas | 2424 kB

|

public | vertices_tmp_i d_seq

| sequence | bartbaas | 8192 bytes |

Table "public.planet_osm_point" Column

|

Type

| Modifiers | Storage

| Description

--------------------+----------+-----------+----------+------------OSM_id

| integer

|

| plain

|

access

| text

|

| extended |

addr:housename

| text

|

| extended |

addr:housenumber

| text

|

| extended |

addr:interpolation | text

|

| extended |

admin_level

| text

|

| extended |

aerialway

| text

|

| extended |

aeroway

| text

|

| extended |

amenity

| text

|

| extended |

area

| text

|

| extended |

barrier

| text

|

| extended |

bicycle

| text

|

| extended |

brand

| text

|

| extended |

bridge

| text

|

| extended |

boundary

| text

|

| extended |

building

| text

|

| extended |

capital

| text

|

| extended |

construction

| text

|

| extended |

covered

| text

|

| extended |

culvert

| text

|

| extended |

cutting

| text

|

| extended |

denomination

| text

|

| extended |

disused

| text

|

| extended |

ele

| text

|

| extended |

embankment

| text

|

| extended |

foot

| text

|

| extended |

generator:source

| text

|

| extended |

harbour

| text

|

| extended |

highway

| text

|

| extended |

historic

| text

|

| extended |

horse

| text

|

| extended |

intermittent

| text

|

| extended |

junction

| text

|

| extended |

landuse

| text

|

| extended |

layer

| text

|

| extended |

leisure

| text

|

| extended |

lock

| text

|

| extended |

man_made

| text

|

| extended |

military

| text

|

| extended |

motorcar

| text

|

| extended |

name

| text

|

| extended |

natural

| text

|

| extended |

oneway

| text

|

operator

| text

|

| extended | | extended |

poi

| text

|

| extended |

population

| text

|

| extended |

power

| text

|

| extended |

power_source

| text

|

| extended |

place

| text

|

| extended |

railway

| text

|

| extended |

ref

| text

|

| extended |

religion

| text

|

| extended |

route

| text

|

| extended |

service

| text

|

| extended |

shop

| text

|

| extended |

sport

| text

|

| extended |

surface

| text

|

| extended |

toll

| text

|

| extended |

tourism

| text

|

| extended |

tower:type

| text

|

| extended |

tunnel

| text

|

| extended |

water

| text

|

| extended |

waterway

| text

|

| extended |

wetland

| text

|

| extended |

width

| text

|

| extended |

wood

| text

|

| extended |

z_order

| integer

|

| plain

|

way

| geometry |

| main

|

indices: "planet_osm_point_index" gist (way) "planet_osm_point_pkey" B-tree (OSM_id) Has OIDs: no Table "public.planet_osm_line" Column

|

Type

| Modifiers | Storage

| Description

--------------------+----------+-----------+----------+------------OSM_id

| integer

|

| plain

access

| text

|

| extended |

|

addr:housename

| text

|

| extended |

addr:housenumber

| text

|

| extended |

addr:interpolation | text

|

| extended |

admin_level

| text

|

| extended |

aerialway

| text

|

| extended |

aeroway

| text

|

| extended |

amenity

| text

|

| extended |

area

| text

|

| extended |

barrier

| text

|

| extended |

bicycle

| text

|

| extended |

brand

| text

|

| extended |

bridge

| text

|

| extended |

boundary

| text

|

| extended |

building

| text

|

| extended |

construction

| text

|

| extended |

covered

| text

|

| extended |

culvert

| text

|

| extended |

cutting

| text

|

| extended |

denomination

| text

|

| extended |

disused

| text

|

| extended |

embankment

| text

|

| extended |

foot

| text

|

| extended |

generator:source

| text

|

| extended |

harbour

| text

|

| extended |

highway

| text

|

| extended |

historic

| text

|

| extended |

horse

| text

|

| extended |

intermittent

| text

|

| extended |

junction

| text

|

| extended |

landuse

| text

|

| extended |

layer

| text

|

| extended |

leisure

| text

|

| extended |

lock

| text

|

| extended |

man_made

| text

|

| extended |

military

| text

|

| extended |

motorcar

| text

|

| extended |

name

| text

|

| extended |

natural

| text

|

| extended |

oneway

| text

|

| extended |

operator

| text

|

| extended |

population

| text

|

| extended |

power

| text

|

| extended |

power_source

| text

|

| extended |

place

| text

|

| extended |

railway

| text

|

| extended |

ref

| text

|

| extended |

religion

| text

|

| extended |

route

| text

|

| extended |

service

| text

|

| extended |

shop

| text

|

| extended |

sport

| text

|

| extended |

surface

| text

|

| extended |

toll

| text

|

| extended |

tourism

| text

|

| extended |

tower:type

| text

|

| extended |

tracktype

| text

|

| extended |

tunnel

| text

|

| extended |

water

| text

|

| extended |

waterway

| text

|

| extended |

wetland

| text

|

| extended |

width

| text

|

| extended |

wood

| text

|

| extended |

z_order

| integer

|

| plain

|

way_area

| real

|

| plain

|

way

| geometry |

| main

|

indices: "planet_osm_line_index" gist (way) "planet_osm_line_pkey" B-tree (OSM_id) Has OIDs: no Table "public.planet_osm_polygon" Column

|

Type

| Modifiers | Storage

| Description

--------------------+----------+-----------+----------+------------OSM_id

| integer

|

| plain

access

| text

|

| extended |

|

addr:housename

| text

|

| extended |

addr:housenumber

| text

|

| extended |

addr:interpolation | text

|

| extended |

admin_level

| text

|

| extended |

aerialway

| text

|

| extended |

aeroway

| text

|

| extended |

amenity

| text

|

| extended |

area

| text

|

| extended |

barrier

| text

|

| extended |

bicycle

| text

|

| extended |

brand

| text

|

| extended |

bridge

| text

|

| extended |

boundary

| text

|

| extended |

building

| text

|

| extended |

construction

| text

|

| extended |

covered

| text

|

| extended |

culvert

| text

|

| extended |

cutting

| text

|

| extended |

denomination

| text

|

| extended |

disused

| text

|

| extended |

embankment

| text

|

| extended |

foot

| text

|

| extended |

generator:source

| text

|

| extended |

harbour

| text

|

| extended |

highway

| text

|

| extended |

historic

| text

|

| extended |

horse

| text

|

| extended |

intermittent

| text

|

| extended |

junction

| text

|

| extended |

landuse

| text

|

| extended |

layer

| text

|

| extended |

leisure

| text

|

| extended |

lock

| text

|

| extended |

man_made

| text

|

| extended |

military

| text

|

| extended |

motorcar

| text

|

| extended |

name

| text

|

| extended |

natural

| text

|

| extended |

oneway

| text

|

| extended |

operator

| text

|

| extended |

population

| text

|

| extended |

power

| text

|

| extended |

power_source

| text

|

| extended |

place

| text

|

| extended |

railway

| text

|

| extended |

ref

| text

|

| extended |

religion

| text

|

| extended |

route

| text

|

| extended |

service

| text

|

| extended |

shop

| text

|

| extended |

sport

| text

|

| extended |

surface

| text

|

| extended |

toll

| text

|

| extended |

tourism

| text

|

| extended |

tower:type

| text

|

| extended |

tracktype

| text

|

| extended |

tunnel

| text

|

| extended |

water

| text

|

| extended |

waterway

| text

|

| extended |

wetland

| text

|

| extended |

width

| text

|

| extended |

wood

| text

|

| extended |

z_order

| integer

|

| plain

|

way_area

| real

|

| plain

|

way

| geometry |

| main

|

indices: "planet_osm_polygon_index" gist (way) "planet_osm_polygon_no_building_index" "planet_osm_polygon_no_building_ index" gist (way) WHERE building IS NULL "planet_osm_polygon_pkey" B-tree (OSM_id) Has OIDs: no Table "public.network" Column

|

Type

|

Modifiers

| Storage

| Description

----------+-------------------+---------------------------------------------------+-------------------+------------------------------------------------------+----------+-------------------------+----------+------------gid

| integer

| not null default nextval('network_gid_seq'::regclass) | plain

|

OSM_id

| integer

|

|

name

| character varying |

| plain

| extended |

the_geom | geometry

|

| main

|

source

| integer

|

| plain

|

target

| integer

|

| plain

|

length

| double precision

|

| plain

|

Has OIDs: no Table "public.vertices_tmp" Column

|

Type

|

Modifiers

| Storage | Description

----------+----------+------------------------------------------------------------+----------+----------------------------------------------------------+---------+--------------------+---------+------------id

| integer

| not null default nextval('vertices_tmp_id_seq'::re nextval('vertices_tmp_id_seq'::regclass) gclass) | plain

the_geom | geometry |

| main

| |

indices: "vertices_tmp_idx" gist (the_geom) Check constraints: "enforce_dims_the_geom" CHECK (st_ndims(the_geom) = 2) "enforce_geotype_the_geom" CHECK (geometrytype(the_geom) = 'POINT'::text OR the_geom IS NULL) "enforce_srid_the_geom" CHECK (st_srid(the_geom) = 4326) Has OIDs: no

 Appendi/ >

*aven pom 5ile

Maven pom file as explained in pararaph !"#"#$ !"#"#$ pae %&" %&"

!.0.0 !.0.0 gia.neo!C.tests)ite gia.neo!C.tests)ite neo!Cs$atia, neo!Cs$atia, :ar :ar 0.#-SI3S9OT 0.#-SI3S9OT eo!C eo!C BT TestS)ite TestS)ite Testing Testing environent ;or eo!C-S$atia, #.!.0 #.!.0 1.! 1. 1. 1.-SI3S9OT 1.-SI3S9OT 0.-SI3S9OT 0.-SI3S9OT #.-AN1 8.0-M# 8.0-M# 1.! 1.! 1.1 1.1 JQ$roCect.)i,d.director24JQ$roCect.)i,d.;ina,ae JQ$roCect.)i,d.director24JQ$roCect.)i,d.;ina,ae UTF-8 UTF-8 g;vee6 g;vee6 co.goog,e.g:t co.goog,e.g:t g:t-serv,et g:t-serv,et JQg:tKersion JQg:tKersion r)ntie r)ntie co.goog,e.g:t co.goog,e.g:t g:t-)ser g:t-)ser JQg:tKersion JQg:tKersion $rovided $rovided C)nit C)nit C)nit C)nit !.8.# !.8.# Car Car Cava.va,idation Cava.va,idation va,idation-a$i va,idation-a$i 1.0.0.I 1.0.0.I test test Cava.va,idation Cava.va,idation va,idation-a$i va,idation-a$i 1.0.0.I 1.0.0.I so)rces so)rces test test org.neo!C org.neo!C neo!C neo!C JQneo!C.version JQneo!C.version org.neo!C org.neo!C neo!C-)dc neo!C-)dc org.neo!C org.neo!C

 

neo!C-gra$-co,,ections neo!C-gra$-co,,ections JQneo!C.gra$co,,ections.version JQneo!C.gra$co,,ections.version org.neo!C org.neo!C neo!C-gra$viP neo!C-gra$viP JQneo!C.version JQneo!C.version org.neo!C org.neo!C eo!C-S$atia, eo!C-S$atia, JQneo!C.s$atia,.version JQneo!C.s$atia,.version s2ste JQasedir4src4ain4reso)rces4eo!C-S$atia,4eo!C-S$atia,-0.-SI3S9OT.Car org.geotoo,s org.geotoo,s gt-ain gt-ain JQgeotoo,s.version JQgeotoo,s.version org.geotoo,s org.geotoo,s gt-sa$e;i,e gt-sa$e;i,e JQgeotoo,s.version JQgeotoo,s.version org.geotoo,s org.geotoo,s gt-$rocess gt-$rocess JQgeotoo,s.version JQgeotoo,s.version org.geotoo,s org.geotoo,s gt-render gt-render JQgeotoo,s.version JQgeotoo,s.version it.geoso,)tions.iageio-et it.geoso,)tions.iageio-et iageio-et-ti;; iageio-et-ti;; co.tin/er$o$.gre,in co.tin/er$o$.gre,in gre,in-groov2 gre,in-groov2 JQgre,in.version JQgre,in.version Car Car co.tin/er$o$.,)e$rints co.tin/er$o$.,)e$rints ,)e$rints-sai,-gra$ ,)e$rints-sai,-gra$ org.codea)s.groov2.aven org.codea)s.groov2.aven gaven-$,)gin gaven-$,)gin C,ine C,ine C,ine C,ine co.tin/er$o$.gre,in co.tin/er$o$.gre,in gre,in-Cava gre,in-Cava JQgre,in.version JQgre,in.version Car Car co.tin/er$o$.,)e$rints co.tin/er$o$.,)e$rints ,)e$rints-sai,-gra$ ,)e$rints-sai,-gra$ org.codea)s.groov2.aven org.codea)s.groov2.aven gaven-$,)gin gaven-$,)gin C,ine C,ine C,ine C,ine

co.tin/er$o$.,)e$rints co.tin/er$o$.,)e$rints ,)e$rints-neo!C-gra$ ,)e$rints-neo!C-gra$ JQ,)e$rints.version JQ,)e$rints.version org.neo!C org.neo!C neo!C neo!C ,og!C ,og!C ,og!C ,og!C 1.#.16 1.#.16 coons-co,,ections coons-co,,ections coons-co,,ections coons-co,,ections .# .# Car Car osgeo osgeo O$en O$en So)rce eos$atia, Fo)ndation Ae$ositor2 tt$%44do:n,oad.osgeo.org4:edav4geotoo,s4 tt$%44do:n,oad.osgeo.org4:edav4geotoo,s4 tr)e tr)e o$engeo o$engeo O$eneo O$eneo Maven Ae$ositor2 Ae$ositor2 tt$%44re$o.o$engeo.org tt$%44re$o.o$engeo.org neo!C-$),ic-re$ositor2 neo!C-$),ic-re$ositor2 3),ica,,2 3),ica,,2 avai,a,e Maven # re$ositor2 ;or eo!C tt$%44#.neo!C.org tt$%44#.neo!C.org tr)e tr)e tin/er$o$-sna$sot-re$ositor2 tin/er$o$-sna$sot-re$ositor2 Tin/er$o$ Tin/er$o$ sna$sot re$o tt$%44tin/er$o$.co4aven# tt$%44tin/er$o$.co4aven# tr)e tr)e tr)e tr)e JQ:ea$$5irector24BE-DF4c,asses JQ:ea$$5irector24BE-DF4c,asses org.codea)s.oCo org.codea)s.oCo g:t-aven-$,)gin g:t-aven-$,)gin #.!.0 #.!.0 co$i,e co$i,e test test generateIs2nc generateIs2nc tests.t, tests.t, JQ:ea$$5irector2 JQ:ea$$5irector2

org.a$ace.aven.$,)gins org.a$ace.aven.$,)gins aven-:ar-$,)gin aven-:ar-$,)gin #.1.1 #.1.1 co$i,e co$i,e e$,oded e$,oded JQ:ea$$5irector2 JQ:ea$$5irector2 org.a$ace.aven.$,)gins org.a$ace.aven.$,)gins aven-co$i,er-$,)gin aven-co$i,er-$,)gin #..# #..# 1. 1. 1. 1.

 Appendi/ >

8S* import differences differences

'nitial import Medembli  +oins

Neo; +osGIS -erlap

Lines

Neo; +osGIS -erlap

+olygons

Neo; +osGIS -erlap

 Appendi/ >

8S* e'ual geometries

'mport ater *orre*tion Medembli  +oins

Neo; +osGIS -erlap

Lines

Neo; +osGIS -erlap

+olygons

Neo; +osGIS -erlap

Results in a table+ 2edemli3

+ri!ite

Inital

?i .

?i 0

?inal > . @ 0/

+ossGIS Neo; +o

Post+,S "eo)*

Post+,S "eo)*

Post+,S

"eo)*

+oins

1 DH

1DH

1DH

1 DH

1D H

1 DH

1D H

1 DH

Lines

1 00 0

2 1 0E

D

2 1 0C

10 00

 DE

D 

 D

+olygons

1 HC 0

CE

1 H 1E

C HF

1H C0

1H 22

1H 1 E

1H 1E

Amsterdam

+ri!ite

Inital

?i .

?i 0

?inal > . @ 0/

+ossGIS Neo; +o

Post+,S "eo)*

Post+,S "eo)*

Post+,S

"eo)*

+oins

1 2  C

1 2 EC

1 2  C

1 2E 2 1

12  C

1 2 E C

12  C

12  C

Lines

C H C H

 2 FE

C  D 

 2C 1 D

CH C H

C  F0 C

C D 

C  D

+olygons

C F EC E

C 22 21

C FH 2 E

C 21 D D

CF EC E

C F HF H

CF H2 E

CF H 2E

"orth-4olland

Inital +ri!ite

?i .

?i 0

?inal > . @ 0/

+osGIS

Neo;

Post+,S

"eo)*

Post+,S

"eo)*

Post+,S

"eo)*

+oins

C F D0 C

CF 2 2H

CF D 0C

CF D F

CF D0 C

CF 22 H

C F D0 C

C FD 0 C

Lines

200 20 00 0D D 2H 2H1H 1HCD CD

1F 2 EC 1 2H 1 F E

20 00  D 21 F 

1 F 2E C1 1 F 2E C1

+olygons

D0 D0 0C 0CF F C CCF CF20 20

D0 2 H H C C 2 D

D0 0 C F DC D0 C

D 0 2H H D 0 2H H

 Appendi/ > G G G G G G

(efault!st+le 5ile

Tis is te st2,e ;i,e tat atces te o,d version o; os#$gsL,7 :ic did not a/e distinctions et:een tags ;or nodes and ;or :a2s. Tere are a n)er o; o$tiisations tat can e a$$,ied ere. First,27 certain tags on,2 a$$,2 to on,2 nodes or on,2 :a2s. E2 ;iing tis :e red)ce te ao)nt o; )se,ess data ,oaded into te 5E7 :ic is a good ting. 3ossi,e o$tiisations ;or te ;)t)re%

G 1. enerate tis ;i,e direct,2 ;ro te a$ni/ ZM con;ig7 so it's a,:a2s G o$tia, G #. tend it so it can )nderstand tat ig:a2=tertiar2 is ;or :a2s and G ig:a2=)ssto$ is ;or nodes G G G G G G G

F,ags ;ie,d isn't )sed )c 2et7 e$ect i; it contains te tet "$o,2gon" it indicates te sa$e is candidate ;or te $o,2gon ta,e. Dn te ;)t)re D :o),d ,i/e to e a,e to add directives ,i/e "nocace" :ic te,,s os#$gsL, tat it is )n,i/e,2 tis node :i,, e )sed 2 a :a2 and so it doesn't need to e stored eg coast,ine nodes. Bi,e in essence an o$tiisation ac/7 ;or --s,i ode it doesn't atter i; 2o)'re :rong7 )t in non-s,i 2o) igt rea/ soetingH

G I,so $ossi,2 an ignore ;,ag7 ;or tings ,i/e "note" and "so)rce" :ic G can si$,2 e de,eted. Dn s,i ode tis is7 does not a$$,2 to non-s,i G ovio)s,2 G OsT2$e node7:a2 node7:a2 node7:a2

Tag note so)rce created2

5ataT2$e tet tet tet

node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2

access tet addr%o)senae addr%o)sen)er addr%inter$o,ation adin,eve, tet aeria,:a2 tet aero:a2 tet aenit2 tet area tet arrier tet ic2c,e tet rand tet ridge tet o)ndar2 tet )i,ding tet ca$ita, tet constr)ction tet covered tet c),vert tet c)tting tet denoination tet dis)sed tet e,e tet ean/ent tet ;oot tet generator%so)rce aro)r tet ig:a2 tet istoric tet orse tet interittent tet C)nction tet ,and)se tet ,a2er tet ,eis)re tet ,oc/ tet anade tet i,itar2 tet otorcar tet nae tet nat)ra, tet one:a2 tet o$erator tet $oi tet $o$),ation tet $o:er tet $o:erso)rce tet $,ace tet rai,:a2 tet re; tet re,igion tet ro)te tet service tet

tet tet tet

tet

F,ags de,ete de,ete de,ete

G Tese tags can e ,ong )t are )se,ess ;or rendering G Tis indicates tat :e so),dn't store te

,inear ,inear ,inear ,inear ,inear ,inear $o,2gon nocace7$o,2gon G ard coded s)$$ort ;or area=142es => $o,2gon is in os#$gsL, ,inear nocace ,inear ,inear ,inear $o,2gon ,inear ,inear ,inear ,inear ,inear ,inear ,inear ,inear ,inear ,inear ,inear $o,2gon ,inear $o,2gon ,inear ,inear ,inear $o,2gon ,inear $o,2gon ,inear $o,2gon $o,2gon ,inear ,inear $o,2gon G nat)ra,=coast,ine tags are discarded 2 a ard coded r),e ,inear ,inear ,inear $o,2gon ,inear $o,2gon ,inear ,inear nocace ,inear ,inear

node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 :a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 node7:a2 :a2

so$ s$ort s)r;ace to,, to)ris to:er%t2$e trac/t2$e t)nne, :ater :ater:a2 :et,and :idt :ood Porder :a2area

tet tet tet tet tet tet tet tet tet tet tet tet tet int! rea,

$o,2gon $o,2gon ,inear ,inear $o,2gon ,inear ,inear ,inear $o,2gon $o,2gon $o,2gon ,inear ,inear ,inear G Tis is ca,c),ated d)ring i$ort G Tis is ca,c),ated d)ring i$ort

G D; 2o)'re interested in ic2c,e ro)tes7 2o) a2 :ant te ;o,,o:ing ;ie,ds G To a/e tese :or/ 2o) need s,i ode or te necessar2 data :on't e reeered. G:a2 ,cnre; tet ,inear G:a2 rcnre; tet ,inear G:a2 ncnre; tet ,inear G:a2 ,cn tet ,inear G:a2 rcn tet ,inear G:a2 ncn tet ,inear G:a2 ,:nre; tet ,inear G:a2 r:nre; tet ,inear G:a2 n:nre; tet ,inear G:a2 ,:n tet ,inear G:a2 r:n tet ,inear G:a2 n:n tet ,inear G:a2 ro)te$re;co,or tet ,inear G:a2 ro)tenae tet ,inear G Te ;o,,o:ing entries can e )sed :it te --etra-attri)tes o$tion G to inc,)de te )sernae7 )serid7 version  tista$ in te 5E Gnode7:a2 OSM)ser tet Gnode7:a2 OSM)id tet Gnode7:a2 OSMversion tet Gnode7:a2 OSMtiesta$ tet

 Appendi/ ?

Neo,& St+le$eader class

$ac/age gia.neo!C.tests)ite.oscec/@ $ac/age  gia.neo!C.tests)ite.oscec/@ $),ic c,ass Styleeader Q $),ic static ;ina, ;ina, String  String 5FIUT 5FIUT =  = "4)sr4,oca,4sare4os#$gsL,4de;a),t.st2,e" "4)sr4,oca,4sare4os#$gsL,4de;a),t.st2,e"@ @ $),ic static ;ina, ;ina, String  String D D =  = ",inear" ",inear"@ @ $),ic static ;ina, ;ina, String  String 3ORO 3ORO =  = "$o,2gon" "$o,2gon"@ @

 

 

 

 



$),ic static static Irra2ist  Irra2ist readBa2s Q String ,ine = "" ""@ @ Irra2ist data = ne: ne: Irra2ist@  Irra2ist@ tr2 Q tr2  Q Fi,eAeader ;r = ne: ne: Fi,eAeader  Fi,eAeader5FIUT 5FIUT@ @ E);;eredAeader r = ne: ne: E);;eredAeader;r@  E);;eredAeader;r@ :i,e ,ine :i,e  ,ine = r.readine H= n),, n),,  Q i; H,ine.startsBit i;  H,ine.startsBit"G" "G"  Q StringVW te,ine = s$,it,ine7 " "7 "7 tr)e tr)e@ @ i; te,ine. i;  te,ine.,engt ,engt >  >  Q i; te,ineV0W.contains i;  te,ineV0W.contains":a2" ":a2"   Hte,ineVW.contains"de,ete" Hte,ineVW.contains "de,ete"  Q data.addte,ineV1W@      catc catc DOce$tion  DOce$tion e Q S2ste. o)t o)t.$rint,ne@ .$rint,ne@  ret)rn data@ ret)rn  data@  $),ic static static Irra2ist  Irra2ist readodes Q String ,ine = "" ""@ @ Irra2ist data = ne: ne: Irra2ist@  Irra2ist@ tr2 Q tr2  Q Fi,eAeader ;r = ne: ne: Fi,eAeader  Fi,eAeader5FIUT 5FIUT@ @ E);;eredAeader r = ne: ne: E);;eredAeader;r@  E);;eredAeader;r@ :i,e ,ine :i,e  ,ine = r.readine H= n),, n),,  Q i; H,ine.startsBit i;  H,ine.startsBit"G" "G"  Q StringVW te,ine = s$,it,ine7 " "7 "7 tr)e tr)e@ @ i; te,ine. i;  te,ine.,engt ,engt >  >  Q i; te,ineV0W.contains i;  te,ineV0W.contains"node" "node"   Hte,ineVW.contains"de,ete" Hte,ineVW.contains "de,ete"  Q data.addte,ineV1W@      catc catc DOce$tion  DOce$tion e Q S2ste. o)t o)t.$rint,ne@ .$rint,ne@  ret)rn data@ ret)rn  data@  $),ic static static Irra2ist  Irra2ist read3o,2Nandidates Q String ,ine = "" ""@ @ Irra2ist data = ne: ne: Irra2ist@  Irra2ist@ tr2 Q tr2  Q Fi,eAeader ;r = ne: ne: Fi,eAeader  Fi,eAeader5FIUT 5FIUT@ @ E);;eredAeader r = ne: ne: E);;eredAeader;r@  E);;eredAeader;r@ :i,e ,ine :i,e  ,ine = r.readine H= n),, n),,  Q i; H,ine.startsBit i;  H,ine.startsBit"G" "G"  Q StringVW te,ine = s$,it,ine7 " "7 "7 tr)e tr)e@ @ i; te,ine. i;  te,ine.,engt ,engt >  >  Q i; te,ineV0W.contains i;  te,ineV0W.contains":a2" ":a2"   te,ineVW.contains3ORO te,ineVW.contains 3ORO  Q data.addte,ineV1W@      catc catc DOce$tion  DOce$tion e Q S2ste. o)t o)t.$rint,ne@ .$rint,ne@  ret)rn data@ ret)rn  data@  $rivate static static StringVW  StringVW s$,itString str7 String de,iiter7 oo,ean oo,ean reove$t2  reove$t2 Q ;ina, int int ,en  ,en = str == n),, n),,  ? 0 % str.,engt@ i; ,en i;  ,en == 0 Q ret)rn ne: ne: StringV0W@  StringV0W@  ;ina, ist ;ina,  ist res),t = ne: ne: Irra2ist@  Irra2ist@ String e,e = n),, n),,@ @ int i int  i = 07 C = 0@ :i,e C :i,e  C H= -1  C < ,en Q C = str.indeO;de,iiter7 i@ e,e = C H= -1 ? str.s)stringi7 C % str.s)stringi@ i = C  1@ i; Hreove$t2 i;  Hreove$t2  He,e == n),, n),,    e,e.,engt == 0 Q res),t.adde,e@   ret)rn res),t.toIrra2 ret)rn  res),t.toIrra2ne: ne: StringVres),t.siPeW@  StringVres),t.siPeW@ 

 Appendi/ ?

Neo,& 8S*mporter 8S*mporter 2improved3 2improved3

Relevant modified parts Irra2ist $ointTags $ointTags =  = St2,eAeader.readodes@ Irra2ist ,ineTags ,ineTags =  = St2,eAeader.readBa2s@ Irra2ist $o,2Tags $o,2Tags =  = St2,eAeader.read3o,2Nandidates@ $rivate void add!S"NodeTagsoo,ean oo,ean a,,3oints7  a,,3oints7 in/ed9asMa$ c)rrentodeTags Q   c)rrentodeTags.reove "created2"@ c)rrentodeTags.reove"created2" @

 

  

i; inist i;  inist$ointTags $ointTags7 7 c)rrentodeTags Q i; a,,3oints i;  a,,3oints  c)rrentodeTags.siPe > 0 Q Ma$ node3ro$s = getode3ro$erties c)rrentode c)rrentode@ @ nve,o$e o = ne: ne: nve,o$e@  nve,o$e@ do),eVW do),e VW ,ocation = ne: do),e do),eVWQ5o),e VWQ5o),e node3ro$s.get ",on" ",on"7 7 5o),e node3ro$s.get ",at" ",at"@ @ o.e$andToDnc,)de,ocationV0W7 ,ocationV1W@ addodeeoetr2c)rrentode addodeeoetr2 c)rrentode7 7 TR33ODT TR33ODT7 7 o7 1@ $oiNo)nt@ $oiNo)nt @   addodeTagsc)rrentode addodeTags c)rrentode7 7 c)rrentodeTags7 "node" "node"@ @

$rivate oo,ean in#istIrra2ist ,ist7 in/ed9asMa$ c)rrentodeTags Q Dterator it = ,ist.iterator@ :i,e it.aset :i,e  it.aset Q String tag = String it.net@ i; c)rrentodeTags.contains+e2tag i;  c)rrentodeTags.contains+e2tag Q ret)rn tr)e tr)e@ @   ret)rn ;a,se ;a,se@ @ 

$rotected void create!S"$ayMa$ :a23ro$erties7 Irra2ist :a2odes7 in/ed9asMa$ :a2Tags Q Aoad5irection direction = isOne:a2:a2Tags@ String nae = String :a2Tags.get"nae" :a2Tags.get "nae"@ @ int geoetr2 int  geoetr2 = TR3DSTAD TR3DSTAD@ @ oo,ean isAoad oo,ean  isAoad = :a2Tags.contains+e2 "ig:a2" "ig:a2"@ @ oo,ean noineeine oo,ean  noineeine = inist ,ineTags ,ineTags7 7 :a2Tags@ oo,ean noinee3o,2 oo,ean  noinee3o,2 = inist $o,2Tags $o,2Tags7 7 :a2Tags@ oo,ean asIreaTag oo,ean  asIreaTag = ;a,se ;a,se@ @ i; :a2Tags.contains+e2 i;  :a2Tags.contains+e2"area" "area"  Q asIreaTag = :a2Tags.get"area" :a2Tags.get "area".eL)a,s .eL)a,s"2es" "2es"@ @  i; Hnoineeine i;  Hnoineeine Q ret)rn ret)rn@ @       

   

 

 

   



i; isAoad i;  isAoad Q :a23ro$erties.$)t "one:a2"7 :a23ro$erties.$)t"one:a2" 7 direction.toString@ :a23ro$erties.$)t "ig:a2"7 :a23ro$erties.$)t"ig:a2" 7 :a2Tags.get"ig:a2" :a2Tags.get "ig:a2"@ @  i; nae i;  nae H= n),, n),,  Q :a23ro$erties.$)t "nae"7 :a23ro$erties.$)t"nae" 7 nae@  T cangesetode = getNangesetode:a23ro$erties@ T :a2 = addodeD5ZIMBIR addode D5ZIMBIR7 7 :a23ro$erties7 ":a2osid" ":a2osid"@ @ createAe,ationsi$:a27 cangesetode7 OSMAe,ation. N9IST N9IST@ @ i;  i;  $rev:a2 $rev:a2 ==  == n),, n),,  Q createAe,ationsi$ OSMdataset7 createAe,ationsi$OSMdataset 7 :a27 OSMAe,ation.BIRS OSMAe,ation. BIRS@ @  e,se e,se Q  Q createAe,ationsi$ $rev:a27 createAe,ationsi$$rev:a2 7 :a27 OSMAe,ation.ZT OSMAe,ation. ZT@ @  $rev:a2 = $rev:a2  = :a2@ addodeTags:a27 :a2Tags7 ":a2" ":a2"@ @ nve,o$e o = ne: ne: nve,o$e@  nve,o$e@ T ;irstode = n),, n),,@ @ T $revode = n),, n),,@ @ T $rev3ro2 = n),, n),,@ @ Ma$ $rev3ro$s = n),, n),,@ @ in/ed9asMa$ re,3ro$s = ne: ne: in/ed9asMa$5ar5aas>gi!a6neo;ess +osGIS h:p>>gih'5.co!>5ar5aas>gi!a6posgisess

Neo4j dashboard (/ava) $ac/age gia.neo!C.tests)ite.c,ient@ $ac/age  gia.neo!C.tests)ite.c,ient@ i$ort i$ort i$ort i$ort i$ort i$ort i$ort i$ort i$ort i$ort

co.goog,e.g:t.core.c,ient.ntr23oint@ co.goog,e.g:t.core.c,ient.ntr23oint@ co.goog,e.g:t.)ser.c,ient.)i.Iso,)te3ane,@ co.goog,e.g:t.)ser.c,ient.)i.I so,)te3ane,@ co.goog,e.g:t.)ser.c,ient.)i.ae,@ co.goog,e.g:t.)ser.c,ient.)i.a e,@ co.goog,e.g:t.)ser.c,ient.)i.Aoot3ane,@ co.goog,e.g:t.)ser.c,ient.)i.Ao ot3ane,@ co.goog,e.g:t.)ser.c,ient.)i.Ta3ane,@ co.goog,e.g:t.)ser.c,ient.)i.Ta 3ane,@ co.goog,e.g:t.)ser.c,ient.)i.F,eTa,e@ co.goog,e.g:t.)ser.c,ient.)i.F, eTa,e@ co.goog,e.g:t.)ser.c,ient.)i.9as9oriPonta,I,ignent@ co.goog,e.g:t.)ser.c,ient.)i.9a s9oriPonta,I,ignent@ co.goog,e.g:t.)ser.c,ient.)i.Dage@ co.goog,e.g:t.)ser.c,ient.)i.D age@ co.goog,e.g:t.)ser.c,ient.)i.Kertica,3ane,@ co.goog,e.g:t.)ser.c,ient.)i.Ke rtica,3ane,@ gia.neo!C.tests)ite.sared.Messages@ gia.neo!C.tests)ite.sared.Mess ages@

4   ntr2 $oint c,asses de;ine le log.G

regression. regression0 ram

ram

regression sJrt

$MB%

$pri!ites%

2$log1061%

s
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF