/*
gg_advanced.h -- Gaia common support for geometries: advanced
version 5.0, 2020 August 1
Author: Sandro Furieri a.furieri@lqt.it
------------------------------------------------------------------------------
Version: MPL 1.1/GPL 2.0/LGPL 2.1
The contents of this file are subject to the Mozilla Public License Version
1.1 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the
License.
The Original Code is the SpatiaLite library
The Initial Developer of the Original Code is Alessandro Furieri
Portions created by the Initial Developer are Copyright (C) 2008-2021
the Initial Developer. All Rights Reserved.
Contributor(s):
Alternatively, the contents of this file may be used under the terms of
either the GNU General Public License Version 2 or later (the "GPL"), or
the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
in which case the provisions of the GPL or the LGPL are applicable instead
of those above. If you wish to allow use of your version of this file only
under the terms of either the GPL or the LGPL, and not to allow others to
use your version of this file under the terms of the MPL, indicate your
decision by deleting the provisions above and replace them with the notice
and other provisions required by the GPL or the LGPL. If you do not delete
the provisions above, a recipient may use your version of this file under
the terms of any one of the MPL, the GPL or the LGPL.
*/
/*
CREDITS:
this module has been partly funded by:
Regione Toscana - Settore Sistema Informativo Territoriale ed Ambientale
(wrapping liblwgeom APIs)
*/
/**
\file gg_advanced.h
Geometry handling functions: advanced
*/
#ifndef _GG_ADVANCED_H
#ifndef DOXYGEN_SHOULD_SKIP_THIS
#define _GG_ADVANCED_H
#endif
/** Gaia-to-GEOS: all geometries */
#define GAIA2GEOS_ALL 0
/** Gaia-to-GEOS: only geometries of the Point type */
#define GAIA2GEOS_ONLY_POINTS 1
/** Gaia-to-GEOS: only geometries of the Linestring type */
#define GAIA2GEOS_ONLY_LINESTRINGS 2
/** Gaia-to-GEOS: only geometries of the Polygon type */
#define GAIA2GEOS_ONLY_POLYGONS 3
#ifdef __cplusplus
extern "C"
{
#endif
#if defined(_WIN32) && !defined(__MINGW32__)
#include <spatialite/gaiaconfig-msvc.h>
#else
#include <spatialite/gaiaconfig.h>
#endif
#ifndef OMIT_PROJ /* including PROJ */
/**
Resets the PROJ error messages to an empty state
\param p_cache a memory pointer returned by spatialite_alloc_connection()
\sa gaiaSetProjErrorMsg_r, gaiaGetProjErrorMsg_r
\note reentrant and thread-safe.
\remark \b PROJ.6 support required.
*/
GAIAGEO_DECLARE void gaiaResetProjErrorMsg_r (const void *p_cache);
/**
Set the current PROJ error message
\param p_cache a memory pointer returned by spatialite_alloc_connection()
\param msg the error message to be set.
\sa gaiaResetProjErrorMsg_r, gaiaGetProjErrorMsg_r
\note reentrant and thread-safe.
\remark \b PROJ.6 support required.
*/
GAIAGEO_DECLARE void gaiaSetProjErrorMsg_r (const void *p_cache,
const char *msg);
/**
Return the latest PROJ error message (if any)
\param p_cache a memory pointer returned by spatialite_alloc_connection()
\return the latest PROJ error message: an empty string if no error was
previoysly found.
\sa gaiaSetProjErrorMsg_r, gaiaResetProjErrorMsg_r
\note reentrant and thread-safe.
\remark \b PROJ.6 support required.
*/
GAIAGEO_DECLARE const char *gaiaGetProjErrorMsg_r (const void *p_cache);
/**
Sets the PATH leading to the private PROJ.6 database
\param p_cache a memory pointer returned by spatialite_alloc_connection()
\param path the pathname to be set
\return the currently set PATH leading to the private PROJ.6 database;
NULL if no PROJ database is defined.
\sa gaiaGetProjDatabasePath
\note reentrant and thread-safe.
\remark \b PROJ.6 support required.
*/
GAIAGEO_DECLARE const char *gaiaSetProjDatabasePath (const void *p_cache,
const char *path);
/**
Return the currently set PATH leading to the private PROJ.6 database
\param p_cache a memory pointer returned by spatialite_alloc_connection()
\return the currently set PATH leading to the private PROJ.6 database;
NULL if no PROJ database is defined.
\sa gaiaSetProjDatabasePath
\note reentrant and thread-safe.
\remark \b PROJ.6 support required.
*/
GAIAGEO_DECLARE const char *gaiaGetProjDatabasePath (const void *p_cache);
/**
Return the proj-string corresponding to a given CRS defined within
the private PROJ.6 database
\param p_cache a memory pointer returned by spatialite_alloc_connection()
\param auth_name if NULL will be interpreted as "EPSG"
\param auth_srid the intended CRS is identified by auth_name and auth_srid
\return the proj-string expression corresponding to the given CRS
NULL on failite.
\note you are responsible to destroy (before or after) any proj-string
returned by gaiaGetProjString()
\nreentrant and thread-safe.
\remark \b PROJ.6 support required.
*/
GAIAGEO_DECLARE char *gaiaGetProjString (const void *p_cache,
const char *auth_name,
int auth_srid);
/**
Return the WKT expression corresponding to a given CRS defined within
the private PROJ.6 database
\param p_cache a memory pointer returned by spatialite_alloc_connection()
\param auth_name if NULL will be interpreted as "EPSG"
\param auth_srid the intended CRS is identified by auth_name and auth_srid
\param style one between GAIA_PROJ_WKT_GDAL, GAIA_PROJ_WKT_ESRI,
GAIA_PROJ_WKT_ISO_2015 or GAIA_PROJ_WKT_ISO_2018 (this latter being the
default assumption).
\param indented if TRUE the WKT expression will be properly indented,
otherwise a solid string lacking any white space or new-line will be
printed.
\param indentation how many chars to be used for indenting (only
considered if indented is TRUE).
\return the WKT expression corresponding to the given CRS
NULL on failite.
\note you are responsible to destroy (before or after) any WKT string
returned by gaiaGetProjWKT()
\nreentrant and thread-safe.
\remark \b PROJ.6 support required.
*/
GAIAGEO_DECLARE char *gaiaGetProjWKT (const void *p_cache,
const char *auth_name,
int auth_srid, int style,
int indented, int indentation);
/**
Return the SRID corresponding to a given WKT expression (if any)
\param db_handle pointer to the current DB connection.
\param p_cache a memory pointer returned by spatialite_alloc_connection()
\param wkt the WKT expression to be evaluated.
\param srid on successful completion will point to the SRID value
matching the WKT expression.
\return 0 on failure: any other value on success
\remark \b PROJ.6 support required.
*/
GAIAGEO_DECLARE int gaiaGuessSridFromWKT (sqlite3 * db_handle,
const void *p_cache,
const char *wkt, int *srid);
/**
Converts and angle from Radians into Degrees
\param rads the angle measured in Radians.
\return the angle measured in Degrees.
\sa gaiaDegsToRads
\remark \b PROJ support required
*/
GAIAGEO_DECLARE double gaiaRadsToDegs (double rads);
/**
Converts and angle from Degrees into Radians
\param degs the angle measured in Degrees.
\return the angle measured in Radians.
\sa gaiaRadsToDegs
\remark \b PROJ support required
*/
GAIAGEO_DECLARE double gaiaDegsToRads (double degs);
/**
Tansforms a Geometry object into a different Reference System
[aka Reprojection]
\param org pointer to input Geometry object.
\param proj_from geodetic parameters string [PROJ.4 format] qualifying the
input Reference System
\param proj_to geodetic parameters string [PROJ.4 format] qualifying the
output Reference System
\return
没有合适的资源?快使用搜索试试~ 我知道了~
【QGIS跨平台编译】之【SpatiaLite跨平台编译】:Linux环境下编译成果(支撑QGIS跨平台编译,以及二次研发)
共32个文件
h:28个
so:2个
in:2个
0 下载量 196 浏览量
2024-02-11
19:12:09
上传
评论
收藏 5.66MB ZIP 举报
温馨提示
一、内容概况 QGIS是一个开源的、跨平台的地理信息系统(GIS)软件,用于浏览、编辑和分析地理空间数据,提供了一套丰富的功能,包括地图制作、空间分析、数据管理等。QGIS可以在Windows、Mac OS和Linux等操作系统上运行。 QGIS的跨平台编译需要一系列开源库的支持,本系列提供QGIS相关的编译成果。 本资源的内容为:基于Qt的SpatiaLite跨平台编译成果(Linux版本)。 二、使用人群 QGIS编译、QGIS跨平台编译的人员或研究者。 三、使用场景及目标 在Linux环境下使用。 既可以支撑QGIS在Linux环境下的编译工作,也可以进行SpatiaLite的二次研发。 四、其他说明 在Linux环境下,基于Qt Creator进行编译的SpatiaLite开源库。包含有头文件include、库文件so等,提供了Debug、Release版本。 当前采用的版本为spatialite-5.0.1,如果下载者,需要其他版本的SpatiaLite,请在评论区留言。
资源推荐
资源详情
资源评论
收起资源包目录
spatialite-Linux.zip (32个子文件)
include
spatialite
gaiaaux.h 16KB
gaiaconfig-msvc.h 2KB
gaia_topology.h 40KB
gaia_network.h 20KB
geojson.h 15KB
geopackage.h 7KB
debug.h 3KB
sqlite.h 2KB
gg_dynamic.h 13KB
sqlite3.h 2KB
gg_sequence.h 5KB
gg_xml.h 29KB
gg_dxf.h 28KB
gg_wfs.h 21KB
gg_structs.h 24KB
gg_formats.h 69KB
gaiaconfig-msvc.h.in 2KB
gaiaconfig.h 2KB
gg_const.h 18KB
gaiageo.h 2KB
gg_mbr.h 18KB
stored_procedures.h 21KB
gg_core.h 77KB
gaiaexif.h 19KB
spatialite_ext.h 3KB
gaiaconfig.h.in 2KB
gaiamatrix.h 9KB
control_points.h 8KB
gg_advanced.h 147KB
spatialite.h 81KB
lib
libspatialite.so 7.83MB
libspatialited.so 12.8MB
bin
共 32 条
- 1
资源评论
翰墨之道
- 粉丝: 3010
- 资源: 182
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功