Text
This commit is contained in:
		@@ -4,10 +4,9 @@ category: Программирование
 | 
			
		||||
tags: программирование, cmake
 | 
			
		||||
summary: ""
 | 
			
		||||
CSS: table-100.css
 | 
			
		||||
documentclass: extarticle
 | 
			
		||||
monofont: Pragmata Pro
 | 
			
		||||
toc: yes
 | 
			
		||||
monofontoptions:
 | 
			
		||||
- Scale=0.7
 | 
			
		||||
- Scale=0.6
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -127,7 +126,7 @@ ORG, Inc.
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
В файле `cmake/etc/cpack_ignore.txt` перечислить шаблоны
 | 
			
		||||
для исключения из создаваемого целью `dist` архива. Например:
 | 
			
		||||
для исключения из архива, создаваемого целью `dist`. Например:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
cmake/lib/.git$
 | 
			
		||||
@@ -213,7 +212,7 @@ add_subdirectory(src/libcmex)
 | 
			
		||||
 | 
			
		||||
В каталоге `cmex/src/libcmex` нужно создать файл `cmex.hpp`:
 | 
			
		||||
 | 
			
		||||
```c
 | 
			
		||||
```cpp
 | 
			
		||||
#ifndef LIBCMEX_CMEX_HPP_
 | 
			
		||||
#define LIBCMEX_CMEX_HPP_
 | 
			
		||||
 | 
			
		||||
@@ -226,7 +225,7 @@ int32_t cmex_init(int32_t i);
 | 
			
		||||
 | 
			
		||||
файл `cmex.cpp`:
 | 
			
		||||
 | 
			
		||||
```c
 | 
			
		||||
```cpp
 | 
			
		||||
#include "cmex.hpp"
 | 
			
		||||
 | 
			
		||||
