SQL (Structured Query Language) is a declarative programming language that is closely linked to the relational database model. It is an accessible and widely adopted language used for query, data modification, and data definition—that is, defining data structures (tables) and other database objects. Important additions to the SQL standard include SQL/PSM, which adds control flow, local variables, and other procedural language features; and SQL/MM Part 3, which adds spatial support. Many complex geoprocessing workflows typically implemented in desktop GIS or scripting languages can easily be implemented in spatial SQL.
Computer programming and development are critical to the past, present, and future of geospatial systems and techniques. The increasing ubiquity and diversity of online, mobile, and desktop GIS platforms along with the inclusion of cyber-infrastructure components within the bounds of geographic information systems (e.g., supercomputing, wireless sensor networks) means that GIS researchers and professionals need to be fluent in multiple forms of programming, and the life-cycles of system and software development.
Topics in this Knowledge Area are listed thematically below. Existing topics are in regular font and linked directly to their original entries (published in 2006; these contain only Learning Objectives). Entries that have been updated and expanded are in bold. Forthcoming, future topics are italicized.
|Algorithm Design/Algorithmic Approaches||Programming Languages & Libraries|
|Dynamic Programming in GIS Applications||Python for GIS|
|Natural Language Processing in GIS Applications||PySAL and Spatial Statistics Libraries|
|Real Tme Programming||R for Geospatial Analysis & Mapping|
|Linear Programming||SQL Languages for GIS|
|Machine Learning Programming for GIS||GDAL./OGR and IO Libraries|
|GIS and Parallel Programming|
|Object-oriented Programming in GIS Applications||Application Development|
|Development Tools||Software Lifecycles of GIS Applications|
|Development Environments for Geospatial Applications||Software Requirements for GIS Applications|
|SpatialMPI: Message Passage Interface for GIS Applications||Verification & Validation of GIS Applications|
|Software Frameworks for GIS Applications||Implementation of GIS Applications|
|Visual Programming for GIS Applications||Testing of GIS Applications|
|Computer-Aided Software Engineering (CASE) Tools||Deployment of GIS Applications|
|GIS APIs||Design of GIS Applications|
|Platform Specific Programming||Commercialization of GIS Applications|
|GPU Programming||Licensing of GIS Applications|
|Programming of Mobile GIS Applications|
|Programming of GIS Web Services|
|Web GIS Programming|