Geographic information systems (GIS) have become increasingly important in helping us understand complex social, economic, and natural dynamics where spatial components play a key role. The critical algorithms used in GIS, however, are notoriously difficult to both teach and understand, in part due to the lack of a coherent representation. GIS Algorithms attempts to address this problem by combining rigorous formal language with example case studies and student exercises. Using Python code throughout, Xiao breaks the subject down into three fundamental areas:  • Geometric Algorithms  • Spatial Indexing  • Spatial Analysis and Modelling With its comprehensive coverage of the many algorithms involved, GIS Algorithms is a key new textbook in this complex and critical area of geography.

### k-D Trees

k-D Trees

Nothing is particularly hard if you divide it into small jobs.

Henry Ford

The k-D trees are a family of tree data structures specifically designed to handle high-dimensional data. The symbol k in the name refers to the dimension of the data. Here, since we are dealing with spatial data in a two-dimensional domain, we focus on 2-D trees. While all the spatial data structures we discuss in this part of the book are two-dimensional, the idea of the k-D tree can be used for higher dimensions. There are many kinds of k-D trees, and in this book we will focus on two of the basic types: point k-D trees and point region k-D trees.

### 5.1 Point k-D trees

Let us use the seven points listed ...

• • • 