Open Access

The BAU GIS system using open source mapwindow

  • Balqies Sadoun1Email author,
  • Omar Al-Bayari1,
  • Jalal Al-Azizi1 and
  • Samih Al Rawashdeh1
Human-centric Computing and Information Sciences20155:1

DOI: 10.1186/s13673-014-0018-6

Received: 17 March 2014

Accepted: 3 October 2014

Published: 8 January 2015

Abstract

“BAU GIS” is an efficient and flexible Geographic Information System (GIS) that supports manipulation, analysis, and viewing of geospatial data and associated attribute data in various GIS data formats. “BAU GIS” system is a stand-alone application, developed using (Map Window Open Source GIS) and (visual basic 10.0). It has been designed and developed to address the need for a GIS programming tool that could be used in engineering research and project software, without requiring end users to purchase a complete GIS system, or become a GIS experts. It is both a GIS modeling system, and a GIS application programming interface (API); all in a convenient redistributable package. The BAU GIS application is free and extensible GIS that can be used as an open-source alternative to desktop GIS, in order to distribute data to others and to develop and distribute custom spatial data analysis tools.

Keywords

GIS Web interface Open source GIS (OSGIS) MapWindow Application Programming Interface (API)

Introduction

Due to the advancement in the computing technology and the rising need for GIS applications [1-3], more and more scientists are developing free of charge software packages and tools which are very useful for those who cannot afford to buy commercial expensive software packages. Then, the main purpose is to serve the groups that are working in Meta Data management and who publish their works on the World Wide Web for all interested users. As part of the “Geomatics Engineering Department” who is interested in GIS and its application, we decided the development of this software to be used by our students and all interested groups.

The advancement of computers and computing capabilities created great deal of data (Meta data) and vice versa specialized groups in its management. Famous scientists are working hardly in the area of data organization and management as it is becoming the real problem. GIS is a great system for Meta data management. Its applications are numbered and proved to be efficient in real life and in case of catastrophes (as in Catherina storm in the USA). All commercial Software are expensive and you have to buy add on for special applications which make them more expensive. We decided to develop an OSGIS and add on to be used for free. We randomly used MapWindow to design our OSGIS then test it against the commercial GIS, where it proved complete functionality and reliability.

MapWindow: is a mapping tool, a GIS modeling system, and a GIS application programming interface (API), which was developed at Utah State University by Daniel P. Ames and his team. It was developed to address the need for a GIS programming tool for research and projects, without the need to purchase GIS systems, or become GIS expert. It is used to distribute data and develop custom spatial data analysis tools [4-6]. Developers can write Plug-ins to add additional functionality (models, special viewers, and hot-link). Handlers and data editors can pass these to users. It includes standard GIS data visualization features as well as database functions such as attribute table editing, shape file editing and data converters. Dozens of standard GIS formats are supported, including Shape files, GeoTIFF, ESRI format, ASCII and binary grids [7,8]. It includes a complete ActiveX component to instantly add GIS capabilities to the user’s existing software product [9,10]. Additional geo-processing components are available for .NET-compatible environments and languages. Components of MapWindow are:
  1. 1.

    MapWinGIS: This is an ActiveX control, which may be placed into any project in any programming language that supports ActiveX. This is the main map component - if the user wanted to write a program that displayed shape data, for example, the user could use this control for the display portion of the user’s program.

     
  2. 2.

    MapWin Interfaces: Also called the “Plug-in Interface”. It is a .dll file, which will allow the user to write the user’s own plug-ins to the main application. This may be done from any programming language, which supports the creation and use of Microsoft .NET 2.0 Dynamic Link Libraries (dlls).

     
  3. 3.

    MapWinGeoProc: This is a .NET library of geoprocessing functions, including tools for managing projections, clipping and buffering.

     

Setting up the Development Environment: Using Microsoft Visual Basic 2010 Express Edition, the Visual Studio development environment main window is presented in order to select Windows Form Application and to give a name (BAU GIS) to the web site. Then the process can continue to the tool box and all Windows Forms collapsible menu then to Map Control.