int32_t cmex_init(int32_t i = 0) {
 | 
			
		||||
@@ -430,12 +429,24 @@ target_link_libraries(${current_target} ${CMAKE_BINARY_DIR}/lib/libcmext.a)
 | 
			
		||||
 | 
			
		||||
#include "cmex.hpp"
 | 
			
		||||
 | 
			
		||||
QTextStream& qStdOut()
 | 
			
		||||
{
 | 
			
		||||
    static QTextStream ts(stdout);
 | 
			
		||||
    return ts;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, char **argv) {
 | 
			
		||||
	std::cout << CMEX_COMPILER_VERSION_MAJOR << std::endl;  // Значение из compiler_features.hpp
 | 
			
		||||
	std::cout << BUILD_TYPE << std::endl;                   // Значение из config.hpp
 | 
			
		||||
	std::cout << CMEX_VERSION_STR << std::endl;             // Значение из config.hpp
 | 
			
		||||
	std::cout << cmex_init(4) << std::endl;                 // Функция из внутренней библиотеки
 | 
			
		||||
	std::cout << cmext_init(9) << std::endl;                // Функция из внешней библиотеки
 | 
			
		||||
        // Значение из compiler_features.hpp
 | 
			
		||||
        qStdOut() << QObject::tr("Compiler version: ") << CMEX_COMPILER_VERSION_MAJOR << endl;
 | 
			
		||||
        // Значение из config.hpp
 | 
			
		||||
        qStdOut() << QObject::tr("Project version: ")  << CMEX_VERSION_STR            << endl;
 | 
			
		||||
        // Значение из config.hpp
 | 
			
		||||
        qStdOut() << QObject::tr("Build type: ")             << BUILD_TYPE            << endl;
 | 
			
		||||
        // Функция из внутренней библиотеки
 | 
			
		||||
        qStdOut() << QObject::tr("libcmex function call: ")  << cmex_init(4)          << endl;
 | 
			
		||||
        // Функция из внешней библиотеки
 | 
			
		||||
        qStdOut() << QObject::tr("libcmext function call: ") << cmext_init(9)         << endl;
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
@@ -482,6 +493,12 @@ target_link_libraries(${current_target} Qt5::Core)
 | 
			
		||||
 | 
			
		||||
#include "cmex.hpp"
 | 
			
		||||
 | 
			
		||||
QTextStream& qStdOut()
 | 
			
		||||
{
 | 
			
		||||
    static QTextStream ts(stdout);
 | 
			
		||||
    return ts;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, char **argv) {
 | 
			
		||||
	QCoreApplication app(argc, argv);
 | 
			
		||||
	QTranslator translator;
 | 
			
		||||
@@ -490,11 +507,17 @@ int main(int argc, char **argv) {
 | 
			
		||||
	{
 | 
			
		||||
		app.installTranslator(&translator);
 | 
			
		||||
	}
 | 
			
		||||
	std::cout << QObject::tr("Compiler version: ").toStdString()       << CMEX_COMPILER_VERSION_MAJOR << std::endl; // Значение из compiler_features.hpp
 | 
			
		||||
	std::cout << QObject::tr("Project version: ").toStdString()        << CMEX_VERSION_STR            << std::endl; // Значение из config.hpp
 | 
			
		||||
	std::cout << QObject::tr("Build type: ").toStdString()             << BUILD_TYPE                  << std::endl; // Значение из config.hpp
 | 
			
		||||
	std::cout << QObject::tr("libcmex function call: ").toStdString()  << cmex_init(4)                << std::endl; // Функция из внутренней библиотеки
 | 
			
		||||
	std::cout << QObject::tr("libcmext function call: ").toStdString() << cmext_init(9)               << std::endl; // Функция из внешней библиотеки
 | 
			
		||||
    // Значение из compiler_features.hpp
 | 
			
		||||
    qStdOut() << QObject::tr("Compiler version: ") << CMEX_COMPILER_VERSION_MAJOR << endl;
 | 
			
		||||
    // Значение из config.hpp
 | 
			
		||||
    qStdOut() << QObject::tr("Project version: ")  << CMEX_VERSION_STR            << endl;
 | 
			
		||||
    // Значение из config.hpp
 | 
			
		||||
    qStdOut() << QObject::tr("Build type: ")             << BUILD_TYPE            << endl;
 | 
			
		||||
    // Функция из внутренней библиотеки
 | 
			
		||||
    qStdOut() << QObject::tr("libcmex function call: ")  << cmex_init(4)          << endl;
 | 
			
		||||
    // Функция из внешней библиотеки
 | 
			
		||||
    qStdOut() << QObject::tr("libcmext function call: ") << cmext_init(9)         << endl;
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
@@ -589,6 +612,12 @@ MyMainWindow::~MyMainWindow() {
 | 
			
		||||
#include "cmex.hpp"
 | 
			
		||||
#include "my_main_window.hpp"
 | 
			
		||||
 | 
			
		||||
QTextStream& qStdOut()
 | 
			
		||||
{
 | 
			
		||||
    static QTextStream ts(stdout);
 | 
			
		||||
    return ts;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, char **argv) {
 | 
			
		||||
	QApplication app(argc, argv);
 | 
			
		||||
	QTranslator translator;
 | 
			
		||||
@@ -597,11 +626,17 @@ int main(int argc, char **argv) {
 | 
			
		||||
	{
 | 
			
		||||
		app.installTranslator(&translator);
 | 
			
		||||
	}
 | 
			
		||||
	std::cout << QObject::tr("Compiler version: ").toStdString()       << CMEX_COMPILER_VERSION_MAJOR << std::endl; // Значение из compiler_features.hpp
 | 
			
		||||
	std::cout << QObject::tr("Project version: ").toStdString()        << CMEX_VERSION_STR            << std::endl; // Значение из config.hpp
 | 
			
		||||
	std::cout << QObject::tr("Build type: ").toStdString()             << BUILD_TYPE                  << std::endl; // Значение из config.hpp
 | 
			
		||||
	std::cout << QObject::tr("libcmex function call: ").toStdString()  << cmex_init(4)                << std::endl; // Функция из внутренней библиотеки
 | 
			
		||||
	std::cout << QObject::tr("libcmext function call: ").toStdString() << cmext_init(9)               << std::endl; // Функция из внешней библиотеки
 | 
			
		||||
 | 
			
		||||
    // Значение из compiler_features.hpp
 | 
			
		||||
    qStdOut() << QObject::tr("Compiler version: ") << CMEX_COMPILER_VERSION_MAJOR << endl;
 | 
			
		||||
    // Значение из config.hpp
 | 
			
		||||
    qStdOut() << QObject::tr("Project version: ")  << CMEX_VERSION_STR            << endl;
 | 
			
		||||
    // Значение из config.hpp
 | 
			
		||||
    qStdOut() << QObject::tr("Build type: ")             << BUILD_TYPE            << endl;
 | 
			
		||||
    // Функция из внутренней библиотеки
 | 
			
		||||
    qStdOut() << QObject::tr("libcmex function call: ")  << cmex_init(4)          << endl;
 | 
			
		||||
    // Функция из внешней библиотеки
 | 
			
		||||
    qStdOut() << QObject::tr("libcmext function call: ") << cmext_init(9)         << endl;
 | 
			
		||||
 | 
			
		||||
	MyMainWindow* mmw = new MyMainWindow();
 | 
			
		||||
	mmw->show();
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										47
									
								
								wiki/Prog/GIS/Построение профиля местности в QGis.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								wiki/Prog/GIS/Построение профиля местности в QGis.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
---
 | 
			
		||||
title: "Построение профиля местности в QGis"
 | 
			
		||||
category: Картография
 | 
			
		||||
tags: картография, qgis, sxf, shp, gdal
 | 
			
		||||
summary: ""
 | 
			
		||||
...
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
1) В главном меню QGis **Слой** - **Добавить слой** - **Добавить векторный слой** выбрать и открыть файл с векторным слоем, например, `map.sxf`.
 | 
			
		||||
 | 
			
		||||
2) Среди слоёв выбрать слой с рельефом местности и типом геометрии `LineString`.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
3) На панели **Панель слоёв** правой кнопкой мыши щелкнуть на слое,
 | 
			
		||||
содержащем данные о высотах, и выбрать **Фильтр...**.
 | 
			
		||||
 | 
			
		||||
4) Построить выражение выбирающие только данные с высотами, например,
 | 
			
		||||
`"CLNAME" ILIKE '%ГОРИЗОНТАЛИ ОСНОВ%'` и нажить **OK**.
 | 
			
		||||
 | 
			
		||||
5) На панели **Панель слоёв** правой кнопкой мыши щелкнуть на слое,
 | 
			
		||||
содержащем данные о высотах, и выбрать **Сохранить как...**. Появишийся новый
 | 
			
		||||
слой **heights** следует удалить.
 | 
			
		||||
 | 
			
		||||
6) В появившемся диалоговом окне выбрать имя выходного файла, например, `heights`.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
7) В каталоге `/home/a/work/map` выполнить команду, которая в файле `heights.shp` из слоя `heights` берёт данные о высотах из
 | 
			
		||||
