GeoComputation Logo

GeoComputation 2000 HomeConference ProgrammeAlphabetical List of Authors

CgiMapScript: Spatial Data and the Common Gateway Interface - Using Lightweight ISP-friendly Techniques to Handle Vector Data on the Internet

David Haskins
School of Computing and Information Systems
Kingston University
Penrhyn Road
Kingston upon Thames
United Kingdom
dhaskins@kingston.ac.uk

Abstract

The paper covers five years work to achieve vector data driven web mapping employing: The outputs are fast interactive internet maps embedded with URLs for both map and web content navigation, served as either GIF images with HTML overlays or Java Applets. Spatial algorithms such as routing "nearest," geocoding, etc., can be handled. Spatial object data is extracted from a GIS and pre-processed for compression and indexing - some data sets allow up to 94% shrinkage while maintaining full navigable topology.

The research is an accidental spin-off from Kingston's work on multi-modal public transport routing and was developed as a way to do mapping over the web within the constraints of a "normal" web development environment, and as such offers a way for much wider accessibility to vector cartographic data sets in that they can be handled easily as a standard data type by these techniques.

This paper contains the detailed object model for the information design. A more general paper is published in DEXA2000

1 Introduction

CgiMapScript has been developed as part of Kingston University School of Computing and Information Systems Public Transport Information Systems research program since 1989. The social geographic problem we have addressed is how to make public transport information easy to access and understand. This is a full multi-modal free-market private and public transport world of facts about all ways to get from place to place. All connection facts are attributed to have measures of frequency, duration, cost, distance, operator code or road name. Simpler shortest path graph algorithms and fuzzy logic are used to establish the rough search space for a full route search which is then pursued by a rule-tuned brute force algorithm which employs intelligent agent techniques.

Typical outputs which have been implemented include maps with HTML client side imagemaps with url overlays, server side imagemaps for navigation and data update, HTML form elements such as SELECT lists of various metadata or area categories, data streams to Java applets for browser hosted geo queries, and simlar but less sophisticated outputs for WAP mobile devices.

Speed of internet delivery and scalability have led us to extensive experimentation with larger and larger cartographic vector datasets from a wide range of commercial and government data suppliers to optimise the "chunking" for feasible processing. A run of prototypes since 1997 have moved from Windows DLLs hosted by commercial GIS applications, through Windows DLLs interacting with commercial GIS Internet Server applications, through Java applets and servelets, to C++ Common Gateway Interface programs which act as fast server-side scripts working on extensively preprocessed vector datasets.

All data is handled as pure objects arranged as serial streams organised by a novel spatial indexing system. The software components are presented as a set of C++ classes, cartographic data sets with indexing and scriptable metadata files, and a data preprocessing toolkit.

A design decision was made to use the "lowest common denominator" technologies to ensure portability and accessability. The current version delivers either pure HTML 3.2 components, WML 1.1 WAP components, or data streams for Java applets. The server CGI programs which execute, deliver, then quit just like any well behaved server process, have been run on Windows 98 and NT, Unix, Linux and IBM AS400.

All calls to the programs are in a standard QUERY_STRING format:

e.g.

http://myserver//nauto.exe?MODE=imagemap&X=540000&Y=180000&Z=5000&CATEGORY=2-28

The working title for the research program has informallly been "CarFree" so as an internationalisation of this we have named the base class "Nauto".

2 Example Outputs

2.1 A London Public transport router 1998

Constructed with a C++ CGI program supplying data to Java Applets
 
follow link to this example

2.2 CgiMapscript general purpose GIS CGI program 1999

This output is derived from pure HTTP server work by a 140k C++ CGI program working on compressed and pre-preprocessed whole-UK data derived from the AA 1:200,000 commercial cartographic dataset
 
follow link to this example

2.3 WAP Mobile Internet outputs

This output is derived from exactly the same program code as example 2.2 above but with additions of WML and WBMP image translation. This application was amongst the finalists in Nokia's "Best of WAP 2000"
 

try the url "apps.kingswood.ltd.uk/geostatus" from a WAP phone or emulator

3 Class definitions

3.1 Class Nauto

Is a class library for presenting and manipulating social geography. Nauto is a world of place objects that are somehow linked.

It has been designed to support the information processing required to effect a transition from a self-propelled life experience (automobile ownership) into a more sustainable experience in which shared or public components in journey graphs might be more easily found and used.

The base class fully encapsulates a world of spatial objects, provides an API for both low-level programming and offers implemented modules which use this API to create web components such as images for client and server-side imagemaps, geocoding tools, routing algorthms, global view controls, and HTML form elements for category and area-based spatial searches, and listed, sorted output streams.
 
class: nauto
Container class for nauto database objects
    data:
  • list of nauto points
  • view dimensions
  • dataset category metadata
    methods:
  • nearest set
  • routing
  • graphical output
  • html and wml output

3.1 Class Point

Points are all places which have been spatially recorded for any reason in some coordinate system. Examples might be:
class: nauto point
geocoded point 
    data:
  • X coordinate
  • Y coordinate
  • list of links or connections
  • routing fields
    methods
  • point data accessor methods
  • link accessor methods

3.2 Class Link or connection

Are why they happen to be Places.
class: nauto point link
a reason to be here
    data:
  • from point
  • to point
  • category type / subtype
  • attribute data
  • distance, cost, speed
  • name
    methods:

3.3 Class Link Geometry

Optional geometry.
class: nauto point link geometry
optional geometry object
    data:
  • lists of delta X and delta Y coordinates
    methods:
  • accessor methods

3.4 Routes and collections

Routes and other collections of are handled as lists of links.

4 Worked example

In the above map fragment the points or nodes of interest are ordered from left to right and from top to bottom.

Coordinates are given as 6 figure UK National Grid references. Cartographic data is courtesy of NavTech (Navigation Technologies Ltd) in-car routing data for South East England. The Y-within-X ordering of points permits an output of the following 173 ordered unique coordinate pairs:

The numbered points 97, 102, 110, 157 can be found in the tables below and describe the segments making up one road in this data fragment called "POLSTED LANE"

Point number zero is the leftmost node.

