A sample spatial analysis server is shown in Figure 4.2. A set of software libraries performs search and data retrieval operations on a compiled map database. The spatial operations defined earlier require specialized business logic and access the digital map database using the access libraries. An interface is provided to integrate the spatial analysis server into your location server infrastructure. If possible, selecting a standards-based interface for spatial operations, such as GML (see Appendix B for the complete specification), provides maximum extensibility for your system.
Unlike traditional GIS products, spatial analysis software for mobile location services is focused much more on speed of data retrieval and ability to support a high volume of concurrent requests. These requirements impact the way the spatial analysis software database is structured. There are three primary database structures used in spatial analysis server software: a hybrid database, a pure relational database, and a pure object-oriented database.
The basic concept behind the hybrid approach is that you cannot optimize both the spatial data storage and the attribute data storage simultaneously. Thus, spatial data such as coordinates and topological data is stored using a standard file-based approach and attribute data is stored in relational database tables. The two are linked via a unique identifier.
This model stores both the spatial data and the attribute data in relational tables, linking them with a standard relational join. Storing spatial data in this manner results in much poorer system performance, because spatial data that is close together is not necessarily stored close together in the database.
An object-oriented database attempts to deliver speed without sacrificing flexibility by organizing the data around the spatial entities. These databases define data as a series of objects that have similar criteria (object classes). Relationships between objects and classes are explicitly defined. The drawbacks to this approach are that there is no standard query language for object-oriented databases and that object-oriented databases take substantially more skill and time to design than other databases.
The pure object-oriented and the hybrid database models have various advantages and disadvantages, although either model is a better choice for mobile location services than a straight relational system. The advantages of the hybrid model are that it leverages the sound bases of the relational database and file system, and it is generally easier to use than its object-oriented counterpart. Its disadvantages are that it can be slower to query, as queries require access both to the spatial data store and to the relational attribute tables, and there are potential integrity and security concerns of not storing spatial data in a database management system. The object-oriented database, on the other hand, provides faster querying because it does not have to do so many join operations, and requires less storage space than relational database systems that have many index files. However, as discussed earlier, the disadvantages are that it has no standard query language and requires significant sophistication to develop and maintain.
To understand how the spatial analysis server works and how to use it to build mobile location services applications, it is important to understand some map basics. This chapter introduces digital maps, both what they are and how they are built. We then discuss map coordinate systems and projections, followed by a brief overview of geographic data types. Finally, we discuss in detail the use of the following spatial analysis operations:
Map image generation
Point of interest searches
Real-time map attribute editing