/************************************************************************
*
*
* C-Wrapper for GEOS library
*
* Copyright (C) 2010 2011 Sandro Santilli <strk@keybit.net>
* Copyright (C) 2005 Refractions Research Inc.
*
* This is free software; you can redistribute and/or modify it under
* the terms of the GNU Lesser General Public Licence as published
* by the Free Software Foundation.
* See the COPYING file for more information.
*
* Author: Sandro Santilli <strk@keybit.net>
*
***********************************************************************
*
* GENERAL NOTES:
*
* - Remember to call initGEOS() before any use of this library's
* functions, and call finishGEOS() when done.
*
* - Currently you have to explicitly GEOSGeom_destroy() all
* GEOSGeom objects to avoid memory leaks, and to GEOSFree()
* all returned char * (unless const).
*
* - Functions ending with _r are thread safe; see details in RFC 3
* http://trac.osgeo.org/geos/wiki/RFC3.
* To avoid using by accident non _r functions,
* define GEOS_USE_ONLY_R_API before including geos_c.h
*
***********************************************************************/
#ifndef GEOS_C_H_INCLUDED
#define GEOS_C_H_INCLUDED
#ifndef __cplusplus
# include <stddef.h> /* for size_t definition */
#else
# include <cstddef>
using std::size_t;
#endif
#ifdef __cplusplus
extern "C" {
#endif
/************************************************************************
*
* Version
*
***********************************************************************/
/*
* Following 'ifdef' hack fixes problem with generating geos_c.h on Windows,
* when building with Visual C++ compiler.
*
*/
#if defined(_MSC_VER)
#include <geos/version.h>
#define GEOS_CAPI_VERSION_MAJOR 1
#define GEOS_CAPI_VERSION_MINOR 10
#define GEOS_CAPI_VERSION_PATCH 5
#define GEOS_CAPI_VERSION "3.6.5-CAPI-1.10.5"
#else
#ifndef GEOS_VERSION_MAJOR
#define GEOS_VERSION_MAJOR 3
#endif
#ifndef GEOS_VERSION_MINOR
#define GEOS_VERSION_MINOR 6
#endif
#ifndef GEOS_VERSION_PATCH
#define GEOS_VERSION_PATCH 5
#endif
#ifndef GEOS_VERSION
#define GEOS_VERSION "3.6.5"
#endif
#ifndef GEOS_JTS_PORT
#define GEOS_JTS_PORT "1.13.0"
#endif
#define GEOS_CAPI_VERSION_MAJOR 1
#define GEOS_CAPI_VERSION_MINOR 10
#define GEOS_CAPI_VERSION_PATCH 5
#define GEOS_CAPI_VERSION "3.6.5-CAPI-1.10.5"
#endif
#define GEOS_CAPI_FIRST_INTERFACE GEOS_CAPI_VERSION_MAJOR
#define GEOS_CAPI_LAST_INTERFACE (GEOS_CAPI_VERSION_MAJOR+GEOS_CAPI_VERSION_MINOR)
/************************************************************************
*
* (Abstract) type definitions
*
************************************************************************/
typedef struct GEOSContextHandle_HS *GEOSContextHandle_t;
typedef void (*GEOSMessageHandler)(const char *fmt, ...);
/*
* A GEOS message handler function.
*
* @param message the message contents
* @param userdata the user data pointer that was passed to GEOS when registering this message handler.
*
*
* @see GEOSContext_setErrorMessageHandler
* @see GEOSContext_setNoticeMessageHandler
*/
typedef void (*GEOSMessageHandler_r)(const char *message, void *userdata);
/* When we're included by geos_c.cpp, those are #defined to the original
* JTS definitions via preprocessor. We don't touch them to allow the
* compiler to cross-check the declarations. However, for all "normal"
* C-API users, we need to define them as "opaque" struct pointers, as
* those clients don't have access to the original C++ headers, by design.
*/
#ifndef GEOSGeometry
typedef struct GEOSGeom_t GEOSGeometry;
typedef struct GEOSPrepGeom_t GEOSPreparedGeometry;
typedef struct GEOSCoordSeq_t GEOSCoordSequence;
typedef struct GEOSSTRtree_t GEOSSTRtree;
typedef struct GEOSBufParams_t GEOSBufferParams;
#endif
/* Those are compatibility definitions for source compatibility
* with GEOS 2.X clients relying on that type.
*/
typedef GEOSGeometry* GEOSGeom;
typedef GEOSCoordSequence* GEOSCoordSeq;
/* Supported geometry types
* This was renamed from GEOSGeomTypeId in GEOS 2.2.X, which might
* break compatibility, this issue is still under investigation.
*/
enum GEOSGeomTypes {
GEOS_POINT,
GEOS_LINESTRING,
GEOS_LINEARRING,
GEOS_POLYGON,
GEOS_MULTIPOINT,
GEOS_MULTILINESTRING,
GEOS_MULTIPOLYGON,
GEOS_GEOMETRYCOLLECTION
};
/* Byte oders exposed via the c api */
enum GEOSByteOrders {
GEOS_WKB_XDR = 0, /* Big Endian */
GEOS_WKB_NDR = 1 /* Little Endian */
};
typedef void (*GEOSQueryCallback)(void *item, void *userdata);
typedef int (*GEOSDistanceCallback)(const void *item1, const void* item2, double* distance, void* userdata);
/************************************************************************
*
* Initialization, cleanup, version
*
***********************************************************************/
#include <geos/export.h>
/*
* Register an interruption checking callback
*
* The callback will be invoked _before_ checking for
* interruption, so can be used to request it.
*/
typedef void (GEOSInterruptCallback)();
extern GEOSInterruptCallback GEOS_DLL *GEOS_interruptRegisterCallback(GEOSInterruptCallback* cb);
/* Request safe interruption of operations */
extern void GEOS_DLL GEOS_interruptRequest();
/* Cancel a pending interruption request */
extern void GEOS_DLL GEOS_interruptCancel();
/*
* @deprecated in 3.5.0
* initialize using GEOS_init_r() and set the message handlers using
* GEOSContext_setNoticeHandler_r and/or GEOSContext_setErrorHandler_r
*/
extern GEOSContextHandle_t GEOS_DLL initGEOS_r(
GEOSMessageHandler notice_function,
GEOSMessageHandler error_function);
/*
* @deprecated in 3.5.0 replaced by GEOS_finish_r.
*/
extern void GEOS_DLL finishGEOS_r(GEOSContextHandle_t handle);
extern GEOSContextHandle_t GEOS_DLL GEOS_init_r();
extern void GEOS_DLL GEOS_finish_r(GEOSContextHandle_t handle);
extern GEOSMessageHandler GEOS_DLL GEOSContext_setNoticeHandler_r(GEOSContextHandle_t extHandle,
GEOSMessageHandler nf);
extern GEOSMessageHandler GEOS_DLL GEOSContext_setErrorHandler_r(GEOSContextHandle_t extHandle,
GEOSMessageHandler ef);
/*
* Sets a notice message handler on the given GEOS context.
*
* @param extHandle the GEOS context
* @param nf the message handler
* @param userData optional user data pointer that will be passed to the message handler
*
* @return the previously configured message handler or NULL if no message handler was configured
*/
extern GEOSMessageHandler_r GEOS_DLL GEOSContext_setNoticeMessageHandler_r(GEOSContextHandle_t extHandle,
GEOSMessageHandler_r nf,
void *userData);
/*
* Sets an error message handler on the given GEOS context.
*
* @param extHandle the GEOS context
* @param ef the message handler
* @param userData optional user data pointer that will be passed to the message handler
*
* @return the previously configured message handler or NULL if no message handler was configured
*/
extern GEOSMessageHandler_r GEOS_DLL GEOSContext_setErrorMessageHandler_r(GEOSContextHandle_t extHandle,
GEOSMessageHandler_r ef,
void *userData);
extern const char GEOS_DLL *GEOSversion();
/************************************************************************
*
* NOTE - These functions are DEPRECATED. Please use the new
没有合适的资源?快使用搜索试试~ 我知道了~
GEOS-3.6.5-SDK-x64-vs2010.zip

共391个文件
h:366个
inl:17个
lib:3个

需积分: 1 0 下载量 188 浏览量
2024-07-21
23:58:48
上传
评论
收藏 10.86MB ZIP 举报
温馨提示
1、GEOS3.6.5源码编译的SDK 2、Visual Studo 2010环境下编译的64位开发库
资源推荐
资源详情
资源评论
















收起资源包目录





































































































共 391 条
- 1
- 2
- 3
- 4
资源评论


零度百事
- 粉丝: 374
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 电子商务顶岗实习报告15篇(1).doc
- 探究大数据环境下工程造价管理策略(1).docx
- 基于MOOC的高校教师信息化教学能力提升的混合模式探究(1).docx
- 高职院校公共计算机教学实效性提升的对策研究(1).docx
- 基于Struts2的图书管理系统的实现毕业设计论文(1).doc
- SDH数字微波接力通信系统项目安全评估报告(1).docx
- 计算机教学中如何实施创新教育研究(1).docx
- 互联网企业集体职工协议书(1).docx
- 把握用户从众心理让营销型网站建设效果更佳(1).doc
- 基于Access图书管理信息系统.docx
- 互联网背景下党校档案工作信息化建设研究(1).docx
- 2019年计算机专业教学工作总结范文(1).doc
- Git教程:分布式版本控制系统详解与操作指南
- 会计实务:EXCEL使用技巧(1)(1).doc
- 2023年份自学考试计算机网络原理答案(1).doc
- 欣方呼叫中心使用手册---托管式话务员级web管理手册v1.0(1).doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
