====== TerraLib Developer's Guide ====== TerraLib is an open source GIS software library to support the development of customized geographical applications. It is written in C++ language and uses third-party libraries to provide typical GIS functions (e.g. geometry handling, image processing, spatial reference systems) and innovative functions and algorithms (e.g. spatio-temporal data processing). In this page you can find a set of resources useful to GIS developers, who can understand and program in C++ language and are interested in building their own GIS applications using TerraLib. ===== Downloading the Source Code and Building Instructions===== In this section you will find the instructions to obtain TerraLib source code, its organization and how to build the library in different programming environments, in order to start developing your applications. - [[:wiki:documentation:devguide:working_environment|Working Environment]] - [[:wiki:documentation:devguide:cloning|Cloning TerraLib/TerraView Repository]] - [[:wiki:documentation:devguide:branches_and_tags|Branches and Tags]] - [[:wiki:documentation:devguide:src_instructions|Source Code Instructions]] - [[:wiki:documentation:devguide:src_organization|Source Code Organization]] - [[:wiki:documentation:devguide:dependencies|Dependencies]] - [[:wiki:documentation:devguide:build|Build Instructions]] - [[:wiki:documentation:devguide:gitlab|Using GitLab]] - [[:wiki:documentation:devguide:fromwheretoget|Summary: From Where to Get What You Need]] ===== Libraries ===== TerraLib is organized in **modules** such that each contains everything necessary to execute only one aspect of a given functionality. This organization is expressed in the source code organization ((as shown in [[:wiki:documentation:devguide:src_organization|Source Code Organization]])). However, a module might be dependent on other TerraLib module and/or third-party libraries. The building tools ((as decribed in [[:wiki:documentation:devguide:build|Build Instructions]])) reflect the modules dependencies. This section will introduce you to the main core modules of TerraLib. ==== Core ==== * [[:wiki:documentation:devguide:core|Core]] * [[:wiki:documentation:devguide:srs_module|SRS]] * [[:wiki:documentation:devguide:geometry_module|Geometry]] * [[:wiki:documentation:devguide:data_access_module|Data Access]] * Vector Processing * Raster * Raster Processing ==== Data Access Drivers ==== * [[:wiki:documentation:devguide:data_access_module:drivers:postgis|PostGIS]] The link [[:wiki:documentation:devguide:overview|Modules]] gives you a general overview of all TerraLib modules and its dependencies. ===== Versioning ===== This topic discuss the [[:wiki:documentation:devguide:versioning|TerraLib's change management and control]]. ===== FAQ ===== * [[:wiki:documentation:devguide:terraview_faq|TerraView FAQ]] * [[:wiki:documentation:devguide:terralib_faq|TerraLib Programming FAQ]] ===== Other resources ===== * [[:wiki:documentation:devguide:tips|General Tips for Developers]] * [[:wiki:documentation:devguide:bugs|Reporting Bugs]] * [[:wiki:documentation:devguide:gitlab_ci|GitLab-CI]] * [[:wiki:documentation:devguide:jenkins|Jenkins]]