Point number 48 has a single self-referential link and is an unconnected gazetteer place name for the village of Compton in Surrey.
follow link to worked example
nauto points
index X Y link index
0 494349 146437 0
1 494361 146421 60
2 494656 147223 121
3 494661 147097 146
4 494665 147082 299
5 494667 146931 452
6 494692 147289 487
7 494718 146133 568
8 494724 147276 611
9 494732 147681 696
10 494735 147253 752
11 494735 147263 811
12 494740 147251 899
13 494748 147263 987
14 494749 147253 1075
15 494793 147439 1166
16 494795 147230 1253
17 494813 147536 1351
18 494819 147324 1439
19 494821 147181 1527
20 494821 147195 1615
21 494834 147183 1706
22 494836 147195 1808
23 494854 147664 1898
24 494873 146673 1956
25 495001 145301 2079
26 495001 146286 2120
27 495010 147432 2207
28 495046 145321 2236
29 495053 145325 2318
30 495053 147428 2389
31 495061 147415 2545
32 495064 147386 2672
33 495081 146226 2738
34 495096 145595 2857
35 495098 146184 2937
36 495106 145554 3056
37 495160 146068 3166
38 495168 146047 3299
39 495174 146035 3412
40 495174 148188 3502
41 495176 146266 3531
42 495223 146188 3560
43 495275 147110 3589
44 495298 145861 3631
45 495317 147905 3735
46 495341 147763 3764
47 495355 147427 3855
48 495380 146910 3921
49 495385 146077 3949
50 495391 147439 4037
51 495398 147447 4129
52 495399 145879 4218
53 495400 147436 4247
54 495412 147402 4346
55 495419 146082 4422
56 495421 147377 4480
57 495423 146071 4594
58 495437 145720 4655
59 495441 147752 4773
60 495452 145539 4901
61 495454 147749 5096
62 495465 145704 5224
63 495465 147152 5311
64 495518 145656 5427
65 495557 145834 5771
66 495565 145864 5862
67 495569 145869 5922
68 495574 145557 5980
69 495587 145694 6105
70 495595 145369 6428
71 495606 147980 6471
72 495611 147462 6534
73 495615 145445 6637
74 495618 147452 6762
75 495623 147969 6851
76 495631 145541 7008
77 495639 145761 7131
78 495641 147386 7166
79 495653 147400 7228
80 495673 147386 7317
81 495682 145388 7348
82 495720 147674 7391
83 495745 146935 7458
84 495746 146872 7517
85 495750 146956 7624
86 495759 146931 7681
87 495794 146859 7772
88 495804 146910 7879
89 495834 145682 7908
90 495855 146843 8233
91 495860 146954 8345
92 495877 145445 8456
93 495884 145775 8538
94 495900 145652 8567
95 495943 148227 8873
96 495957 145350 8936
97 495961 146823 9007
98 495962 145407 9124
99 495963 145781 9246
100 495989 146966 9282
101 496023 145329 9318
102 496038 146884 9350
103 496043 147027 9472
104 496103 145712 9582
105 496145 146952 9770
106 496208 145344 9809
107 496251 145688 9894
108 496263 146349 10050
109 496286 145650 10082
110 496363 147016 10238
111 496386 146402 10363
112 496390 145503 10473
113 496396 146599 10592
114 496403 145629 10709
115 496426 146596 10750
116 496431 145408 10876
117 496449 145300 10994
118 496464 145553 11077
119 496485 145431 11202
120 496524 145513 11242
121 496527 145391 11369
122 496529 145488 11408
123 496541 145316 11451
124 496560 145538 11492
125 496581 145344 11533
126 496584 145370 11652
127 496585 145290 11683
128 496590 145421 11765
129 496601 145289 11796
130 496611 145288 11913
131 496614 145314 11989
132 496614 145377 12085
133 496623 145358 12194
134 496629 145475 12288
135 496630 145338 12331
136 496642 145927 12395
137 496683 146109 12428
138 496695 145939 12660
139 496728 146051 12849
140 496765 146244 13048
141 496773 146431 13263
142 496790 146170 13380
143 496793 146149 13474
144 496798 145927 13665
145 496802 146167 13706
146 496852 145905 13895
147 496870 145880 13936
148 496900 145964 13968
149 496905 145702 14013
150 496927 146098 14176
151 496940 145632 14302
152 496945 146272 14509
153 496952 146025 14704
154 496959 146281 14747
155 496962 145645 14937
156 496975 145683 15050
157 496975 147371 15126
158 496978 145531 15167
159 496989 145624 15376
160 496989 145740 15415
161 496995 145867 15452
162 497000 145488 15586
163 497008 146206 15756
164 497022 145347 15836
165 497024 146328 15879
166 497038 145605 15961
167 497039 145920 16000
168 497039 146125 16087
169 497040 145429 16131
170 497057 145573 16219
171 497069 145388 16338
172 497079 145540 16466
173 497096 145355 16507

links between nauto points are generated accordingly:
 
