How Do I Become a GIS Developer?
GIS secondary development is to customize and develop GIS functions in the software development kit (such as GIS control) or VBA, API and other methods provided by existing GIS software. Geographic information systems can be divided into two basic types according to their contents: one is the application-type geographic information system, which focuses on a major, field, or job, including thematic geographic information systems and regional integrated geographic information systems; and the second is the tool type. Geographic information systems, that is, GIS tool packages, such as ARC / INFO, have basic GIS functions such as spatial data input, storage, processing, analysis, and output. With the expansion of geographic information system applications, the development of applied GIS is becoming increasingly important. How to efficiently develop a geographic information system that meets the needs and has convenient, beautiful, and rich interface forms for different application goals is a problem that GIS developers are very concerned about.
- There are usually three methods for the secondary development of GIS [1]
- 1. Component technology:
- The rise of component technology:
- At present, in the field of software development, a new revolution is quietly emerging. This is caused by the increasingly mature component technology. A few years ago, when Microsoft first used OLE, its original intention was to enhance software interoperability. However, in the process of using it, people gradually realized the substantive content behind this technology and its important role in software development. Component technology has increased the productivity of the software industry in unprecedented ways, and this has gradually become the consensus of software developers. The traditional C / S structure, groupware, middleware and other large software systems will be reconstructed on the basis of components. Component technology has brought the object-oriented technology that has risen in the past two decades into a mature and practical stage. In the conceptual model of component technology, a software system can be viewed as a collection of objects that work together, where each object provides a specific service, sends a specific message, and is published in a standard form for other objects to understand and call. The interface between components is defined by a platform-independent language IDL (InterfaceDefineLanguage), and it is binary compatible. Users can directly call the execution module to obtain the services provided by the object. Early class libraries provided original code-level reuse and were only suitable for small-scale development forms; components were more thoroughly encapsulated and easier to use, and were not limited to languages such as C ++, and could be used in various developments. Language and development environment. Due to the emergence of component technology, the form of the software industry has also changed greatly. A large number of component manufacturers have emerged and launched their own unique component products; software integrators have used appropriate components to quickly produce certain application systems that users need; large and comprehensive universal products have gradually decreased; many relatively professional, but Widely used software, such as GIS, speech recognition systems, etc., are assembled and diffused into general software products in the form of components [2] .
- COM and DCOM:
- COM is the abbreviation of Component Object Model. It is a specification for the mutual interface between components. It is the common basis of OLE (Object Linking & Embedding) and ActiveX. Its role is to enable various software components and application software to Interact in a unified, standard way. COM is not an object-oriented language, but a binary standard that has nothing to do with source code. COM establishes a link between a software module and another software module. After such a link is established, the modules can communicate through a mechanism called an "interface". The COM standard adds security mechanisms to ensure the integrity of systems and components, and extends to distributed environments. It defines the interfaces of software components.
- COM is still essentially a client / server model. A client (usually an application) requests the creation of a COM object and manipulates the COM object through the COM object's interface. The server creates and manages COM objects based on client requests. The roles of client and server are not absolute.
- COM based on distributed environment is called DCOM (Distribute COM, Distributed Component Object Model).
- DCOM is the foundation of ActiveX, which enables direct interaction between a COM object and another object on a remote computer. The DCOM specification defines a mechanism for decentralized object creation and communication between objects. The specification itself does not depend on any specific programming language and operating system, but the standard is currently only implemented on the Microsoft Windows platform, which means that other operating system platforms ( (Such as UNIX) does not currently support ActiveX.
- The implementation of DCOM adopts the form of DCOM library. When DCOM client object needs the service of DCOM server object, DCOM library is responsible for generating DCOM server object and establishing the initial connection between client object and server object. Once the server object pointer is returned, DCOM library No longer participate in the work between the client object and the server object, the two objects can communicate freely.
- The DCOM interface is actually a set of functions that are logically and semantically associated. The server object provides services to the client object through the DCOM interface. The client object does not need to know the internal data representation of the server object. An interface can be viewed as a protocol between two software components, which indicates that the server object provides one and only one service to the client object. The interface uses a globally unique identifier (GUID) to ensure the uniqueness of the service. Common DCOM components provide multiple services, so the server object implements an interface for each service. When the client object pointer points to the corresponding server object, it activates the corresponding function of the server object interface. The specific process is: The client object obtains pointers to other interfaces through the IunKnown interface that the DCOM object must support. The client object may not know every interface of the server object, but this does not prevent the client object from using the server object, it only uses the interfaces it knows. When the client object runs out of service for the server object, it notifies the server object and the server object releases the memory it occupied.
- The benefits of DCOM are obvious. Because the definition and function of the interface remain unchanged, DCOM component developers can change the interface function, add new functions to the object, and replace the original object with a better object. The application based on the component requires almost no modification, greatly Improved code reuse.
- ActiveX and ActiveX controls:
- ActiveX:
- (1) ActiveX is a set of technologies proposed by Microsoft to enable software components to interact in a network environment based on the COM (Component Object Model) specification. It has nothing to do with the specific programming language. As a technology developed for Internet applications, ActiveX is widely used in various aspects of web servers and clients. At the same time, ActiveX technology is also used to easily create ordinary desktop applications
- (2) ActiveX content:
- · ActiveX Control (ActiveX Control): used to insert COM objects into WEB pages, Microsoft Word and other containers (Container);
- ActiveX Document: Used to browse composite documents (non-HTML documents) in the Web Browser or other ActiveX-enabled containers, such as Microsoft Word documents, Microsoft Excel documents, or user-defined documents;
- · ActiveX Scripting (ActiveX Scripting): used to manipulate ActiveX controls and Java programs, transfer data, and coordinate operations between them from the client or server;
- · ActiveX Server Framework (ActiveX Server Framework): Provides a series of functions and encapsulation classes for various aspects of Web server application design, such as server filters, HTML data flow control, etc .;
- · The Java Virtual Machine is built into Internet Explorer so that Java Applets can run on Internet Explorer and can communicate with ActiveX controls through a scripting language.
- COM-based components for desktops are called ActiveX controls. The so-called ActiveX control is just a COM object that conforms to a certain standard and interacts with the client. The method of component-based application development is the same as the method of assembling electronic devices. You can build applications with the manufactured component parts. This is really a fascinating technology. Although it is profound, with the widespread application of ActiveX, more and more programming tools support the creation of ActiveX controls. This includes VB.
- ActiveX control:
- ActiveX control is a custom control that makes full use of ActiveX (COM-based) technology. It is designed based on the idea that it has nothing to do with the application. The goal is to provide an object-oriented, programming language-free, and can access each other between applications Object mechanism.
- ActiveX controls are independent software components built on the COM standard and provide user application interfaces to send corresponding events. Developers can intercept these events and perform corresponding functions. ActiveX control development end and user end are completely independent, and can be developed in various languages such as Delphi, VB, and can be used in different languages, different development platforms, and different system environments. One or more ActiveX controls are stored in a dynamic link library, but it is a special type of dynamic link library with the extension OCX.
- Composition of ActiveX controls
- An ActiveX control consists of some of its members: properties, methods, and events
- PME model
- Property
- Method
- Event
- · P: attribute is a parameter used to describe and reflect the characteristics of the object, used to save the object's data
- · M: Method is a procedure or function that can be called inside the control to complete a specific operation
- · E: An event is an action recognized by a VB predefined object.
- The difference between ActiveX and ActiveX controls
- ActiveX is not the same as ActiveX component. From the introduction above, we know that ActiveX is a mark of a wide family of technologies, and ActiveX controls are just a specific product of that family.
- 2.Component GIS
- Component software technology has become one of the current software technology trends. In order to adapt to this technology trend, GIS software, like other software, has undergone or is undergoing a revolutionary change, that is, all systems provided by manufacturers in the past or have secondary Development of functional software, transition to the direction of providing components for redevelopment by users themselves. Undoubtedly, the component GIS technology will have a huge impact on the entire GIS technology system and application mode.
- (1) Component GIS
- The basic idea is to divide the major functional modules of GIS into several controls, and each control completes different functions. Various GIS controls, as well as between GIS controls and other non-GIS controls, can be easily integrated through visual software development tools to form the final GIS application. Controls are the same pile of various building blocks, and they each implement different functions (including GIS and non-GIS functions). The "building blocks" that implement various functions are set up as needed to form an application system.
- (2) Characteristics of component GIS system
- Small, flexible and cheap
- · No special GIS development language, directly embedded in MIS development tools
- Powerful GIS functions
- · Simple and convenient development Abstracting the functions of GIS appropriately and using them as components for developers will bring many advantages unmatched by traditional GIS tools.
- More popular
- A), small and flexible, cheap
- Due to the closed nature of the traditional GIS structure, the software itself tends to become larger and larger, the interaction between different systems is poor, and the development of the system is difficult. Under the component model, each component centrally implements the system functions most closely related to itself, and users can select the required controls according to actual needs, which minimizes the user's financial burden. . The componentized GIS platform provides spatial data management capabilities centrally and can be connected to database systems in a flexible manner. Under the premise of ensuring the function, the system is small and flexible, and its price is only one tenth or even less of the traditional GIS development tools. In this way, users can obtain or develop GIS application systems with better performance-price ratio.
- B). No special GIS development language is required. Embed MIS development tools directly.
- Traditional GIS often has an independent secondary development language, and there is a learning burden for users and application developers. Moreover, using the secondary development language provided by the system, development is often limited and it is difficult to handle complex problems. However, component GIS is built on strict standards. No additional GIS secondary development language is required. It only needs to implement the basic functions of GIS and develop interfaces in accordance with Microsoft's ActiveX control standard. This will help reduce the burden on GIS software developers, and enhance the scalability of GIS software. Developers of GIS applications do not need to master additional GIS development languages. They only need to be familiar with the general integrated development environment based on the Windows platform and the properties, methods, and events of each GIS control to complete the development and integration of application systems. At present, there are many development environments to choose from, such as Visual C ++, Visual Basic, VisualFoxPro, Borland C ++, Delphi, C ++ Builder, and Power Builder, etc., which can directly become excellent development tools for GIS or GMIS, and their respective advantages can be fully Play. This is a qualitative leap compared to the traditional GIS specialized development environment.
- C), powerful GIS functions
- The new GIS components are based on a 32-bit system platform and use the direct calling form of InProc, so they are not inferior to traditional GIS software in terms of ability to manage big data and processing speed. Small GIS components can fully provide spatial processing capabilities such as stitching, cropping, overlapping, and buffering, and rich spatial query and analysis capabilities.
- D) Simple development
- Because GIS components can be directly embedded in MIS development tools, for the majority of developers, they can freely choose the development tools they are familiar with. In addition, the API form provided by the GIS component is very close to the MIS tool model. Developers can manage spatial data such as maps as well as database tables. No special training is required for developers. In the development process of GIS or GMIS, the quality and proficiency of developers are very important factors. This will enable a large number of MIS developers to transition to the development work of GIS or GMIS relatively quickly, thereby greatly accelerating the development of GIS.
- E), more popular
- Component technology has become the industry standard. Users can use GIS controls like other ActiveX controls, enabling non-professional ordinary users to develop and integrate GIS application systems, which has promoted the popularization of GIS. The emergence of component GIS makes GIS not only a professional analysis tool for experts, but also a visualization tool for ordinary users to manage geographic related data.
- (3) Structure of component GIS development platform
- The component GIS development platform can usually be designed as a three-level structure:
- Basic components: oriented to spatial data management, provides basic interactive processes, and can connect with database systems in a flexible manner;
- Advanced common components: Constructed from basic components, facing common functions, simplifying the user development process, such as display tool components, selection tool components, editing tool components, property browser components, and so on. The cooperative control messages between them are encapsulated. After this level of components are packaged, secondary development is easier. For example, an editing query system, if it is developed using the basic platform, a large amount of code needs to be written, and using advanced common components, only a few sentences are enough. For general functions;
- Industrial components: Abstract specific algorithms for industrial applications and solidify them into components to further accelerate the development process. Take GPS monitoring as an example. For GPS applications, in addition to general GIS functions such as map display and information query, specific application functions are required, such as dynamic target display, target lock, and trajectory display. After these GPS industry application functional components are packaged, the developer's work can be simplified to set the legend of the display target, the color of the track display, the locked target, and the method of calling and receiving data.
- (4) The composition of GIS components
- The model of GIS software contains several functional units:
- Spatial data acquisition
- Coordinate transformation
- Graphic editing
- data storage
- data query
- data analysis
- Cartographic representation
- .......
- It is conceivable that it is almost impossible to put all these functions in one control, and even the implementation will bring the low efficiency of the system. It can generally be considered that the design of GIS components mainly follows the requirements of the application field. For example, ESRI MapObjects are GIS components whose main goals are spatial data access, query, and mapping.
- (5) GIS component products
- Masterpieces of GIS components should first be MapObjects and MapX. Among them, MapObjects was launched by the world's largest GIS manufacturer ESRI (American Institute of Environmental Systems); MapX was launched by the well-known desktop GIS manufacturer MapInfo. There are also TITAN from Apollo Technology Group of Canada. The following table compares the main features of MapObjects and MapX.
- Application and evaluation
- Componentization of software has become the trend of software technology development. DCOM-based ActiveX component implementation has become a standard in the software industry. With the support of ActiveX on other non-Windows platforms in the future, ActiveX componentized GIS software systems will have a profound impact on the GIS architecture and the future application prospects of GIS.
- Although the use of GIS components has many advantages in development, inevitably there are some functional deficiencies and technical immaturities, mainly including the following aspects:
- · Compared with professional GIS client software, the use of component technology inevitably leads to relatively low efficiency, which is especially obvious when accessing large spatial data (such as remote sensing images with a large amount of data);
- · Limited amount of spatial data supported;
- · Supported functions are limited. Because they are components, they only cover some functions of the GIS system. Therefore, for special fields,
- It seems powerless;
- (6) MapInfo related technologies
- MapInfo Corporation and its products: The United States MapInfo Corporation is committed to providing users with advanced data visualization and information mapping technologies, and integrating these technologies with mainstream business systems to provide complete solutions. MapInfo has absorbed the essence of the traditional GIS system, and with the help of the development of computer technology, introduced the GIS concept from the dedicated workstations of medium and large computers to ordinary desktop PCs in time, creating a brand-new desktop map information system. MapInfo's main product lines are:
- MapInfo Professional Desktop Geographic Information System
- · Network Solution MapInfo ProSerev
- Database server product MapInfo SpatialWare
- GIS component: MapInfo ActiveX
- Development Tools MapInfo MapBasic
- Main technical characteristics:
- A), organize information in the form of Table
- Each table is a set of MapInfo files that make up a map file and a database file. To use MapInfo, you need user data and map files that make up the table. These files can come from MapInfo or be created by the user. To work in MapInfo, users must open one or more tables. MapInfo organically combines data and maps in the form of tables. When a user opens a data file in MI Pro, MI Pro creates a table. This table consists of at least two separate files, one is a file containing the data structure, and the other is a file containing the original data. A typical MapInfo table will mainly consist of * .tab, * .dat, * .wks, * .dbf, * .xls, * .map, * .id, * .ind file formats.
- B) Graphic objects
- MapInfo's built-in database management system is a relational database management system, and it also uses two-dimensional tables to organize data. Different from other relational databases, in addition to the common types of attribute columns in the table structure, a graphic object column (OBJ column) is also introduced to store graphic objects (such as lines and regions). MapInfo provides many graphic object operation interfaces, which can be used to generate and process various graphics.
- C) Map layering
- MapInfo organizes computer maps by layers. In other words, a computer map is processed into multiple layers of transparent layers. This transparent layer is called a layer. Each layer contains a different aspect of the entire map. For example, the first layer contains the province boundaries, the second layer represents the symbols of the provincial capital, and the third layer consists of labeled text, which is superimposed to form a complete map. When you create each layer, you must create a table for it. In this way, MapInfo establishes a connection between the table and the map.
- In other words, MapInfo is managed in the form of tables, and each table generally contains two parts: the map part and the database (attribute) part.
- D) Thematic map
- Provides a variety of data visualization thematic maps, which can intuitively analyze the information in the database. When using thematic rendering to display data on a map, you can clearly see patterns or trends that are difficult to find in the data record, providing a basis for user decisions. The thematic map includes six forms of range value, point density, histogram, grade symbol, pie chart and independent value.
- E) Built-in ODBC
- MapInfo has built-in ODBC, supports a variety of relational databases, and supports SQL queries, thereby ensuring the inheritance of the original database and access to remote databases. With spatial query function extensions (such as buffers, overlays, etc.) and online transaction processing using the latest technology of data warehouse OLAP (Online Analytical Processing), it provides a powerful means for applications to implement graphic queries and table queries.
- F), support multiple data formats and their conversion
- MapInfo not only supports the digitizer's graphic input method, directly generates vector graphics, but also supports popular graphic image formats on the market. Accepts AutoCAD DWG, DXF standard file formats, and can also interface with other software through MIF and MID files. The MIF file stores graphic information, and the MID file stores graphic attribute information. MIF and MID files are imported and generated through MapInfo menu commands Import and Export.
- G), secondary development tools MapBasic
- As a system software, MapInfo provides a method that can drive all its functions with a program, and built-in standard secondary development tools-MapBasic. MapBasic is not only consistent with the popular Basic syntax, but also has basically the same set of commonly used functions (calculation, string processing, file I / O, DLL calls, etc.), but also can use the functions, procedures and statement commands provided by the MapBasic language to complete many Complex operations and operations related to graphical object management. Its real advantage lies in the features and powerful functions provided by the management of Table and its graphic objects in MapInfo. Object-oriented and event-driven programming
- H), integrated secondary development capabilities
- With OLE and OLE Automation functions, you can easily use a variety of development tools such as Delphi, VB, VC, etc., to ensure that the new application is consistent with the original application interface, providing an expansion space for future deep development.