BAU GIS Development:
  1. A.

    The first form is the “frmIntro” which is the introduction frame in BAU GIS (Figure 1). This form “frmIntro” includes: Images from BAU and two labels in the bottom of the form.

     
  2. B.
    The second frame is the “frmMain” form, which is the main frame in BAU GIS (Figure 2). All other frames are connected to “frmMain.” These are used to apply some commands and display results. The “frmMain” of the BAU OSGIS form consists of the following parts:
    • Main menu: Consists of five titles to give a specific command to work (See Figure 3).

    • Standard toolbar: It consists of (14) icons; each gives a specific task to be worked in BAU OSGIS (See Figure 4).

    • Main Map: This is the utmost important part as most of the results will be displayed in this object. On main map you can do several functions and set general display properties (display Map layer, tracking layer etc.).

    • Legend: This is needed in order to clarify the symbols used to represent features on the map. Legend consists of examples of the symbols on the map with labels containing explanatory text. When you use a single symbol for the features in a layer, the layer is labeled with the layer name in the legend. User can open attribute for the layer or show properties, etc. (Figure 5).

     
  3. C.

    There are many other forms like Error dialog, form about dialog, form plug-in, form choose projection, form project setting and others which are related to form main (See Figure 6).

     
https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig1_HTML.gif
Figure 1

The “frmIntro” form in BAU OSGIS.

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig2_HTML.gif
Figure 2

The “frmMain” in BAU OSGIS web site.

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig3_HTML.gif
Figure 3

Main menus.

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig4_HTML.gif
Figure 4

Standard toolbar.

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig5_HTML.gif
Figure 5

Legend used.

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig6_HTML.gif
Figure 6

Other forms related to main frame.

Writing the code:
  • Classes: we wrote nearly 100 classes to use for all forms that are related in main form such as class: application, projection, draw, menu, layer, identified layer, etc. (See Figure 7).

  • Codes: Some codes are meant for class application and description such as the code for measuring the area of a polygon. Other codes are written for drawing line, point, polygon with respect to the shape file that are selected from legend to start editing, etc.

  • Module: We wrote 20 modules to use for all forms that are related to main form such as module main, module application, among others; see Figure 8.

  • Running BAU GIS: When the “frm intro” appears, it starts to load other forms that are related to “form main” such as “forms of plug in” etc. (Figure 1). After loading the main form, the form of the welcome screen will appear. Only the standard toolbars will appear in the main form (new, open, save, print, add data, pan, select, measure area, measure distance, zoom in, zoom out, zoom, identify, and query). If you want to show other toolbars related to main form you should press plug-ins from the main menu and choose what you need to work with.

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig7_HTML.gif
Figure 7

Classes for forms.

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig8_HTML.gif
Figure 8

Modules considered.

Important contents of the plug-in menu:
  • GIS tool: It is the function that includes the processes that are needed to build a GIS such as: assigning projection to grid or image or raster, Georeferencing an image or grid, generating a contour shape file and other processes (See Figure 9).

  • GPS Tool: This includes processes that should be applied when the GPS instrument is connected into a computer in order to process data, start logging track, draw GPS location on map, and display GPS information; see Figure 10.

  • Image to map tools: This tool used to convert image to map registration by using least square method and to rectify image by using another original rectified image (See Figure 11).

  • Path analyzer: This is designed to draw the path of the selected feature in shapefile by determining the Digital Elevation Model (DEM) of the rectified image and drawing this path as a profile to make other processes on shapefile (see Figure 12). The plug-in menu is very important.

  • Shapefile editor: It is used to create shapefile and start editing the shapefile. It includes other processes that are related to shapefile such as snapping, edit vertices, and merge of features.

  • Measuring tools: These include function for measuring distance, and area for the selected features in the shapefile.

  • Map Window graph tools: This is meant to allow drawing graphs using one field in the attribute field of the shapefiles (see Figure 13).

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig9_HTML.gif
Figure 9

Merge shape files.

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig10_HTML.gif
Figure 10

Display GPS information.

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig11_HTML.gif
Figure 11

Image registration.

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig12_HTML.gif
Figure 12

Path analyzer.

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig13_HTML.gif
Figure 13

Graph tools.

The reason for designing and developing this program is to fulfill the need of mainly our students in their GIS projects. Moreover, we posted the material on the web for all other public users.