nauto links
from - to - type - subtype - kind - distance - name - geometry index
0 3 5 1 2 0 741.974 GUILDFORD AND GODALMING BY PASS ROAD 0
1 4 5 1 2 0 738.792 GUILDFORD AND GODALMING BY PASS ROAD 45
2 6 5 5 2 0 77.94 na 97
3 12 5 4 2 0 175.734 na 114
3 30 5 1 2 0 515.704 GUILDFORD AND GODALMING BY PASS ROAD 143
3 0 5 1 2 0 741.974 GUILDFORD AND GODALMING BY PASS ROAD -1
4 19 5 4 2 0 186.285 na 180
4 1 5 1 2 0 738.792 GUILDFORD AND GODALMING BY PASS ROAD -1
4 31 5 1 2 0 520.316 GUILDFORD AND GODALMING BY PASS ROAD 206
5 24 5 5 2 0 441.91 PRIORSWOOD -1
6 15 5 5 2 0 187.161 na 248
6 8 5 5 2 0 35.0377 na -1
6 2 5 5 2 0 77.94 na -1
7 37 5 5 2 0 462.832 PRIORS HATCH LANE -1
8 18 5 5 2 0 112.984 na 282
8 6 5 5 2 0 35.0377 na 307
8 11 5 5 2 0 17.0294 na -1
9 17 5 5 2 0 172.112 na -1
9 23 5 5 2 0 218.806 na -1
10 12 5 4 2 0 5.38516 na -1
10 11 5 4 2 0 11.7082 na 324
11 8 5 5 2 0 17.0294 na 339
11 10 5 4 2 0 11.7082 na -1
11 13 5 4 2 0 13.6047 na 352
12 3 5 4 2 0 175.734 na -1
12 14 5 4 2 0 9.38516 na 367
12 10 5 4 2 0 5.38516 na 381
13 30 5 4 2 0 346.967 na 392
13 11 5 4 2 0 13.6047 na -1
13 14 5 4 2 0 11.3246 na -1
14 20 5 4 2 0 92.7908 B3000 -1
14 12 5 4 2 0 9.38516 na -1
14 13 5 4 2 0 11.3246 na 418
15 17 5 5 2 0 103.746 na 433
15 18 5 5 2 0 120.402 na -1
15 6 5 5 2 0 187.161 na -1
16 16 4 37 2 0 0 na 462
16 16 4 37 2 0 0 na -1
16 16 4 37 2 0 0 na 472
16 16 4 37 2 0 0 na -1
17 9 5 5 2 0 172.112 na 482
17 15 5 5 2 0 103.746 na -1
17 23 5 5 2 0 134.406 na 521
18 15 5 5 2 0 120.402 na 534
18 8 5 5 2 0 112.984 na -1
18 27 5 5 2 0 221.295 na 565
19 4 5 4 2 0 186.285 na -1
19 21 5 4 2 0 14.3868 na 594
19 20 5 4 2 0 17.3137 na 609
20 14 5 4 2 0 92.7908 B3000 628
20 19 5 4 2 0 17.3137 na -1
20 22 5 4 2 0 16.831 na 667
21 24 5 4 2 0 606.833 PRIORSFIELD ROAD -1
21 19 5 4 2 0 14.3868 na -1
21 22 5 4 2 0 13.6832 na 686
22 20 5 4 2 0 16.831 na -1
22 21 5 4 2 0 13.6832 na -1
22 32 5 4 2 0 298.496 B3000 701
23 17 5 5 2 0 134.406 na -1
23 9 5 5 2 0 218.806 na 731
24 5 5 5 2 0 441.91 PRIORSWOOD 775
24 26 5 4 2 0 422.578 PRIORSFIELD ROAD -1
24 21 5 4 2 0 606.833 PRIORSFIELD ROAD 839
25 28 5 4 2 0 49.2443 HURTMORE ROAD 943
26 24 5 4 2 0 422.578 PRIORSFIELD ROAD 955
26 33 5 4 2 0 100.233 PRIORSFIELD ROAD -1
27 18 5 5 2 0 221.295 na -1
28 29 5 4 2 0 8.06226 HURTMORE ROAD 1032
28 25 5 4 2 0 49.2443 HURTMORE ROAD -1
29 36 5 4 2 0 289.129 na 1042
29 28 5 4 2 0 8.06226 HURTMORE ROAD -1
30 13 5 4 2 0 346.967 na -1
30 3 5 1 2 0 515.704 GUILDFORD AND GODALMING BY PASS ROAD -1
30 59 5 1 2 0 510.625 GUILDFORD AND GODALMING BY PASS ROAD 1108
31 4 5 1 2 0 520.316 GUILDFORD AND GODALMING BY PASS ROAD -1
31 61 5 1 2 0 521.089 GUILDFORD AND GODALMING BY PASS ROAD 1145
32 22 5 4 2 0 298.496 B3000 -1
32 47 5 4 2 0 301.191 B3000 1182
33 41 5 5 2 0 103.976 na 1222
33 26 5 4 2 0 100.233 PRIORSFIELD ROAD 1240
33 35 5 4 2 0 46.0757 PRIORSFIELD ROAD -1
34 38 5 5 2 0 471.414 SUMMERS LANE 1260
34 36 5 5 2 0 42.2019 SUMMERS LANE -1
35 42 5 5 2 0 134.787 na 1328
35 33 5 4 2 0 46.0757 PRIORSFIELD ROAD 1352
35 37 5 4 2 0 133.699 PRIORSFIELD ROAD -1
36 34 5 5 2 0 42.2019 SUMMERS LANE 1371
36 60 5 4 2 0 352.636 HURTMORE ROAD -1
36 29 5 4 2 0 289.129 na -1
37 35 5 4 2 0 133.699 PRIORSFIELD ROAD 1384
37 38 5 4 2 0 22.4722 PRIORSFIELD ROAD -1
37 7 5 5 2 0 462.832 PRIORS HATCH LANE 1411
38 37 5 4 2 0 22.4722 PRIORSFIELD ROAD 1445
38 39 5 4 2 0 13.4164 na -1
38 34 5 5 2 0 471.414 SUMMERS LANE -1
39 49 5 5 2 0 216.383 na 1457
39 38 5 4 2 0 13.4164 na 1486
39 44 5 4 2 0 214.01 na -1
40 46 5 5 2 0 979.033 na -1
41 33 5 5 2 0 103.976 na -1
42 35 5 5 2 0 134.787 na -1
43 63 5 5 2 0 221.518 EASTBURY LANE 1498
44 52 5 5 2 0 102.591 na 1537
44 39 5 4 2 0 214.01 na 1550
44 58 5 4 2 0 199.882 PRIORSFIELD ROAD -1
45 46 5 5 2 0 145.874 na -1
46 45 5 5 2 0 145.874 na 1571
46 82 5 5 2 0 391.503 na -1
46 40 5 5 2 0 979.033 na 1597
47 50 5 4 2 0 37.9473 B3000 1704
47 32 5 4 2 0 301.191 B3000 -1
48 48 6 6 1 0 0 Compton 0
49 39 5 5 2 0 216.383 na -1
49 55 5 5 2 0 34.3657 na 1716
49 57 5 5 2 0 42.678 na -1
50 47 5 4 2 0 37.9473 B3000 -1
50 51 5 4 2 0 11.8072 na 1727
50 53 5 4 2 0 12.1555 na -1
51 75 5 4 2 0 582.586 na 1741
51 50 5 4 2 0 11.8072 na -1
51 53 5 4 2 0 13.7793 na -1
52 44 5 5 2 0 102.591 na -1
53 54 5 4 2 0 36.0555 THE STREET -1
53 51 5 4 2 0 13.7793 na 1809
53 50 5 4 2 0 12.1555 na 1824
54 53 5 4 2 0 36.0555 THE STREET 1841
54 56 5 4 2 0 26.5707 THE STREET -1
55 49 5 5 2 0 34.3657 na -1
55 57 5 5 2 0 11.7047 na -1
56 72 5 5 2 0 212.132 DOWN LANE 1854
56 54 5 4 2 0 26.5707 THE STREET 1878
56 63 5 4 2 0 231.812 THE STREET -1
57 55 5 5 2 0 11.7047 na 1890
57 49 5 5 2 0 42.678 na 1902
58 65 5 5 2 0 165.517 na 1927
58 44 5 4 2 0 199.882 PRIORSFIELD ROAD 1941
58 62 5 4 2 0 32.249 PRIORSFIELD ROAD -1
59 30 5 1 2 0 510.625 GUILDFORD AND GODALMING BY PASS ROAD -1
59 71 5 1 2 0 281.604 GUILDFORD AND GODALMING BY PASS ROAD 1968
60 68 5 4 2 0 124.179 HURTMORE ROAD 1988
60 64 4 15 2 0 174.85 GODALMING 2015
60 64 4 9 2 0 174.85 WAVERLEY 2057
60 64 4 9 2 0 174.85 GUILDFORD 2099
60 36 5 4 2 0 352.636 HURTMORE ROAD 2141
61 75 5 1 2 0 278.013 GUILDFORD AND GODALMING BY PASS ROAD 2177
61 31 5 1 2 0 521.089 GUILDFORD AND GODALMING BY PASS ROAD -1
62 58 5 4 2 0 32.249 PRIORSFIELD ROAD 2202
62 64 5 4 2 0 71.5127 PRIORSFIELD ROAD -1
63 56 5 4 2 0 231.812 THE STREET 2215
63 43 5 5 2 0 221.518 EASTBURY LANE -1
63 84 5 4 2 0 414.625 THE STREET -1
64 69 4 15 2 0 78.7718 GODALMING 2240
64 69 4 9 2 0 78.7718 WAVERLEY 2252
64 69 4 9 2 0 78.7718 GUILDFORD 2264
64 69 5 5 2 0 78.7718 MARK WAY 2276
64 62 5 4 2 0 71.5127 PRIORSFIELD ROAD 2288
64 68 5 4 2 0 114.204 PRIORSFIELD ROAD -1
64 60 4 15 2 0 174.85 GODALMING -1
64 60 4 9 2 0 174.85 WAVERLEY -1
64 60 4 9 2 0 174.85 GUILDFORD -1
65 58 5 5 2 0 165.517 na -1
65 66 5 5 2 0 31.0483 na 2306
65 67 5 5 2 0 83.8579 na 2317
66 65 5 5 2 0 31.0483 na -1
66 67 5 5 2 0 6.40312 na 2351
67 66 5 5 2 0 6.40312 na -1
67 65 5 5 2 0 83.8579 na -1
68 64 5 4 2 0 114.204 PRIORSFIELD ROAD 2361
68 76 5 4 2 0 59.6039 HURTMORE ROAD -1
68 60 5 4 2 0 124.179 HURTMORE ROAD -1
69 77 5 5 2 0 86.5971 MARK WAY 2386
69 89 4 15 2 0 249.888 GODALMING -1
69 89 4 9 2 0 249.888 WAVERLEY -1
69 89 4 9 2 0 249.888 GUILDFORD -1
69 89 5 5 2 0 249.888 MARK WAY -1
69 64 4 15 2 0 78.7718 GODALMING -1
69 64 4 9 2 0 78.7718 WAVERLEY -1
69 64 4 9 2 0 78.7718 GUILDFORD -1
69 64 5 5 2 0 78.7718 MARK WAY -1
70 73 5 5 2 0 83.6497 HURTMORE CHASE 2409
71 59 5 1 2 0 281.604 GUILDFORD AND GODALMING BY PASS ROAD -1
72 82 5 5 2 0 255.361 DOWN LANE 2432
72 74 5 5 2 0 12.2066 na -1
72 56 5 5 2 0 212.132 DOWN LANE -1
73 81 5 5 2 0 91.7117 HURTMORE CHASE -1
73 76 5 5 2 0 99.6408 HURTMORE CHASE 2467
73 70 5 5 2 0 83.6497 HURTMORE CHASE -1
74 72 5 5 2 0 12.2066 na 2494
74 79 5 5 2 0 62.6817 na -1
74 78 5 5 2 0 115.397 na -1
75 51 5 4 2 0 582.586 na -1
75 61 5 1 2 0 278.013 GUILDFORD AND GODALMING BY PASS ROAD -1
75 95 5 1 2 0 412.358 GUILDFORD AND GODALMING BY PASS ROAD 2506
76 68 5 4 2 0 59.6039 HURTMORE ROAD 2532
76 92 5 4 2 0 264.616 HURTMORE ROAD -1
76 73 5 5 2 0 99.6408 HURTMORE CHASE -1
77 69 5 5 2 0 86.5971 MARK WAY -1
78 79 5 5 2 0 18.4391 na 2550
78 74 5 5 2 0 115.397 na 2562
79 74 5 5 2 0 62.6817 na 2606
79 80 5 5 2 0 27.8956 na -1
79 78 5 5 2 0 18.4391 na -1
80 79 5 5 2 0 27.8956 na 2619
81 73 5 5 2 0 91.7117 HURTMORE CHASE 2638
82 72 5 5 2 0 255.361 DOWN LANE -1
82 46 5 5 2 0 391.503 na 2664
83 86 5 5 2 0 14.5602 na -1
83 85 5 5 2 0 21.587 na 2709
84 86 5 5 2 0 60.4152 na 2720
84 63 5 4 2 0 414.625 THE STREET 2732
84 87 5 4 2 0 49.7293 THE STREET -1
85 83 5 5 2 0 21.587 na -1
85 86 5 5 2 0 59.5421 na -1
86 84 5 5 2 0 60.4152 na -1
86 83 5 5 2 0 14.5602 na 2786
86 85 5 5 2 0 59.5421 na 2798
87 88 5 5 2 0 51.9711 na 2832
87 84 5 4 2 0 49.7293 THE STREET 2844
87 90 5 4 2 0 63.0635 THE STREET -1
88 87 5 5 2 0 51.9711 na -1
89 93 5 5 2 0 131.904 na 2857
89 69 4 15 2 0 249.888 GODALMING 2890
89 69 4 9 2 0 249.888 WAVERLEY 2917
89 69 4 9 2 0 249.888 GUILDFORD 2944
89 69 5 5 2 0 249.888 MARK WAY 2971
89 94 4 15 2 0 77.6739 GODALMING -1
89 94 4 9 2 0 77.6739 WAVERLEY -1
89 94 4 9 2 0 77.6739 GUILDFORD -1
89 94 5 5 2 0 77.6739 MARK WAY -1
90 91 5 5 2 0 111.113 SPICEALL 2998
90 87 5 4 2 0 63.0635 THE STREET 3010
90 97 5 4 2 0 107.87 THE STREET -1
91 100 5 5 2 0 129.557 SPICEALL 3023
91 103 5 5 2 0 253.842 SPICEALL 3036
91 90 5 5 2 0 111.113 SPICEALL -1
92 76 5 4 2 0 264.616 HURTMORE ROAD 3064
92 98 5 4 2 0 93.1075 HURTMORE ROAD -1
93 89 5 5 2 0 131.904 na -1
94 89 4 15 2 0 77.6739 GODALMING 3092
94 89 4 9 2 0 77.6739 WAVERLEY 3122
94 89 4 9 2 0 77.6739 GUILDFORD 3152
94 89 5 5 2 0 77.6739 MARK WAY 3182
94 104 4 15 2 0 211.934 GODALMING 3212
94 104 5 5 2 0 211.934 MARK WAY 3229
94 137 4 9 2 0 1271.58 WAVERLEY 3246
94 137 4 9 2 0 1271.58 GUILDFORD 3395
95 75 5 1 2 0 412.358 GUILDFORD AND GODALMING BY PASS ROAD -1
96 98 5 5 2 0 57.4866 QUEENS DRIVE 3544
96 101 5 5 2 0 73.8509 na -1
97 102 5 5 2 0 106.617 POLSTED LANE 3561
97 90 5 4 2 0 107.87 THE STREET 3589
97 113 5 4 2 0 498.51 THE STREET -1
98 92 5 4 2 0 93.1075 HURTMORE ROAD 3603
98 96 5 5 2 0 57.4866 QUEENS DRIVE -1
98 106 5 4 2 0 254.345 HURTMORE ROAD -1
99 104 5 5 2 0 233.735 MARK WAY -1
100 91 5 5 2 0 129.557 SPICEALL -1
101 96 5 5 2 0 73.8509 na 3616
102 110 5 5 2 0 351.825 POLSTED LANE 3643
102 103 5 5 2 0 145.557 ALMSGATE 3664
102 97 5 5 2 0 106.617 POLSTED LANE -1
103 91 5 5 2 0 253.842 SPICEALL -1
103 105 5 5 2 0 129.728 SPICEALL -1
103 102 5 5 2 0 145.557 ALMSGATE -1
104 99 5 5 2 0 233.735 MARK WAY 3689
104 107 4 15 2 0 190.096 GODALMING -1
104 107 5 5 2 0 190.096 MARK WAY -1
104 94 4 15 2 0 211.934 GODALMING -1
104 94 5 5 2 0 211.934 MARK WAY -1
105 103 5 5 2 0 129.728 SPICEALL 3735
106 98 5 4 2 0 254.345 HURTMORE ROAD 3770
106 117 5 4 2 0 247.045 HURTMORE ROAD -1
107 104 4 15 2 0 190.096 GODALMING 3799
107 104 5 5 2 0 190.096 MARK WAY 3837
107 109 4 15 2 0 52.9722 GODALMING -1
107 109 5 5 2 0 52.9722 MARK WAY -1
108 111 5 5 2 0 146.83 na 3875
109 107 4 15 2 0 52.9722 GODALMING 3904
109 107 5 5 2 0 52.9722 MARK WAY 3924
109 112 5 5 2 0 180.069 MARK WAY -1
109 162 4 15 2 0 748.139 GODALMING -1
110 157 5 5 2 0 984.057 POLSTED LANE 3944
110 102 5 5 2 0 351.825 POLSTED LANE -1
110 115 5 5 2 0 432.211 WITHIES LANE -1
111 113 5 5 2 0 197.254 THE AVENUE 4078
111 108 5 5 2 0 146.83 na -1
111 137 5 5 2 0 436.889 THE AVENUE -1
112 118 5 5 2 0 91.1592 WOODMANCOURT 4092
112 109 5 5 2 0 180.069 MARK WAY 4116
112 116 5 5 2 0 105.049 MARK WAY -1
113 97 5 4 2 0 498.51 THE STREET 4132
113 115 5 4 2 0 30.1496 THE STREET -1
113 111 5 5 2 0 197.254 THE AVENUE -1
114 118 5 5 2 0 104.098 WOODMANCOURT -1
115 110 5 5 2 0 432.211 WITHIES LANE 4194
115 113 5 4 2 0 30.1496 THE STREET 4245
115 141 5 4 2 0 387.071 NEW POND ROAD -1
116 119 5 5 2 0 59.4292 APPLE GARTH 4258
116 112 5 5 2 0 105.049 MARK WAY 4281
116 117 5 5 2 0 110.375 MARK WAY -1
117 116 5 5 2 0 110.375 MARK WAY 4302
117 106 5 4 2 0 247.045 HURTMORE ROAD 4326
118 114 5 5 2 0 104.098 WOODMANCOURT 4359
118 120 5 5 2 0 74.4048 WOODMANCOURT -1
118 112 5 5 2 0 91.1592 WOODMANCOURT -1
119 116 5 5 2 0 59.4292 APPLE GARTH -1
120 124 5 5 2 0 43.8292 WOODMANCOURT 4392
120 118 5 5 2 0 74.4048 WOODMANCOURT 4405
120 122 5 5 2 0 28.9443 WOODMANCOURT -1
121 125 5 5 2 0 83.3783 MARKENHORN -1
122 120 5 5 2 0 28.9443 WOODMANCOURT 4432
123 125 5 5 2 0 50.1896 BRACKENLEA 4453
124 120 5 5 2 0 43.8292 WOODMANCOURT -1
125 123 5 5 2 0 50.1896 BRACKENLEA -1
125 127 5 5 2 0 54.4165 MARKENHORN -1
125 121 5 5 2 0 83.3783 MARKENHORN 4471
126 129 5 5 2 0 83.0347 na -1
127 125 5 5 2 0 54.4165 MARKENHORN 4503
127 129 5 5 2 0 16.0312 HUXLEY CLOSE -1
128 132 5 5 2 0 50.9375 na -1
129 126 5 5 2 0 83.0347 na 4521
129 127 5 5 2 0 16.0312 HUXLEY CLOSE 4540
129 130 5 5 2 0 10.0499 HUXLEY CLOSE -1
130 131 5 5 2 0 26.1725 na 4553
130 129 5 5 2 0 10.0499 HUXLEY CLOSE 4565
131 133 5 5 2 0 44.911 na 4578
131 130 5 5 2 0 26.1725 na -1
131 135 5 5 2 0 28.8444 na 4590
132 134 5 5 2 0 123.262 MCALMONT RIDGE 4603
132 128 5 5 2 0 50.9375 na 4638
132 133 5 5 2 0 21.0238 na -1
133 132 5 5 2 0 21.0238 na 4658
133 131 5 5 2 0 44.911 na -1
133 135 5 5 2 0 21.1896 na -1
134 132 5 5 2 0 123.262 MCALMONT RIDGE -1
135 131 5 5 2 0 28.8444 na -1
135 133 5 5 2 0 21.1896 na 4671
136 138 5 5 2 0 65.2301 na 4684
137 140 4 9 2 0 159.079 WAVERLEY 4704
137 140 4 9 2 0 159.079 GUILDFORD 4734
137 111 5 5 2 0 436.889 THE AVENUE 4764
137 139 5 5 2 0 73.7493 THE AVENUE -1
137 94 4 9 2 0 1271.58 WAVERLEY -1
137 94 4 9 2 0 1271.58 GUILDFORD -1
138 139 4 15 2 0 142.035 GODALMING 4827
138 139 5 5 2 0 142.035 BINSCOMBE 4859
138 136 5 5 2 0 65.2301 na -1
138 149 4 15 2 0 321.652 GODALMING -1
138 149 5 5 2 0 321.652 BINSCOMBE -1
139 143 4 15 2 0 118.005 GODALMING 4891
139 143 5 5 2 0 118.005 BINSCOMBE 4910
139 137 5 5 2 0 73.7493 THE AVENUE 4929
139 138 4 15 2 0 142.035 GODALMING -1
139 138 5 5 2 0 142.035 BINSCOMBE -1
140 154 4 9 2 0 249.05 WAVERLEY 4950
140 154 4 9 2 0 249.05 GUILDFORD 4984
140 141 5 5 2 0 224.366 na 5018
140 142 5 5 2 0 78.353 na -1
140 137 4 9 2 0 159.079 WAVERLEY -1
140 137 4 9 2 0 159.079 GUILDFORD -1
141 115 5 4 2 0 387.071 NEW POND ROAD 5056
141 165 5 4 2 0 272.873 NEW POND ROAD -1
141 140 5 5 2 0 224.366 na -1
142 140 5 5 2 0 78.353 na 5079
142 145 5 5 2 0 12.3693 na -1
142 143 5 5 2 0 21.2132 na -1
143 145 4 15 2 0 20.1246 GODALMING 5100
143 145 5 5 2 0 20.1246 BINSCOMBE 5112
143 142 5 5 2 0 21.2132 na 5124
143 139 4 15 2 0 118.005 GODALMING -1
143 139 5 5 2 0 118.005 BINSCOMBE -1
144 150 5 5 2 0 217.779 COPSE SIDE 5137
145 152 4 15 2 0 178.18 GODALMING 5172
145 152 5 5 2 0 178.18 BINSCOMBE 5192
145 142 5 5 2 0 12.3693 na 5212
145 143 4 15 2 0 20.1246 GODALMING -1
145 143 5 5 2 0 20.1246 BINSCOMBE -1
146 161 5 5 2 0 186.33 BADGERS CLOSE -1
147 147 6 7 1 0 0 Binscombe 0
148 161 5 5 2 0 136.163 CHERRY TREE LANE -1
149 138 4 15 2 0 321.652 GODALMING 5225
149 138 5 5 2 0 321.652 BINSCOMBE 5274
149 151 4 15 2 0 78.2624 GODALMING -1
149 151 5 5 2 0 78.2624 BINSCOMBE LANE -1
150 163 5 5 2 0 136.867 SIDE COPSE 5323
150 168 5 5 2 0 132.584 SQUIRRELS CLOSE 5354
150 144 5 5 2 0 217.779 COPSE SIDE -1
151 155 5 5 2 0 26.6301 OAK MEAD 5385
151 149 4 15 2 0 78.2624 GODALMING 5401
151 149 5 5 2 0 78.2624 BINSCOMBE LANE 5415
151 158 4 15 2 0 107.938 GODALMING -1
151 158 5 5 2 0 107.938 BINSCOMBE LANE -1
152 154 4 15 2 0 16.6433 GODALMING 5429
152 154 5 5 2 0 16.6433 BINSCOMBE 5441
152 163 5 5 2 0 91.2414 GREEN LANE -1
152 145 4 15 2 0 178.18 GODALMING -1
152 145 5 5 2 0 178.18 BINSCOMBE -1
153 167 5 5 2 0 140.921 REDWING AVENUE -1
154 165 5 5 2 0 80.2122 BINSCOMBE 5453
154 152 4 15 2 0 16.6433 GODALMING -1
154 152 5 5 2 0 16.6433 BINSCOMBE -1
154 140 4 9 2 0 249.05 WAVERLEY -1
154 140 4 9 2 0 249.05 GUILDFORD -1
155 156 5 5 2 0 40.1622 OAK MEAD 5466
155 151 5 5 2 0 26.6301 OAK MEAD -1
155 159 5 5 2 0 34.2053 OAK MEAD -1
156 160 5 5 2 0 58.6941 OAK MEAD 5479
156 155 5 5 2 0 40.1622 OAK MEAD -1
157 110 5 5 2 0 984.057 POLSTED LANE -1
158 170 5 5 2 0 89.4707 CLOVER LEA 5492
158 151 4 15 2 0 107.938 GODALMING 5505
158 151 5 5 2 0 107.938 BINSCOMBE LANE 5526
158 162 4 15 2 0 48.3011 GODALMING -1
158 162 5 5 2 0 48.3011 BINSCOMBE LANE -1
159 155 5 5 2 0 34.2053 OAK MEAD 5547
160 156 5 5 2 0 58.6941 OAK MEAD -1
161 167 5 5 2 0 69.0425 BADGERS CLOSE 5561
161 148 5 5 2 0 136.163 CHERRY TREE LANE 5578
161 146 5 5 2 0 186.33 BADGERS CLOSE 5599
162 158 4 15 2 0 48.3011 GODALMING 5653
162 158 5 5 2 0 48.3011 BINSCOMBE LANE 5667
162 109 4 15 2 0 748.139 GODALMING 5681
162 169 5 5 2 0 71.2811 BINSCOMBE LANE -1
163 152 5 5 2 0 91.2414 GREEN LANE 5706
163 150 5 5 2 0 136.867 SIDE COPSE -1
164 171 5 5 2 0 62.3699 MEADOW CLOSE 5720
165 141 5 4 2 0 272.873 NEW POND ROAD 5733
165 154 5 5 2 0 80.2122 BINSCOMBE -1
166 170 5 5 2 0 37.2156 CLOVER LEA -1
167 153 5 5 2 0 140.921 REDWING AVENUE 5756
167 161 5 5 2 0 69.0425 BADGERS CLOSE -1
168 150 5 5 2 0 132.584 SQUIRRELS CLOSE -1
169 162 5 5 2 0 71.2811 BINSCOMBE LANE 5783
169 171 5 5 2 0 50.2195 BINSCOMBE LANE -1
170 166 5 5 2 0 37.2156 CLOVER LEA 5797
170 172 5 5 2 0 39.6611 CLOVER LEA -1
170 158 5 5 2 0 89.4707 CLOVER LEA -1
171 169 5 5 2 0 50.2195 BINSCOMBE LANE 5811
171 173 5 5 2 0 42.638 BINSCOMBE LANE -1
171 164 5 5 2 0 62.3699 MEADOW CLOSE -1
172 170 5 5 2 0 39.6611 CLOVER LEA 5825
173 171 5 5 2 0 42.638 BINSCOMBE LANE 5839
nauto link geometry
from - number of incremental pairs - geometry
0 6 10 101 25 97 36 81 103 184 63 100 75 97
1 8 6 63 9 46 20 83 12 38 34 78 97 176 63 94 63 83
2 2 16 11 20 55
3 4 66 104 12 30 -1 10 2 10
3 5 35 42 87 88 68 61 149 108 53 32
4 4 75 58 54 27 23 9 4 5
4 6 54 64 74 71 99 86 109 75 34 23 26 14
6 5 18 25 33 78 15 26 17 15 18 6
8 4 5 9 7 3 25 -3 58 39
8 2 -12 8 -20 5
10 2 -3 6 3 4
11 1 -11 13
11 2 6 2 7 -2
12 2 4 0 5 2
12 1 -5 2
13 3 25 11 130 76 150 78
14 2 2 6 -3 4
15 4 -7 10 2 15 15 35 10 37
16 1 0 0
16 1 0 0
17 5 -26 37 -3 26 -23 58 -15 17 -14 7
17 1 41 128
18 4 0 32 -10 45 -6 26 -10 12
18 4 41 20 72 56 68 26 10 6
19 2 6 -2 7 4
19 3 -4 4 0 6 4 4
20 5 -16 10 -12 12 -10 10 -31 24 -3 2
20 3 4 3 6 0 5 -3
21 2 4 5 -2 7
22 4 14 12 54 57 97 81 63 41
23 6 8 49 0 13 -4 14 -21 0 -67 -41 -38 -18
24 9 -23 -11 -14 0 -140 23 -12 5 -6 14 14 44 1 14 -28 127 2 42
24 16 -22 58 -8 51 -14 39 -19 75 -15 26 -48 64 -25 56 -3 26 4 17 12 18 15 11 12 6 46 14 17 16 8 25 1 8
25 1 45 20
26 11 -26 18 -14 20 4 52 -5 46 -4 30 -19 53 -34 60 -8 20 -12 36 -4 31 -6 21
28 1 7 4
29 10 39 16 24 16 17 21 8 16 6 29 -7 27 -20 29 -18 36 -2 24 6 15
30 5 73 39 142 97 92 90 37 42 44 56
31 5 150 87 56 46 89 83 38 41 60 77
32 6 49 22 37 7 18 1 96 -13 39 4 52 20
33 2 54 30 41 10
33 2 -28 17 -52 43
34 11 -5 16 -3 46 4 16 10 25 9 49 -3 44 9 33 39 54 6 19 3 140 3 10
35 3 91 20 21 0 13 -16
35 2 -4 21 -13 21
36 1 -10 41
37 3 -13 22 -37 48 -12 46
37 4 -310 -2 -40 3 -39 20 -53 44
38 1 -8 21
39 4 53 15 41 0 53 16 64 11
39 1 -6 12
43 6 39 -21 9 -9 40 3 25 9 63 52 14 8
44 1 101 18
44 2 -119 162 -5 12
46 3 -8 101 -13 24 -3 17
46 16 -229 2 -111 34 -80 28 -11 12 -3 25 13 37 35 155 11 39 18 45 16 20 29 21 3 11 30 0 57 -19 28 3 27 12
47 1 36 12
49 1 34 5
50 2 1 5 6 3
51 10 12 19 29 20 20 23 23 36 34 104 19 85 13 88 16 50 23 44 36 53
53 2 3 6 -5 5
53 2 -6 -2 -3 5
54 1 -12 34
56 3 68 15 50 16 72 54
56 1 -9 25
57 1 -4 11
57 3 -2 -3 -5 -3 -31 12
58 1 120 114
58 3 -46 30 -22 22 -71 89
59 2 133 190 32 38
60 4 47 11 53 7 16 -2 6 2
60 6 -12 22 -13 20 0 14 25 16 45 41 21 4
60 6 -12 22 -13 20 0 14 25 16 45 41 21 4
60 6 -12 22 -13 20 0 14 25 16 45 41 21 4
60 4 -13 0 -118 30 -100 9 -115 -24
61 3 87 126 36 46 46 48
62 1 -28 16
63 3 3 59 -31 94 -16 72
64 1 69 38
64 1 69 38
64 1 69 38
64 1 69 38
64 2 -47 43 -6 5
65 1 8 30
65 5 35 12 1 18 -5 7 -12 2 -7 -4
66 1 4 5
68 3 -5 6 -15 20 -36 73
69 3 13 10 35 42 4 15
70 3 -6 27 2 10 24 39
72 5 57 38 26 30 10 27 4 59 12 58
73 4 4 7 11 34 -4 35 5 20
74 1 -7 10
75 3 74 77 90 72 156 109
76 2 -51 12 -6 4
78 1 12 14
78 7 -20 8 -2 5 5 22 -19 4 -11 5 0 5 24 17
79 1 -35 52
80 2 -7 -2 -13 16
81 3 -2 10 -15 19 -50 28
82 6 -150 54 -35 6 -81 15 -13 3 -41 8 -59 3
83 1 5 21
84 1 13 59
84 7 -76 35 -15 8 -37 37 -75 48 -22 24 -18 31 -38 97
86 1 -14 4
86 5 12 -1 3 21 -3 3 -18 4 -3 -2
87 1 10 51
87 1 -48 13
89 5 -1 53 14 10 24 1 12 4 1 25
89 3 -188 -5 -23 3 -36 14
89 3 -188 -5 -23 3 -36 14
89 3 -188 -5 -23 3 -36 14
89 3 -188 -5 -23 3 -36 14
90 1 5 111
90 1 -61 16
91 1 129 12
91 4 -4 63 8 8 106 7 73 -5
92 3 -79 39 -41 16 -126 41
94 4 -9 5 -12 17 -15 7 -30 1
94 4 -9 5 -12 17 -15 7 -30 1
94 4 -9 5 -12 17 -15 7 -30 1
94 4 -9 5 -12 17 -15 7 -30 1
94 2 6 0 197 60
94 2 6 0 197 60
94 24 7 55 7 27 11 7 5 6 4 8 0 10 -4 29 4 29 137 24 23 9 72 -73 89 -94 123 47 41 19 44 35 155 161 -18 22 -8 16 36 33 10 -11 42 44 -16 25 15 11 4 18
94 24 7 55 7 27 11 7 5 6 4 8 0 10 -4 29 4 29 137 24 23 9 72 -73 89 -94 123 47 41 19 44 35 155 161 -18 22 -8 16 36 33 10 -11 42 44 -16 25 15 11 4 18
96 2 -1 18 6 39
97 4 9 25 13 17 11 7 44 12
97 1 -106 20
98 1 -85 38
101 3 -17 0 -27 22 -22 -1
102 2 154 48 171 84
102 3 -10 50 0 22 15 71
104 6 -23 85 -8 23 -6 4 -7 0 -68 -20 -28 -23
105 4 -27 32 -22 20 -22 13 -31 10
106 3 -64 19 -122 24 -60 20
107 5 -9 2 -108 -32 -9 0 -7 7 -15 47
107 5 -9 2 -108 -32 -9 0 -7 7 -15 47
108 4 59 57 9 2 15 -4 40 -2
109 2 -25 34 -10 4
109 2 -25 34 -10 4
110 21 38 24 13 11 9 11 40 102 4 18 2 34 -9 63 6 54 13 32 17 20 56 27 38 25 19 23 21 44 6 7 14 -3 70 -42 35 -26 42 -22 79 -28 99 -19
111 1 10 197
112 3 25 17 29 28 20 5
112 1 -104 147
113 8 -72 15 -64 23 -15 10 -79 71 -58 42 -82 44 -26 11 -39 8
115 7 0 11 -9 31 -38 88 -11 35 -10 77 9 162 -4 16
115 1 -30 3
116 3 19 5 17 12 18 6
116 2 -13 53 -28 42
117 3 2 9 -1 15 -19 84
117 4 -78 2 -36 4 -77 19 -50 19
118 4 -1 20 -4 12 -18 11 -38 33
120 1 36 25
120 3 -24 11 -20 24 -16 5
122 3 -9 12 0 5 4 8
123 2 20 21 20 7
125 4 -21 43 -10 7 -9 0 -14 -3
127 2 0 35 -4 19
129 2 0 11 -17 70
129 1 -16 1
130 1 3 26
130 1 -10 1
131 1 9 44
131 1 16 24
132 5 35 34 6 9 2 10 -3 10 -25 35
132 2 -21 30 -3 14
133 1 -9 19
135 1 -7 20
136 2 17 -13 36 25
137 4 27 54 30 54 9 12 16 15
137 4 27 54 30 54 9 12 16 15
137 8 -20 12 -50 22 -25 19 -164 136 -12 13 -15 23 -9 31 -2 37
138 4 -23 46 -1 10 46 39 11 17
138 4 -23 46 -1 10 46 39 11 17
139 2 51 69 14 29
139 2 51 69 14 29
139 2 -31 45 -14 13
140 4 110 76 33 19 31 -37 20 -21
140 4 110 76 33 19 31 -37 20 -21
140 5 -22 32 -29 28 -3 10 3 27 59 90
141 2 -259 145 -88 20
142 2 -12 45 -13 29
143 1 9 18
143 1 9 18
143 1 -3 21
144 5 16 43 52 59 26 36 32 26 3 7
145 2 14 17 129 88
145 2 14 17 129 88
145 1 -12 3
149 6 -59 88 -17 14 -36 19 -34 28 -18 21 -46 67
149 6 -59 88 -17 14 -36 19 -34 28 -18 21 -46 67
150 4 22 37 25 19 11 12 23 40
150 4 35 -19 12 -1 16 7 49 40
151 2 17 6 5 7
151 1 -35 70
151 1 -35 70
152 1 14 9
152 1 14 9
154 1 65 47
155 1 13 38
156 1 14 57
158 1 79 42
158 2 -14 34 -24 67
158 2 -14 34 -24 67
159 1 -27 21
161 2 36 46 8 7
161 2 -65 73 -30 24
161 7 -29 -31 -14 -7 -9 0 -12 8 -15 18 -31 21 -33 29
162 1 -22 43
162 1 -22 43
162 2 -567 191 -147 -29
163 1 -63 66
164 1 47 41
165 2 -143 43 -108 60
167 3 -1 19 -10 14 -76 72
169 1 -40 59
170 1 -19 32
171 1 -29 41
172 1 -22 33
173 1 -27 33

