Make an advertisement first: My independent blog website is:Http://wuyouqiang.sinaapp.com/.
MeSina Weibo:Http://weibo.com/freshairbrucewoo.
You are welcome to exchange ideas and improve your technology together.
In fact, the difficulty of developing a project is not in terms of language. No matter which language you are trying to implement a project, can you actually complete a project, it depends on whether the project needs can be fully and in detail understood, and then the basis for understanding the needs is to grasp the industry-related knowledge. Only by figuring out the industry knowledge and related concepts, can we gain a deeper understanding, you can easily and happily complete the project. Otherwise, you can only work overtime andCodeThere is nothing to do. For the development of the project I explained, there were many new concepts for me at the time, and the first time I read the materials, I was not necessarily able to understand them, the functional requirements of the project can be grasped only by constantly reading more relevant information and in-depth understanding. The following is a summary of some ArcGIS data collected by you when learning related concepts and knowledge. These data are collected from the Internet, therefore, I would like to thank those selfless people who provide various learning materials on the Internet. Of course, I would like to share my learning and income with colleagues on the Internet.
1. ArcGIS Server Architecture
ArcGIS Server is an enterprise-level GIS application.ProgramThe integrated platform provides a framework for creating and configuring GIS applications and services to meet various client needs. This is an abstract description of ArcGIS Server, so what role does ArcGIS Server play in GIS applications?
People who have used ArcGIS desktop applications know that there are various GIS tools available in the desktop environment. For example, ArcMap and arcglobe can be used to display GIS data, and address locator can be used based on location addressing, you can use the geoprocessing tool of arctoolbox to analyze data. These include different levels of GIS functions. At the underlying level, ArcObjects is used to implement these functions.
From the perspective of ArcGIS Server, we no longer consider whether the data to be processed is the mxd document of ArcMAP, The 3DD document of arcglobe, or the Address locators, we use the concept of services to describe them. These services can be map services, globe services, geocode services, and GIS resources rely on these services, when you need to share a map on the GIS server, you can use the mxd of the map to define a map service. It can be seen that the purpose of ArcGIS Server is to host various services and provide these service resources for client applications. In addition, ArcGIS
Server provides a management program to control and manage services.
The ArcGIS Server architecture can be used to describe:
(1)GIS server
Host various GIS resources, such as maps, globes, and Address locators, and encapsulate them as services for client applications.
The GIS server consists of server ojbect Manager (SOM) and Server Object containers (SOCs ). It can be seen from the naming that one SOM and one or more SOC are used. The client sends a request to the som, and the SOM provides the allocated resources to the client and schedules and manages the SOC through the som.
(2)Web Server
The Web server includes the deployment of web applications and web services, all of which use service resources on the GIS server.
(3)Clients
The clients mentioned here are diverse. They can be web clients, mobile devices, Internet services connected to ArcGIS Server over HTTP, or ArcGIS desktop applications connected to ArcGIS Server local services over LAN/WAN.
(4)Data Server
It contains the GIS resources of the published services on the GIS server, which can be mxd documents, Geodatabase, toolbox, etc.
(5)Manager and arccatalog Administrators
Both of them can be used to publish and manage GIS resources as services. The difference is that one is to manage on the web page, and the other is on the desktop catalog. As shown in the figure, they are targeted at different levels.
(6)ArcGIS Desktop content authors
Various GIS resources need to be customized using various ArcGIS desktop software. If you need to generate a cache for the map service, you can use arccatalog to create a cache.
ArcGIS Engine is a set of cross-platform embedded ArcObjects, which is the underlying component of ArcGIS software products, used to build custom GIS and desktop graphics applications, or add new functions to the original applications. ArcGIS Engine Applications can be simple map browsers or custom GIS editing and analysis programs. Applications built using ArcGIS Engine can be map-centered or not, which is very important. This feature makes ArcGIS Engine particularly suitable for Building non-GIS-centered applications.
2. Use ArcGIS Engine to develop applications
(1) ArcGIS Engine Development Kit
Developers use the ArcGIS Engine Development Kit to build applications and distribute these programs to end users through the software license of ArcGIS Engine runtime. The ArcGIS Engine Development Kit includes resources that support various development tasks and provides an integrated help system and object model diagrams and examples for multiple application interfaces (APIS.
The ArcGIS Engine Development Kit provides a large number of ArcObjects components and visual controls for creating high-quality graphic user interfaces. These visual controls have multiple forms: ActiveX controls, JavaBeans, And. Net form controls. These controls can be used with other controls and components to create custom user interfaces, displays, and reports.
What can developers do with ArcGIS Engine?
As a developer, You can implement the following functions in the program:
A. display multi-layer maps, such as roads, rivers, and borders.
B. map roaming and scaling
C. identification element on Map
D. search for elements on a map
E. show aerial or Wei tablets
F. draw graphical elements, such as points, lines, circles, and polygon
G. draw descriptive text
H. select elements by line, selection box, area, polygon, and circle
I. select by element buffer
J. search for and select elements using structured query statements (SQL)
K. use the topic symbolic method to display elements, such as independent value charts, classification charts, and point density charts
L. dynamically display real-time or time series data
M. locate the street address or intersection
N. coordinate System for map data conversion
O. perform geometric operations on elements to generate a buffer, calculate different parts, search for intersections, and merge the elements.
P. modify the element shape or rotate the Map
q. create and update the geometric shapes and attributes of elements
r. operate personal and enterprise-level geodatabases
S. developed using ArcGIS Engine
Developers can select an integrated development environment (IDE) to create ArcGIS Engine applications, such as Windows programmers using Delphi and Visual Studio; Java programmers using JBuilder, eclipse, and Sun ONE studio. Developers register ArcGIS Engine development components in their IDE, create forms-based applications, add ArcGIS Engine Components, and write code to build application logic. For example, you can create a GIS-oriented application, add a map control, directory table control, and selected toolbar to your application. Although you can use advanced controls to create simple applications
ArcGIS Engine applications require knowledge of different object libraries.
(2) Developer Tools
ArcGIS is divided into three major collections:
(A) controls-controls are visualized user interface components of ArcGIS that can be embedded into your applications. For example, map controls and directory table controls can be added to custom programs to represent interactive maps.
(B) tool bar and tool-the tool bar contains a set of GIS tools used to interact with maps and geographic information. Such tools include roaming, scaling, recognition, and selection. The tool appears on the toolbar of the application interface. The tool simplifies the creation process of custom programs by providing a set of common functions. Developers can easily drag and drop the selected tool to their program interface.
(C) Object Library-the object library is the ArcObjects programming component of the logical grouping, ranging from space ry to plotting, GIS data source and Geodatabase. Programmers can use them in multi-platform ides to build simple to complex applications. These basic libraries used to build ArcGIS Desktop and ArcGIS Server can be used in common development environments (such as. net, C ++, Java, and COM ).
Deploy ArcGIS Engine Applications
Once the ArcGIS Engine Application is built, it can be installed in the ArcGIS Engine environment, which is embedded into the system to run the ArcGIS Engine application. The ArcGIS desktop environment has been installed.
3. What is ArcSDE?
ArcSDE is a geographical database server based on relational databases and is an extension of relational databases. It can run on Oracle, SQL Server, DB2, Informix, and other large databases. A triple architecture of Client/Server is formed with the database. ArcSDE is used to manage the sharing, security, maintenance, and data processing capabilities of geographic information data ArcGIS.
(1) ArcSDE is a geographic data transaction processing system.
We have mentioned data sharing and locking for many times to prevent data conflicts before they occur, but on the other hand, it brings great inconvenience to applications, in fact, the application locks some data and does not modify most of the data, or the modification does not produce a conflict. A transaction processing cycle is limited to the client connection cycle. Once the connection transaction is closed, it must be committed. This greatly limits its application. This article comes to GIS Park
For example, we may ask the geographic information system to answer questions such as "in case .....", "Yesterday ......" Question: Do we need to back up the entire data, and then modify the data to answer "in case ....." Or back up the entire data every day to prepare for the transfer to cope with "yesterday ......" .
For example, if the power project needs to be designed, we need to analyze the impact of the new project on the power system, but it cannot change the existing operating system data. And the design process is very long. If we need to know what kind of losses will occur if a device fails, it is impossible to destroy the device. Content from GIS Park
This requires the system to have long transaction processing capabilities. ArcSDE solves this series of problems through version management technology. The database can store data of multiple versions, but it is not a simple data backup. They only record the differences between data versions. There is a tree inheritance relationship between versions. Each version can be edited and run independently. A version conflict occurs only when it is submitted to its parent version. In this case, the system can use interactive means to resolve these conflicts. Either use the current version of data, conflict version data, or use the data before the conflict. Gispark.com
(2) ArcSDE is an efficient geographic data server.
With the powerful data query mechanism of the database, ArcSDE can achieve efficient concurrent access under multi-user conditions. ArcSDE adopts a spatial index mechanism different from general information systems.
We know that the amount of geographic information data is very large, but the processing or analysis of data is seldom targeted at the entire dataset, and the processing of the entire dataset is actually unable to speed up, in this case, the local file system may be more efficient than the database. Generally, we only operate on a subset or a record of a dataset. For example, we probably won't show all the buildings in the city on the computer screen. In fact, it doesn't make any sense. You can't see anything except the darkness, because the screen resolution and information processing capabilities of your brain are limited, you can only select a certain area to display it in a proper proportion.
In fact, we can see that spatial location is the key and unique index method of geographic data. That is to say, through the spatial index of ArcSDE, we can quickly find the data subsets of the specified region in the massive geographic data, which is the biggest difference between ArcSDE and pure databases.
In addition, ArcSDE uses integer quantization for spatial coordinates, and incremental compression storage and computing methods to reduce floating point operations, disk storage, and input/output. These are also the reasons why ArcSDE can quickly process geographic data.
ArcSDE uses the Client/Server mode, which transmits operation requests and responses over the network rather than the entire raw data, reducing network congestion.
ArcSDE is specially designed for multi-user concurrency. It adopts a multi-line architecture. The ArcSDE client API connects to the server through the TCP/IP Port and requests to open a data stream, the ArcSDE server starts another process to provide data services for this data stream until the client closes the data stream. In this way, each client does not need to wait for other client services to complete.
(3) ArcSDE is a secure geographic database.
ArcSDE uses the database technology and uses database security measures to make your geographic data safer and more secure. You can back up geographic data by backing up the database. You can also back up the data of ArcSDE through the data backup function of ArcSDE. The version management function of ArcSDE ensures that the system can restore to the defined data version at any time. ArcGIS is based on arcobject. arcobject is built based on COM technology and serves as the basis for all ArcGIS development activities, such as desktop development and server development. In general, application ArcGIS development includes the following aspects:
○ Set or customize ArcGIS applications, such as ArcMap;
○ Extended ArcGIS, such as developing your own toolbox or adding a new data model;
○ Use arcengine to develop fat client applications, for example, embedding GIS in other programs;
○ Use ArcGIS Server to create web programs or web services.
We have seen a lot about the relationship between Ao and ArcGIS series in various documents. I will not talk about it here. The core of all products is AO. The difference between ArcGIS Engine and ArcGIS Server is that the former provides medium-granularity controls for fat clients and servers, the latter development cannot use these controls. Readers who have developed the application of ArcGIS can find that many controls under arcengine, such as map and 3D display, exist in the system even if arcengine is not installed. We can speculate that, in ArcGIS 9. x, desktop should also use these controls (need to confirm !).
4. ArcGIS Desktop development type
○ Customize the layout and interface of ArcMap and arccatalog, including adding custom buttons and specifying corresponding macros;
○ Use VBA to create a solution;
○ Create ArcGIS extension;
○ Create an independent application (described later ).
(1) custom ArcGIS Desktop
Understanding Custom ArcGIS Desktop is similar to understanding the custom word in office. Taking ArcMap as an example, for a map document (mxd), it includes the following parts: the data used (that is, the data used by the map); the layout of the map; the interface layout (custom) of the current program and the VBA project. For a template, there is a difference between a normal template and a map template. The former affects the ArcMap program itself, that is, all open documents have a normal template applied, the latter only affects the map that uses the template. Therefore, the use of custom templates is the first layer of ArcGIS Desktop development. By combining the required interface elements and rescheduling them, you can form a custom program that meets the customer's needs, however, there is a lot of work that can be done by combining certain VBA code. For example, a courier company can integrate interface elements related to map operations (scaling, movement, printing, etc.) and network analysis with custom tools, hiding other tools and interface elements can be better applied to actual work.
(2) apply VBA
Application VBA development solutions have many advantages, such as the absence of third-party development tools, being simple and easy to use, and the absence of familiarity with the AO structure, using VBA is easier to use than using other methods. For non-professional programmers, using VBA should be the first choice for ArcGIS Desktop development. For Professional Developers, using VBA is also a good way to learn and be familiar with AO.
VBA project: the VBA project is the carrier of the VBA program and code in ArcGIS. It is saved together with the map template or map (mxd file. After the VBA editor is opened, there are two VBA projects: normal and the files currently open. A vba project consists of the following types of objects:
○ ArcMap object
○ Process Module
○ Form Module
○ Category modules
○ Reference (reference to the normal template)
For most development projects, you first need to use a custom interface, such as the create tool button. Then you can select this tool in the ArcMap object to create its event response process. For example, you can customize a button, uibuttoncontrol1, select uibuttoncontrol1 from the object selection list box in the thisdocumnet code window, select click in the event list box, and create uibuttoncontrol#click, you can write the code called after the button is clicked. You can create a custom dialog box or window through the form, and the class module can create its own objects. Compile ArcGIS Desktop extension to compile ArcGIS extension. You can complete the following tasks ():
\
○ Command: a button or menu, which is created through the icommand, itool, and itoolcommand interfaces;
○ Edit task: a component that works with ArcMap editor and must implement the iedittask interface;
○ Table of Contents tab: a small window similar to the left-side data and layer view. It is created through the icontentsview interface;
○ Class Extension: a custom object (feature), that is, a space object with its own attributes and rules, such as a traffic light object, a wire, or an electrical brake, which must implement interfaces such as iclassextension. Copyright gispark.com
(3) Application plug-in architecture
For the development of ArcGIS desktop, the most important core issue is to understand the running mechanism of the ArcGIS plug-in architecture. Below we will briefly introduce this problem.
The core of the plug-in architecture is that the application defines the interfaces that the plug-in follows, and then the custom components implement this interface. There are several key points:
First, how does the main application know to load the plug-in?
ArcGIS uses the Registry. Similar to MS Office, it creates a "component categories" entry in the registry. To load components by ArcGIS, you must register them, add an entry here. For the current majority. net programs and C or C ++ programs in the pre-com era, this is done through the directory, by traversing the files in the directory, and then through the reflection mechanism (.. net. The com program, such as the VB environment, can load a component through creatobject.
Second, plug-in Initialization
Initialization involves two aspects: on the one hand, the main program needs to create a variable, the type is the interface implemented by the plug-in, and then create the plug-in, and at the same time, call the plug-in Initialization code, such as connect, input a reference (APP) that requires the main program to be exposed to the plug-in ). Com programs or. NET are implemented through events. The main program triggers an initialization event, which is implemented in the plug-in code. The runtime environment of the plug-in is initialized Based on the sent variables. For an environment like C or C ++, you can use function pointers and callback functions to achieve this. The initialization process of the plug-in is the communication process between the plug-in and the main program. This bridge is the iapplication interface for ArcGIS.
Third, communication between plug-ins and Applications
In fact, the above is almost clear. For the main application, it is to create a plug-in object, obtain the current plug-in instance, and then control it. If the plug-in is a button, when the plug-in is initialized, a button object is created and the Click Event of the bound button is handled by the corresponding process of the plug-in. For plug-ins, the object instances such as the application of the current application are obtained by parameters of initialization events (such as oncreat or connect) during initialization, therefore, you can use these object instances to operate applications. For some state changes of the application, you can define events and then respond to these events in the plug-in code.
Fourth, user interface
The compilation of Microsoft Office com macro loading requires you to create user interface elements by calling the commandbar and other objects of office, which can be completely customized. For a program such as Photoshop, the plug-in program is completed using C or C ++, And the extension location is fixed at several fixed extension points. ArcGIS personally thinks that it is basically between the two. This article comes to GIS Park
Steps and methods for developing the ArcGIS extension module: Understand the plug-in architecture of ArcGIS. The development is mainly based on familiarity with AO, and develop specific applications using AO's functions, or Expand functions not provided by AO. The basic steps for developing an extension module are as follows:
(A) Create a project and add a reference to AO;
(B) Implement the required interface and add specific code;
(C) Compile it as a DLL, register the COM component, and register it in the omponent categories of ArcGIS (you can also use the custom dialog box on the page to browse and locate the specific DLL for registration );
(D) testing and debugging.
Currently, the extension development environment of ArcGIS Desktop includes the com compatible environment (such as VB or Vc), VB.net of. NET 1.1, or C #.
(4) independent applications
A gis application must implement basic map functions. Open the VB 6 or. NET development environment and you can see that controls such as map, pagelayout, TOC, and toolbar installed with ArcGIS Desktop are available. Only the map and pagelayout controls can be used (licensed) under desktop. Some programs can also be developed using this method, but ESRI recommends using ArcGIS Engine in embedded or fat client programs.
Summary
Familiar with the basic idea of ArcGIS Desktop development and the idea of plug-in architecture of ArcGIS Desktop, applying ArcGIS Desktop development is no longer a very complicated task. The next major job is to familiarize yourself with AO. In addition to object-oriented knowledge, many principles and knowledge of GIs are also necessary.
5. What is Geodatabase? About Geodatabase
What is Geodatabase? Geodatabase can be seen as a smart database for all the space data we process and use in the system. Physically, data is stored in the database management system (DBMS), which can be of various types, including:
Vector topology
Raster Networks
Addresses tins
Relationships and rules CAD
Metadata tables
The Geodatabase data model makes the real-world Spatial Data Objects closer to their logical data models. In Geodatabase, we no longer define simple spatial elements such as "points", "lines", and "planes" after traditional GIS abstracts spatial data, it is a familiar object in the application field, such as tower, knife gate, cable, road, construction, and land use. More importantly, Geodatabase allows us to implement the main operations of data objects without writing any program code. Most of the Operation behaviors can be completed through the definition of object Value domains, subtypes, rules, and other functions in the application framework provided by ArcInfo. For spatial objects that must be defined or extended in special applications, ArcInfo supports Industrial Standard Unified Modeling Language (UML) and CASE tools (such as: Visio
2000 enterprise), defines and extends data objects using CASE tools.
(6) ArcGIS Desktop Introduction
ArcGIS Desktop is a desktop software product of ArcGIS family. It provides information production and use tools for GIS professionals. With ArcGIS Desktop, You can implement any simple to complex GIS tasks, including plotting, geographic analysis, data editing, data management, visualization, and space processing. It can be purchased as three independent software products. Each product provides different levels of functionality:
• ArcView provides complex plotting, data usage, analysis, and simple data editing and space processing tools.
• In addition to all functions in ArcView, arceditor also provides advanced editing functions for shapefile and Geodatabase.
• ArcInfo is a full-featured flagship GIS desktop product. It extends the advanced space processing functions of ArcView and arceditor, as well as the traditional ArcInfo Workstation applications (such as Arc, arcplot, arcedit, and AML ).
ArcView, arceditor, and ArcInfo are only different in terms of functions, and their structures are unified, therefore, maps, data, symbols, map layers, custom tools and interfaces, reports, and metadata can be shared and exchanged among the three products. Users do not need to learn several different structural frameworks. This Quick Start is also applicable to the above three versions. Common applications, including ArcView, arceditor, and ArcInfo, include ArcMap and arccatalog. ArcMap is a major application in ArcGIS Desktop. It has all map-based functions, including map drawing, data analysis, and editing. ArcMap provides two types of map views: Data View and Layout View. In the data view, the layers can be symbolic, analyzed, and edited. In the layout view, you can print a map and add map elements, such as the scale, legend, and North pin.
Arccatalog is the resource manager for geographic data. It helps you organize and manage all your GIS information, such as maps, datasets, models, metadata, and services. It includes the following tools:
(1) Browse and search for geographical information.
(2) record, view, and manage metadata.
(3) Define, input, and output Geodatabase structures and designs.
(4) search for and find GIS data on the LAN and wide area networks.
(5) Manage ArcGIS Server.
GIS users use arccatalog to organize, manage, and use GIS data, and use standardized metadata to describe data. The GIS database administrator uses arccatalog to define and create a Geodatabase. The GIS server administrator uses arccatalog to manage the GIS server framework.
1. Overview
ArcGIS Server: Ao-based object server, which consists of GIS server and application developer framework (ADF). GIS server is composed of Server Object Manager (SOM) and Server Object iner (SOC; the ADF uses ao to build web applications and web services running on the GIS server. It mainly installs ArcGIS Server Object Manager & ArcGIS Server Object container, and first tries to configure it on the same machine, then installed on the Distributed System
2. Composition of ArcGIS Server Based on. NET Framework
GIS server -- SOM & Soc
Som-manages Windows Services on a unique host and manages service objects distributed on each Soc;
SOC-can be installed on multiple machines and is the host of the service object. Each SOC machine can generate multiple iner processes. One container processes can run multiple service objects, and the SOM iner processes is managed by som. (Each SOC machine requires an authorization file)
Web Applications
Web application developer framework -- runtime & software developer Kit
Runtime is installed on the Web server, and the SDK is installed on the Web application.
Mobile Application Developer framework
3. ArcGIS Server System Architecture:
GIS server-stores GIS resources and provides services for client applications, such as SOM and SOC.
Web Server -- Request web applications and web services from GIS server
Clients-client applications (Web browsers, mobile, desktop applications, etc.); Web browsers can connect to Web applications on Web servers, and desktop applications can connect to Web servers over HTTP, you can also directly connect to the Web server through LAN or WAN.
Data Server -- contains resources published on the GIS server (Map document, Address locators, Geodatabase, toolboxes, etc)
Manager and arccatalog administrators -- ArcGIS Server Manager, used to manage and publish Resource Services
ArcGIS Desktop content authors -- create GIS Resources
4. ArcGIS Server Configuration
The Web ADF runtime must be installed on the Web server machine. If you want to use it to create a desktop application, the Web ADF runtime should also be installed on all the machines running these applications;
ArcGIS Desktop Application can be used to create data or manage GIS server, but it can only be installed on Windows machines that can connect to GIS server through a local network;
Each som manages its own SOC cluster;
Socs can be installed on one or more machines. Each machine with SOC needs to be added to the SOM management list;
Web applications can also be used to manage GIS servers. Web applications include ArcGIS Server Manager applications and must be installed on Web server machines.
5. Configure the instance
ArcGIS Server is installed on a single machine: (ArcGIS Desktop can be installed on the same machine)
Multiple SOC (SOC does not have to be on the same machine as som)
Single web server machine (ArcGIS Desktop can be installed on any machine)
6. post installation
Configure GIS server: Create a GIS server account, specify the SOM account, password, SOC account, and password (both can be a local account or domain account, and the domain account must already exist ), the SOM account and SOC account on the machine with SOM must be the same as other SOC accounts;
Som account permission: Start container processes;
SOC account permissions: Write the system temp directory and run container proceses;
Create two new user groups: agsusers and agsadmin. assign different operating system users to different user groups and grant different permissions to access the GIS server. ArcGIS uses the operating system authentication to set the management or use permissions of different accounts on the GIS server.
GIS server authorization: the host on which the SOC is installed must have an authorization file to run the container processes.
Web application post install
Subsequent settings:
Restart your computer;
Set access permissions for the account of the GIS server (add to different groups );
Connect to the GIS server;
Add all SOC machines to the SOM management list;
Organize GIS data and set appropriate paths for reference to all SOC machines (the service data source on GIS server is the data source of ArcGIS Desktop );
Add a service for the GIS server and publish it to other users;
Create a client application or use ArcGIS Desktop to access the service. Once the service is published on GIS server, it can be used in web or desktop applications.
7. ArcGIS instances
Concept: it is a set of web server, GIS server, and a series of services and applications. By default, there is only one instance named ArcGIS, which can be customized. Instances can share the same web server or even the same Socs, but must be different som. In addition, the applications and services of different instances should be different.
Create an instance: Use donet "addinstance.exe under the ArcGIS installation directory to access the URL of Web Services: http: // <Server Name>/<Instance name>/services
8. Configure ArcGIS Server in Windows workgroup
-All users must be local users, and all accounts added to the agsusers or agsadmin group must also be local users;
-These local accounts must use the same user name and password on all machines;
-Change the local security default settings as follows: Control Panel-management tools-local security policies-Local Policies-Security Options-network access: sharing and security modes of Local Accounts (double-click, change to classic-Local User Authentication)