Programming and Development

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 in GIS Applications R for Geospatial Analysis & Mapping
Integer Programming Javascript for GIS
Integrating Linear Programming AND GIS 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
GIS and GPU Programming Licensing of GIS Applications
Programming of Mobile GIS Applications  
Programming of GIS Web Services  
Web GIS Programming  
   

 

PD-18 - SpatialMPI: Message Passing Interface for GIS Applications

MPI (Message Passing Interface) is a widely used message passing library for writing parallel programs. The goal of MPI is to establish a portable, efficient, and flexible standard for message passing that will be widely used for writing message passing programs. This chapter motivates the need for using MPI for implementing GIS applications and introduces MPI data types and communication functions. Then, it presents new spatial data types and operations on them using MPI. Finally, it presents pseudocode for parallelizing a range query problem and spatial domain decomposition in GIS.

PD-17 - SQL Languages for GIS

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.

PD-07 - System deployment
  • Develop a phasing schedule for deployment of an enterprise-wide system
  • Integrate geospatial applications with other enterprise information systems
PD-06 - System testing
  • Describe the goals of alpha and beta testing
  • Implement established testing procedures on prototype systems
  • Use testing results to prepare a system for deployment
  • Conduct a quality assurance review
PD-16 - Web GIS Programming

Web GIS programming involves creating, extending, utilizing, Web GIS or web mapping solutions to solve specific problems, build complete applications, or consume or produce data and geospatial processing services. With the expansion of the internet and availability of Web GIS or Web mapping options, web GIS programming is becoming a commonly required skill set in many organizations. Web GIS programming is a type of software development that provides a means of handling internet, browser-based software application development tasks which require unique solutions to web GIS or web mapping problems. In addition, a number of Web GIS software options offer application programming interfaces (APIs) that provide a means by which developers can leverage the published data and processing services of others to build and customize applications through standardized interfaces with external web GIS software, data, and services. Web GIS programming applies to mobile as well as desktop application development. A browser typically runs software applications by submitting Hypertext Transfer Protocol (HTTP) or Hypertext Transfer Protocol Secure (HTTPS) requests to a server hosting resources the application user wishes to access available through a Uniform Resource Locator (URL), and the server replies by providing resources or performing functions requested by the user. This entry reviews the fundamentals of web GIS programming, accompanying the Web Mapping and other entries in the Programming and Development section, the Web GIS entry in the Computing Platforms section, and the User Interface and User Experience (UI/UX) Design entry in the Cartography and Visualization section (Sack, 2017; Quinn, 2018; Roth, 2017).

Pages