This example data set represents a serially ordered traversal through a complex connected network. When the nauto program is called with an X, Y centre, and a Z value to indicate the metres across width of the desired "sweep" through the dataset, the appropriate data is loaded into the object model for subsequent query and processing for graphical output.

5 Conclusion

CGIMapScript represents a pragmatic attempt to render digital cartographic data into an easily readable and processable data type of a kind that Internet Service Proividers can cope with without the requirement for any geographic information system server software to be running to handle GIS type queries. In a serialised form such is demonstrated map data behaves essentially like recorded music. The "groove" of sequential unique nodal pairs can be followed unitl the zone of interest is reached, then fully connected object data is loaded to fit into the XYZ "box", processed according the the URL command string, generating the required HTML outputs.

The process of serialising the unique XY pairs also performs a type of normalisation - perhaps a "first geographic normal form" in that Codds's Rule "Remove repeating subgroups" is applied to the core vector coordinate data. This technique also has a strong compression effect of up to 90% on certain data sets but this has yet to be exactly callibrated.

Acknowledgements

The author wishes to thank:

References

[1] David Haskins, (1996) Why is Space a Slippery Concept for Information Systems Designers. Proceedings of ENTER 96, Innsbruck, Conference on Information and Communications Technologies in Tourism. Springer.

[2] Eckhard D. Falkenberg (1995) A Framework of Information Systems Concepts. International Federation of Information Processing WG8.1 Working Draft FRISCO/EF/13.03.95

[1] David Haskins, (2000) One World under a Groove - Handling Internet Mapping as Music. Proceedings of DEXA2000, London, MIW Workshop IEEE Press.