By Shahabuddin Amerudin
Abstract
Geographic Information Systems (GIS) have become indispensable tools to a wide array of fields, including environmental management, urban planning, and public health. As the demand for GIS continues to grow, so does the need for innovative GIS software. This article examines four distinct approaches to GIS software development, ranging from writing code without help from existing GIS software to integrating GIS functions through loose and tight coupling methods.
Introduction
Geographic Information Systems (GIS) are powerful computer-based tools that allow users to collect, store, analyze, and manipulate geographic data. The proliferation and advancement of GIS have been instrumental in resolving complex spatial problems across various disciplines (Heywood, Cornelius & Carver, 2011). To cater to the diverse needs of different domains, numerous approaches to GIS software development have been devised. The following sections delve into four prominent approaches: (1) writing code without help from existing GIS software; (2) customizing existing GIS software; (3) creating new functions using GIS macros/scripts; (4) loosely and tightly coupled integration.
Approach 1 – Write Your Own Code Without Help From Existing GIS Software
Developing GIS software from scratch entails a significant amount of time, effort, and technical expertise (Burrough & McDonnell, 1998). However, this approach allows developers to create tailor-made solutions specific to a particular problem or user group, thereby ensuring optimal performance and seamless compatibility with other systems (Longley et al., 2015). Furthermore, designing GIS software from the ground up facilitates the incorporation of novel algorithms, techniques, and data structures that may not be present in pre-existing software (Worboys & Duckham, 2004).
Despite its advantages, writing code without utilizing existing GIS software presents several challenges. First, it requires a deep understanding of geospatial concepts, data formats, and programming languages (Chang, 2016). Second, the development process can be time-consuming and resource-intensive, particularly for small organizations or individual developers. Finally, this approach may result in a lack of standardization and interoperability with other GIS software, potentially limiting its usability across different platforms (Goodchild, 1992).
Approach 2 – Customizing Existing GIS Software
Customizing existing GIS software involves modifying and extending the functionality of commercial or open-source GIS platforms to suit specific requirements (Steiniger & Bocher, 2009). This approach benefits from the extensive features, documentation, and user communities associated with popular GIS platforms, such as ArcGIS, QGIS, and GRASS GIS. Consequently, customization reduces development time and costs compared to building software from scratch.
Examples of customization include developing plugins or extensions that add new tools or capabilities to the core software or creating custom scripts that automate routine tasks (Tomlinson, 2013). Although customization generally offers greater flexibility than using off-the-shelf software, it is inevitably constrained by the underlying architecture and design of the original platform (Heywood et al., 2011).
Approach 3 – Creating New Functions Using GIS Macro/Scripts
This approach enables developers to create new functionalities for existing GIS software by leveraging macros or scripting languages (e.g., Python, R, or JavaScript) (Chang, 2016). Macros/scripts are relatively easy to learn and implement, making them an attractive option for developers with limited programming experience (Longley et al., 2015). In addition, macros/scripts facilitate rapid prototyping and testing of new functions, thereby expediting the development process.
However, relying solely on macros/scripts may restrict access to lower-level system functions and data structures, potentially limiting the performance and sophistication of newly developed tools (Worboys & Duckham, 2004). Furthermore, compatibility issues may arise when attempting to share macros/scripts across different software platforms or versions (Steiniger & Bocher, 2009).
Approach 4 – Loosely and Tightly Coupled Integration
Loose coupling and tight coupling are two distinct methods for integrating GIS functions with other software systems. Loose coupling facilitates modularity and flexibility by connecting separate software components through well-defined interfaces such as web services or APIs (Goodchild, Fu & Rich, 2007), thereby allowing developers to interchange components without affecting overall system function (Chang, 2016). This approach is particularly advantageous for projects necessitating interoperability between multiple systems, as it enables data and functionality exchange via standardized interfaces (Bian, 2012). However, loose coupling may not always yield optimal performance and seamless integration, potentially leading to slower execution times and user interface inconsistencies (Xiao et al., 2008).
Conversely, tight coupling involves embedding GIS functions directly within another software application, creating a close interdependence between the systems (Longley et al., 2015). While this method may result in improved performance and tighter integration, it also introduces complexity and potential maintenance issues, especially when upgrading or modifying individual components (Heywood et al., 2011). Tight coupling is well-suited for projects demanding a customized and highly performant solution where GIS functionality plays a central role in the software’s purpose (Tomlinson, 2013). Nevertheless, the increased complexity and maintenance challenges that come with tight coupling require careful consideration of component interdependencies during system upgrades or modifications (Worboys & Duckham, 2004).
Discussion
The four approaches to GIS software development discussed in this article offer different levels of flexibility, complexity, and customization. Each approach has distinct advantages and disadvantages that must be carefully weighed according to the specific needs and resources of the project at hand.
Approach 1 (writing code without existing GIS software) offers the highest degree of customization but also entails a substantial investment of time, expertise, and resources. This approach may be suitable for projects requiring highly specialized solutions or those seeking to incorporate novel algorithms or techniques not available in existing software.
Approach 2 (customizing existing GIS software) provides a more efficient and cost-effective method for tailoring GIS platforms to specific requirements. This approach benefits from the existing features, documentation, and user communities of popular GIS software. However, it is inherently constrained by the design and architecture of the underlying platform, limiting customization potential compared to Approach 1.
Approach 3 (creating new functions using macros/scripts) offers a rapid and accessible means for extending GIS functionality with limited programming experience required. While this approach is well-suited for prototyping and testing new functions, it may restrict access to lower-level system functions and data structures, thus limiting performance and sophistication.
Approach 4 (loosely and tightly coupled integration) focuses on integrating GIS functions with other software systems. Loose coupling emphasizes modularity and interoperability, making it ideal for projects involving multiple systems. On the other hand, tight coupling provides closer integration and improved performance at the expense of increased complexity and maintenance challenges.
Conclusion
In conclusion, the choice of GIS software development approach largely depends on the objectives, resources, and constraints of the project. Developers must carefully assess the desired level of customization, integration, and performance against the required time, expertise, and resource commitments. As the demand for GIS continues to expand across numerous fields, understanding these various approaches can help ensure the successful development and implementation of innovative GIS software tailored to address the diverse and evolving needs of different domains. Future research in this area would benefit from case studies and comparative analyses of these approaches to further elucidate their relative strengths and weaknesses, as well as exploring emerging trends and techniques in GIS software development.
References
Bian, L. (2012). Spatial Approaches to Modeling Dispersion in Network Space. Annals of the Association of American Geographers, 102(5), 998-1006.
Burrough, P. A., & McDonnell, R. A. (1998). Principles of Geographic Information Systems. Oxford University Press.
Chang, K. T. (2016). Introduction to Geographic Information Systems. McGraw-Hill Education.
Goodchild, M. F. (1992). Geographical information science. International Journal of Geographical Information Systems, 6(1), 31-45.
Goodchild, M. F., Fu, P., & Rich, P. (2007). Sharing geographic information: An assessment of the geospatial one-stop. Annals of the Association of American Geographers, 97(2), 250-266.
Heywood, I., Cornelius, S., & Carver, S. (2011). An Introduction to Geographical Information Systems. Pearson Education Limited.
Longley, P. A., Goodchild, M. F., Maguire, D. J., & Rhind, D. W. (2015). Geographic Information Science and Systems. John Wiley & Sons.
Steiniger, S., & Bocher, E. (2009). An overview on current free and open source desktop GIS developments. International Journal of Geographical Information Science, 23(10), 1345-1370.
Tomlinson, R. (2013). Thinking About GIS: Geographic Information System Planning for Managers. ESRI Press.
Worboys, M., & Duckham, M. (2004). GIS: A Computing Perspective. CRC Press.
Xiao, N., Kwan, M. P., Lin, H., & Wang, D. (2008). Integration of GIS and visualization for the development of a spatial decision support system. Cartography and Geographic Information Science, 35(1), 29-45.
Suggestion for Citation: Amerudin, S. (2023). Approaches in Developing GIS Software. [Online] Available at: https://people.utm.my/shahabuddin/?p=6370 (Accessed: 15 April 2023).