Preface |
|
ix | |
Acknowledgements |
|
xiii | |
Author |
|
xv | |
|
|
1 | (22) |
|
1.1 How Computers Solve Problems |
|
|
2 | (3) |
|
1.2 How Computers Represent the World: Data Modelling |
|
|
5 | (5) |
|
1.3 The Structure of a Computer |
|
|
10 | (5) |
|
1.4 Pseudocode and Computer Programming |
|
|
15 | (8) |
|
|
21 | (2) |
|
|
23 | (16) |
|
2.1 What Are Databases and Why Are They Important? |
|
|
23 | (6) |
|
|
29 | (3) |
|
2.3 Storing Spatial Data in a Relational Database |
|
|
32 | (3) |
|
2.4 Solutions to the Problems of Storing Spatial Data in RDBMS |
|
|
35 | (4) |
|
|
37 | (2) |
|
|
39 | (30) |
|
3.1 Simple Storage of Vector Data |
|
|
39 | (10) |
|
3.2 Topological Storage of Vector Data |
|
|
49 | (5) |
|
|
54 | (3) |
|
3.4 And How Does It Help? The Example of DIME |
|
|
57 | (3) |
|
3.5 More on Topological Data Structures |
|
|
60 | (4) |
|
3.6 And a Return to Simple Data Structures |
|
|
64 | (5) |
|
|
67 | (2) |
|
4 Vector Algorithms for Lines |
|
|
69 | (26) |
|
4.1 Simple Line Intersection Algorithm |
|
|
69 | (5) |
|
4.2 Why the Simple Line Intersection Algorithm Would Not Work: A Better Algorithm |
|
|
74 | (4) |
|
4.3 Dealing with Wiggly Lines |
|
|
78 | (3) |
|
4.4 Calculations on Lines: How Long Is a Piece of String? |
|
|
81 | (3) |
|
4.5 Line Intersection: How It Is Really Done |
|
|
84 | (11) |
|
|
93 | (2) |
|
5 Vector Algorithms for Areas |
|
|
95 | (14) |
|
5.1 Calculations on Areas: Single Polygons |
|
|
95 | (3) |
|
5.2 Calculations on Areas: Multiple Polygons |
|
|
98 | (3) |
|
5.3 Point in Polygon: Simple Algorithm |
|
|
101 | (4) |
|
5.4 ... and Back to Topology for a Better Algorithm |
|
|
105 | (4) |
|
|
108 | (1) |
|
6 The Efficiency of Algorithms |
|
|
109 | (10) |
|
6.1 How Is Algorithm Efficiency Measured? |
|
|
109 | (3) |
|
6.2 Efficiency of the Line Intersection Algorithm |
|
|
112 | (2) |
|
6.3 More on Algorithm Efficiency |
|
|
114 | (5) |
|
|
116 | (3) |
|
|
119 | (22) |
|
7.1 Raster Data in Databases |
|
|
120 | (3) |
|
7.2 Raster Data Structures: The Array |
|
|
123 | (4) |
|
7.3 Saving Space: Run Length Encoding and Quadtrees |
|
|
127 | (5) |
|
7.4 Data Structures for Images |
|
|
132 | (9) |
|
|
139 | (2) |
|
|
141 | (20) |
|
8.1 Raster Algorithms: Attribute Query for Run Length Encoded Data |
|
|
141 | (3) |
|
8.2 Raster Algorithms: Attribute Query for Quadtrees |
|
|
144 | (9) |
|
8.3 Raster Algorithms: Area Calculations |
|
|
153 | (8) |
|
|
159 | (2) |
|
9 Data Structures for Surfaces |
|
|
161 | (24) |
|
9.1 Data Models for Surfaces |
|
|
162 | (4) |
|
9.2 Algorithms for Creating Grid Surface Models |
|
|
166 | (8) |
|
9.3 Algorithms for Creating a Triangulated Irregular Network |
|
|
174 | (6) |
|
9.4 Grid Creation Revisited |
|
|
180 | (5) |
|
|
183 | (2) |
|
10 Algorithms for Surfaces |
|
|
185 | (22) |
|
10.1 Elevation, Slope and Aspect |
|
|
185 | (7) |
|
10.2 Hydrological Analysis Using a TIN |
|
|
192 | (3) |
|
10.3 Determining Flow Direction Using a Gridded DEM |
|
|
195 | (4) |
|
10.4 Using the Flow Directions for Hydrological Analysis |
|
|
199 | (8) |
|
|
205 | (2) |
|
11 Data Structures and Algorithms for Networks |
|
|
207 | (28) |
|
11.1 Networks in Vector and Raster |
|
|
207 | (2) |
|
11.2 Shortest Path Algorithm |
|
|
209 | (7) |
|
11.3 Data Structures for Network Data |
|
|
216 | (9) |
|
11.4 Faster Algorithms for Finding the Shortest Route |
|
|
225 | (10) |
|
|
234 | (1) |
|
12 Strategies for Efficient Data Access |
|
|
235 | (36) |
|
12.1 Tree Data Structures |
|
|
238 | (6) |
|
12.2 Indexing and Storing 2D Data Using Both Coordinates |
|
|
244 | (6) |
|
12.3 Space-Filling Curves for Spatial Data |
|
|
250 | (2) |
|
12.4 Spatial Filling Curves and Data Clustering |
|
|
252 | (3) |
|
12.5 Space-Filling Curves for Indexing Spatial Data |
|
|
255 | (10) |
|
|
265 | (6) |
|
|
269 | (2) |
|
13 Heuristics for Spatial Data |
|
|
271 | (24) |
|
13.1 Travelling Salesman Problem |
|
|
272 | (5) |
|
|
277 | (6) |
|
|
283 | (5) |
|
13.4 Computability and Decidability |
|
|
288 | (7) |
|
|
293 | (2) |
Conclusion |
|
295 | (2) |
Glossary |
|
297 | (8) |
References |
|
305 | (8) |
Index |
|
313 | |