Up on the application using our OSGIS we propose the following suggestions to address in future work:
  • Download Mapwindow open source program.

  • Create a new VB.Net Class Library project using Microsoft Visual Studio. Make a Right-click on the class in Solution Explorer and select “Properties”. Select the References page and click the “Add” button at the bottom of that form, then select the Browse tab and navigate to the location of and select the MapWinGIS.ocx and MapWininterfaces.dll; typically, found in C:\ProgramFiles\MapWindow\ as shown in Figure 14.

  • In the compile settings, sometimes it is useful to set the build path to your MapWindow “Plug-in” sub-directory or sub-directory within it, such as C:\ProgramFiles\MapWindow\Plugins\PathAnalyzer directory. This will save you the task of having to copy your plug-in DLL into the Plug-in directory for MapWindow in order to load when it runs. If using this, it is strongly recommended not to forget that the path must be set for both Debug and Release properties.

  • Back in your code, after the “Public Class…” line; insert the line Implements “MapWindow.Interfaces.IPlugin”. Then, hit enter on that interface and see how Visual Studio populates all of the interface properties and functions found in the IPlugin Interface (Figure 15).

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig14_HTML.gif
Figure 14

Adding reference from browse.

https://static-content.springer.com/image/art%3A10.1186%2Fs13673-014-0018-6/MediaObjects/13673_2014_18_Fig15_HTML.gif
Figure 15

Adding reference from (.NET).

Conclusions

To conclude, the “BAU GIS” is a Programmable GIS system, which supports manipulation, analysis, and viewing of geospatial data and associated attribute data in several standard GIS data formats. Basically, It has the following features and capabilities:
  • It uses an open Source Map Window soft.

  • It is a standalone application, developed using Map Window Open Source GIS and visual basic 10.0.

  • It has been designed to address the need for a GIS programming tool that could be used in engineering research and project software.

  • It doesn’t require users to purchase a complete GIS package.

  • It doesn’t require users to become GIS experts.

  • It is a GIS modeling system and GIS application programming interface (API) all in one convenient redistributable package.

Finally, the BAU GIS application is free and extensible which can be used as: an Open-Source alternative to desktop GIS systems, in order to distribute data to others and to develop and distribute custom spatial data analysis tools. For example, a researcher or a company may want to deploy a tool that lets users build and interact with maps of GPS data overlaid on USGS quad maps. One approach is to build the tool as an extension to popular GIS software, and then require users to purchase that software to run the extension. Alternatively, the user/company could use BAU GIS as a platform and build a specialized application that does the needed function and then give it or sell it directly to end user with no need for third party software purchase.

Abbreviations

GIS: 

Geographical information system

API: 

Application programming interface

BAU: 

Al-Balqa’ applied university

OSGIS: 

Open Source GIS Services

VB.NETL: 

Visual Basic implemented on the .NET Framework

DEM: 

Digital elevation model

Declarations

Acknowledgements

We would like to thank Al-Balqa’ Applied University for partial support of this work by allowing us to use the University facilities to conduct the work.

Authors’ Affiliations

(1)
Department of Surveying and Geomatics Engineering, AL-Balqa’ Applied University

References

  1. ArcGIS for Desktop. http://www.esri.com/software/arcgis/about/gis-for-me.html
  2. Arc/Info: Full featured Geographic Information System (2010). http://en.wikipedia.org/wiki/ArcInfo
  3. Google Earth (2005). http://en.wikipedia.org/wiki/Google_Earth
  4. Appleman D (1998) Developing COM/ ActiveX Component with visual basic 6, 1st edn. SAMS, United StatesGoogle Scholar
  5. MapWindow GIS Open Source Project, 1998-2014. http://www.mapwindow.org/
  6. Ames DP (2007) MapWinGIS Reference Manual: a function guide for the free MapWindow GIS ActiveX map component. Lulu.com,Morrisville
  7. GIS Fundamentals; a First Text on Geographic Information Systems, 3rd edn. New York, Eider Press.
  8. An Extensible, Interface-Based, Open Source GIS Paradigm: MapWindow 6.0 Developer Tools for the Microsoft Windows Platform. Free and Open Source Software for Geoinformatics (FOSS4G), Cape Town.
  9. Getting Started with MapWindow 6 Harold (Ted) Dunsford Jr. Mark Van Orden Jiří Kadlec October 2009. http://mapwindow6.codeplex.com/documentation
  10. Dunsford HA Jr, 2010: Design and development of an extensible, interchangeable component architecture for open -source geographic information systems, Idaho State University, 2010, p 278; 3407289

Copyright

© Sadoun et al.; licensee Springer. 2015

This is an open access article distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/by/4.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly credited.