поля `SC_4` и генерирует матрицу высот размером 2000 на 2000 в формате BMP.
 | 
			
		||||
Настойки алгоритма посторения матрицы можно изменять с помощью параметра `-a`:
 | 
			
		||||
 | 
			
		||||
```sh
 | 
			
		||||
gdal_grid -a invdist:power=3.0:smoothing=1.0 -outsize 2000 2000 -of BMP -ot Byte -zfield SC_4 -l heights heights.shp heights.bmp
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
8) После построения матрицы её можно импортировать в QGis как растровый слой, для этого в главном меню QGis **Слой** - **Добавить слой** - **Добавить растровый слой** нужно выбрать и открыть файл `heights.bmp`. В результате на
 | 
			
		||||
панели **Панель слоёв** появится растровый слой **heights**.
 | 
			
		||||
 | 
			
		||||
9) С помощью модуля Profile Tool можно построить провиль местности. В главном
 | 
			
		||||
меню нужно выбрать **Модуль** - **Profile Tool** - **Terrain profile**.
 | 
			
		||||
 | 
			
		||||
10) На панели **Панель слоёв** нужно перенести растровый слой **heights** 
 | 
			
		||||
в конец списка, выделить его и на панели **Profile Tool** нажать **Add Layer**.
 | 
			
		||||
После этого на карте можно строить профили местности.
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
@@ -3,9 +3,6 @@ title: "Git: замена адреса подмодуля"
 | 
			
		||||
category: Программирование
 | 
			
		||||
tags: программирование, git
 | 
			
		||||
summary:
 | 
			
		||||
CSS: table-100.css
 | 
			
		||||
documentclass: extarticle
 | 
			
		||||
monofont: Pragmata Pro
 | 
			
		||||
monofontoptions:
 | 
			
		||||
- Scale=0.7
 | 
			
		||||
...
 | 
			
		||||
 
 | 
			
		||||
@@ -3,9 +3,6 @@ title: "Git: распаковка объекта"
 | 
			
		||||
category: Программирование
 | 
			
		||||
tags: программирование, git
 | 
			
		||||
summary:
 | 
			
		||||
CSS: table-100.css
 | 
			
		||||
documentclass: extarticle
 | 
			
		||||
monofont: Pragmata Pro
 | 
			
		||||
monofontoptions:
 | 
			
		||||
- Scale=0.7
 | 
			
		||||
...
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										4
									
								
								wiki/css/table-100.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								wiki/css/table-100.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
table {
 | 
			
		||||
	width: 100%
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								wiki/files/qgis-heights1.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								wiki/files/qgis-heights1.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 32 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								wiki/files/qgis-heights2.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								wiki/files/qgis-heights2.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 61 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								wiki/files/qgis-heights3.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								wiki/files/qgis-heights3.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 603 KiB  | 
		Reference in New Issue
	
	Block a user