亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mitab_capi.cpp

?? mitab,讀取MapInfo的地圖文件
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/**********************************************************************
 * $Id: mitab_capi.cpp,v 1.44 2007/03/30 18:03:51 dmorissette Exp $
 *
 * Name:     mitab_capi.cpp
 * Project:  MapInfo TAB Read/Write library
 * Language: C++
 * Purpose:  Simple C access API.  Suitable for limited access
 *           to MITAB from an application able to call C style DLL
 *           entry points.
 * Author:   Frank Warmerdam, warmerdam@pobox.com
 *
 **********************************************************************
 * Copyright (c) 2000-2005, Frank Warmerdam
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included
 * in all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
 * DEALINGS IN THE SOFTWARE.
 **********************************************************************
 *
 * $Log: mitab_capi.cpp,v $
 * Revision 1.44  2007/03/30 18:03:51  dmorissette
 * Added mitab_c_set_quick_spatial_index_mode() to C API (bug 1669)
 *
 * Revision 1.43  2006/12/01 20:26:27  dmorissette
 * Added mitab_is_field_indexed() and mitab_is_field_unique() (bug 1621)
 *
 * Revision 1.42  2006/02/16 15:06:14  dmorissette
 * Removed line of junk at end of file
 *
 * Revision 1.41  2006/02/16 14:59:45  dmorissette
 * Added comments clarifying that adAffineParams arg is a 6 entries array
 *
 * Revision 1.40  2005/10/07 21:23:21  dmorissette
 * Return all zeros for collections in _mitab_c_get_feature_
 *
 * Revision 1.39  2005/10/07 19:09:02  dmorissette
 * A few fixes to Doxygen docs
 *
 * Revision 1.38  2005/10/07 18:49:40  dmorissette
 * Added methods for collections in C API (bug 1126)
 *
 * Revision 1.37  2005/09/29 20:09:52  dmorissette
 * New C API methods to access projection params (ADJ, bug 1155)
 *
 * Revision 1.36  2005/04/07 15:56:27  dmorissette
 * Added mitab_c_set_symbol_angle() and mitab_c_get_symbol_angle() for
 * point symbols of type TABFC_FontPoint (bug 1002)
 *
 * Revision 1.35  2004/07/08 00:00:54  dmorissette
 * Disabled mitab_c_get_extended_mif_coordsys_vb() until
 * mitab_c_get_extended_mif_coordsys() is re-enabled
 *
 * Revision 1.34  2004/07/07 21:51:35  dmorissette
 * Added mitab_c_get_mif_coordsys_vb() (patch from BVT)
 *
 * Revision 1.33  2004/06/30 20:05:34  dmorissette
 * Added mitab_c_load_coordsys_table() to C API (bug 469)
 *
 * Revision 1.32  2003/08/12 20:58:27  dmorissette
 * Check for nAffineFlag==1 in mitab_c_get_extended_mif_coordsys() - Anthony D.
 *
 * Revision 1.31  2003/08/12 20:20:33  dmorissette
 * Changes from Anthony Dunk, Encom:
 * - Added ability to create a feature of type TABFC_NoGeom
 * - Added mitab_c_get_feature_count(), mitab_c_get_field_as_double() and
 *   mitab_c_get_extended_mif_coordsys()
 *
 * Revision 1.30  2003/08/07 03:20:46  dmorissette
 * Added mitab_c_getlibversion() to C API. (Uffe K. - bug 21)
 *
 * Revision 1.29  2003/01/18 21:44:33  daniel
 * Added 'indexed' and 'unique' parameters to mitab_c_add_field().
 *
 * Revision 1.28  2003/01/18 20:43:31  daniel
 * Added support for writing NONE geometries via the C API
 *
 * Revision 1.27  2002/06/18 14:31:07  julien
 * Change a function name to be consistent with other function in mitab_capi
 * (mitab_c_region_isinteriorring become mitab_c_is_interior_ring)
 *
 * Revision 1.26  2002/06/17 15:00:30  julien
 * Add IsInteriorRing() function in TABRegion to validate if a ring is internal
 *
 * Revision 1.25  2002/05/21 15:28:49  daniel
 * Updated mitab_c_set_points() docs about controlling island/holes
 *
 * Revision 1.24  2002/05/16 14:12:53  julien
 * Add support for MultiPolygon in mitab_c_setpoint
 *
 * Revision 1.23  2002/05/10 20:54:56  daniel
 * Fixed crash in mitab_c_sef_font()... I was using an illegal type cast
 *
 * Revision 1.22  2002/05/08 21:37:40  daniel
 * Added FontPoint and CustomPoint in mitab_c_create_feature() and
 * mitab_c_set_points().  And (hopefully) fixed the STDCALL stuff.
 *
 * Revision 1.21  2002/05/08 20:02:03  daniel
 * Made mitab_c_set_font() and mitab_c_get_font() work for TABFC_FontPoint
 * and TABFC_CustomPoint.
 *
 * Revision 1.20  2002/05/03 15:09:14  daniel
 * Added mitab_c_get_field_width() and mitab_c_get_field_precision()
 *
 * Revision 1.19  2002/04/26 14:16:49  julien
 * Finishing the implementation of Multipoint (support for MIF)
 *
 * Revision 1.18  2002/03/26 19:27:43  daniel
 * Got rid of tabs in source
 *
 * Revision 1.17  2002/02/22 14:10:33  daniel
 * Restored mitab_c_set_arc() fix from v1.15 which had been overwritten.
 * Added a note about VB, Pascal, MapBasic in Doxygen docs introduction.
 *
 * Revision 1.16  2002/02/22 13:50:28  daniel
 * (From Bo Thomsen) New VB interface functions
 *
 * Revision 1.16  2002/02/20 12:35:00  bvt
 * Added alternative functions to fetch various strings for VB compatibility.
 * Functions has suffix _vb.
 *
 * Revision 1.15  2001/12/17 16:05:19  warmerda
 * set point geometry in mitab_c_set_arc() so validate will work
 *
 * Revision 1.14  2001/11/02 17:30:02  daniel
 * Added mitab_c_get/set_projinfo() and mitab_c_get_mif_coordsys().
 * Changed mitab_c_create() to make bounds optional and allow using default
 * projection bounds if available.
 *
 * Revision 1.13  2001/08/10 19:32:38  warmerda
 * check reference count before deleting spatial ref
 *
 * Revision 1.12  2001/07/02 20:03:28  daniel
 * Added mitab_c_get_text().
 *
 * Revision 1.11  2001/06/25 01:49:47  daniel
 * Added get methods for all pen, brush, font and symbol properties.
 *
 * Revision 1.10  2001/01/22 16:03:58  warmerda
 * expanded tabs
 *
 * Revision 1.9  2000/10/16 21:44:50  warmerda
 * added nonearth support
 *
 * Revision 1.8  2000/10/03 20:43:36  daniel
 * Added support for writing arcs,ellipses and rectangles in C API
 *
 * Revision 1.7  2000/04/21 13:37:59  daniel
 * Added doxygen file definition block
 *
 * Revision 1.6  2000/04/21 12:53:07  daniel
 * Added funcs to fetch feature coordinates and attributes + written docs
 *
 * Revision 1.5  2000/02/28 16:46:37  daniel
 * Removed style param to mitab_c_set_pen() since this param is actually
 * used inside the format to define pen width in points (version 450)
 *
 * Revision 1.4  2000/01/15 22:30:43  daniel
 * Switch to MIT/X-Consortium OpenSource license
 *
 * Revision 1.3  2000/01/14 21:58:40  warmerda
 * added error handling
 *
 * Revision 1.2  2000/01/14 16:33:24  warmerda
 * initial implementation complete
 *
 * Revision 1.1  2000/01/14 14:53:59  warmerda
 * New
 *
 */


/** \file mitab_capi.cpp
 *
 *  MITAB C API.
 *
 * The C wrapper functions contained in mitab_capi.cpp provide a much simpler
 * interface than the OGR-based C++ classes to the MITAB library to read and
 * write .TAB and .MIF files.
 *
 * To use the C API, simply #include "mitab_capi.h" and use the functions 
 * defined in mitab_capi.cpp.  
 *
 * See also mitabc_test.cpp which for examples of use of the C API.
 *
 * See contrib/README_VB.TXT in the MITAB source code distribution for
 * informations on using the MITAB C API from VB, Pascal, or MapBasic.
 *
 */

#include "mitab.h"
#include "mitab_capi.h"

static int _mitab_c_get_feature_info( mitab_feature feature, int what_info, 
                                      int *part, int *point, double *vertex );
#define INFO_NUMPARTS  0
#define INFO_NUMPOINTS 1
#define INFO_XVERTEX   2
#define INFO_YVERTEX   3


// Used in mitab_c_get_extended_mif_coordsys().
static const char sUnitsLookup[][20]=
{
    "mi",       // 0
    "km",       // 1
    "in",       // 2
    "ft",       // 3
    "yd",       // 4
    "mm",       // 5
    "cm",       // 6
    "m",        // 7
    "survey ft",// 8
    "nmi",      // 9
    "",         // 10
    "",         // 11
    "",         // 12
    "",         // 13
    "",         // 14
    "",         // 15
    "",         // 16
    "",         // 17
    "",         // 18
    "",         // 19
    "",         // 20
    "",         // 21
    "",         // 22
    "",         // 23
    "",         // 24
    "",         // 25
    "",         // 26
    "",         // 27
    "",         // 28
    "",         // 29
    "li",       // 30
    "ch",       // 31
    "rd"        // 32
};



/* ==================================================================== */
/*                   Error handling functions                           */
/* ==================================================================== */

/************************************************************************/
/*                       mitab_c_libversion()                           */
/************************************************************************/

/**
 * Returns the version of the library.
 * 
 * @return an integer representing the current version of the MITAB library
 * in the format xxxyyyzzz, e.g. returns 1002004 for v1.2.4.
 */

int MITAB_STDCALL
mitab_c_getlibversion()

{
    return MITAB_VERSION_INT;
}

/************************************************************************/
/*                       mitab_c_getlasterrorno()                       */
/************************************************************************/

/**
 * Fetch the last error number.
 *
 * This is the error number, not the error class.
 *
 * @return the error number of the last error to occur, or CPLE_None (0)
 * if there are no posted errors.
 */

int MITAB_STDCALL
mitab_c_getlasterrorno()

{
    return CPLGetLastErrorNo();
}

/************************************************************************/
/*                      mitab_c_getlasterrormsg()                       */
/************************************************************************/

/**
 * Get the last error message.
 *
 * Fetches the last error message posted with CPLError(), that hasn't
 * been cleared by CPLErrorReset().  The returned pointer is to an internal
 * string that should not be altered or freed.
 *
 * @return the last error message, or an empty string if there is no posted
 *         error message.
 */

const char * MITAB_STDCALL
mitab_c_getlasterrormsg()

{
    const char      *pszLastMessage = CPLGetLastErrorMsg();

    if( pszLastMessage == NULL )
        return "";
    else
        return pszLastMessage;
}

/************************************************************************/
/*                      mitab_c_getlasterrormsg_vb()                    */
/************************************************************************/

/**
 * Get the last error message (VB Version).
 *
 * Fetches the last error message posted with CPLError(), that hasn't
 * been cleared by CPLErrorReset().  The returned pointer is to an internal
 * string that should not be altered or freed.
 *
 * @param errormsg string buffer to return the last error message (will
 *         return an empty string if there is no posted error message).
 * @param l the maximum length of the errormessage string including 
 *         terminating null.
 * @return the length of the last error message, or zero if there is no posted
 *         error message.
 */

int MITAB_STDCALL 
mitab_c_getlasterrormsg_vb (char * errormsg, int l)

{
    strncpy (errormsg,CPLGetLastErrorMsg(),l); 
    return strlen(errormsg);
}


/* ==================================================================== */
/*                       C API Functions                                */
/* ==================================================================== */

/************************************************************************/
/*                            mitab_c_open()                            */
/************************************************************************/

/**
 * Open an existing .TAB or .MIF dataset for read access.
 *
 * The function automatically detects the format (.MIF or .TAB) of the 
 * specified file.
 *
 * Note that it is not possible to open a file for update (i.e. read+write)
 * with the current version of the library.
 *
 * @param pszFilename the complete filename (including extension .TAB or .MIF)
 *        of the file to open.
 * @return a valid mitab_handle, or NULL if the file could not be opened.
 */

mitab_handle MITAB_STDCALL
mitab_c_open( const char * pszFilename )

{
    CPLSetErrorHandler( CPLQuietErrorHandler );
    return (mitab_handle) IMapInfoFile::SmartOpen( pszFilename );
}

/************************************************************************/
/*                           mitab_c_close()                            */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区黄视频| 欧美日韩视频在线一区二区| 精品综合免费视频观看| 石原莉奈在线亚洲二区| 视频一区视频二区中文字幕| 午夜精品久久一牛影视| 视频一区二区不卡| 日本中文在线一区| 蜜臀精品久久久久久蜜臀| 免费视频最近日韩| 国产综合一区二区| 国产精品一区二区三区99| 国产成人精品免费在线| www.亚洲人| 91碰在线视频| 亚洲一区二区在线免费看| 亚洲一二三区在线观看| 五月激情综合色| 久久99久久久欧美国产| 国产精品99久久久| caoporn国产精品| 在线观看91视频| 欧美一区二区三区四区五区| 欧美mv日韩mv国产网站app| 久久久亚洲精华液精华液精华液 | 国产欧美精品一区二区色综合朱莉| 国产欧美一区二区精品秋霞影院| 日韩美女精品在线| 午夜精品久久久久久久99水蜜桃| 麻豆成人免费电影| 精品一二线国产| 成人理论电影网| 精品视频一区二区三区免费| 宅男噜噜噜66一区二区66| 久久婷婷国产综合国色天香| 国产精品麻豆久久久| 亚洲成人资源网| 国产美女在线观看一区| 91免费看视频| 日韩欧美精品在线视频| 中文字幕日本乱码精品影院| 亚洲国产精品一区二区尤物区| 久久国产精品99精品国产 | 777色狠狠一区二区三区| 2024国产精品| 亚洲精品videosex极品| 麻豆成人在线观看| 91麻豆精东视频| 久久精品av麻豆的观看方式| 国产xxx精品视频大全| 欧美视频在线播放| 国产亚洲精品超碰| 香蕉乱码成人久久天堂爱免费| 国产乱码精品一区二区三区av| 欧洲亚洲国产日韩| 国产欧美一区二区精品性| 亚洲午夜av在线| 成人午夜又粗又硬又大| 在线播放中文字幕一区| 中文字幕一区二区视频| 久久av资源网| 欧美三级电影在线观看| 日本一区二区免费在线观看视频| 亚欧色一区w666天堂| 成人爱爱电影网址| 精品动漫一区二区三区在线观看| 亚洲精选免费视频| 国产精品2024| 日韩欧美激情在线| 夜夜精品浪潮av一区二区三区| 国产剧情一区在线| 日韩欧美亚洲另类制服综合在线| 亚洲一区二区三区中文字幕| 国产91对白在线观看九色| 日韩免费在线观看| 亚洲一区二区三区四区的| 99精品欧美一区二区三区小说 | 国产精品免费视频网站| 蜜桃在线一区二区三区| 欧美日韩精品欧美日韩精品一| 亚洲天堂a在线| 风间由美性色一区二区三区| 日韩限制级电影在线观看| 亚洲成av人影院在线观看网| 91在线看国产| 中文字幕在线不卡视频| 高清视频一区二区| 国产河南妇女毛片精品久久久| 欧美日韩美少妇| 一区二区三区四区激情| 成人开心网精品视频| 久久亚洲精华国产精华液 | 国产日韩精品一区二区浪潮av | 在线视频你懂得一区| 国产欧美日韩在线看| 图片区日韩欧美亚洲| 99久久精品国产精品久久| 久久久久久亚洲综合| 日本成人在线电影网| 欧美性大战久久久久久久蜜臀| 中文字幕亚洲视频| 韩国一区二区三区| 国产亚洲成aⅴ人片在线观看| 蓝色福利精品导航| 欧美一级在线免费| 亚洲成av人片一区二区三区| 91福利视频在线| 亚洲欧美视频一区| 91在线播放网址| 亚洲人成网站在线| 99久久精品国产麻豆演员表| 日本一区二区三级电影在线观看| 国产一区二区三区黄视频| 精品美女在线观看| 视频一区欧美日韩| 精品捆绑美女sm三区| 久久99精品国产.久久久久久 | 国产美女视频一区| 欧美精品一区二区三区蜜桃| 蜜臀av一区二区在线免费观看 | 67194成人在线观看| 亚洲成人久久影院| 欧美日韩国产一区二区三区地区| 一区二区三区在线视频播放 | 久久亚洲捆绑美女| 成人国产精品免费观看动漫| 中国色在线观看另类| 99亚偷拍自图区亚洲| 亚洲色图在线播放| 一本一道久久a久久精品| 偷偷要91色婷婷| 精品国产区一区| 国产精品原创巨作av| 日韩精品一区在线观看| 成人免费av资源| 亚洲欧洲制服丝袜| 欧美高清性hdvideosex| 免费不卡在线视频| 欧美本精品男人aⅴ天堂| 日韩av一二三| 国产精品女同一区二区三区| 91丨九色porny丨蝌蚪| 亚洲综合在线免费观看| 91精品国产综合久久久久久久| 精品中文字幕一区二区小辣椒 | 亚洲欧美偷拍卡通变态| 欧美手机在线视频| 国产原创一区二区| 亚洲色图在线播放| 91精品欧美一区二区三区综合在| 国产呦萝稀缺另类资源| 亚洲桃色在线一区| 欧美一区二区三区喷汁尤物| 国产高清精品网站| 亚洲激情网站免费观看| 欧美一区二区高清| 成人精品视频一区| 亚洲成人免费看| 国产精品传媒在线| 制服.丝袜.亚洲.中文.综合| 国产成人在线观看| 香蕉乱码成人久久天堂爱免费| 精品国产一区二区亚洲人成毛片| 色综合久久久久综合体| 日本最新不卡在线| 成人免费小视频| 日韩精品一区二区三区蜜臀| 99精品热视频| 日本大胆欧美人术艺术动态| 亚洲你懂的在线视频| 日韩女优制服丝袜电影| 99精品在线免费| 久久99久久精品欧美| 一区二区三区在线观看网站| 国产亚洲精品福利| 在线观看91精品国产麻豆| 顶级嫩模精品视频在线看| 视频精品一区二区| 亚洲人妖av一区二区| 欧美精品久久一区| 99久久99久久精品国产片果冻| 麻豆精品精品国产自在97香蕉| 国产精品午夜在线观看| 日韩三级视频在线看| 91影院在线观看| 久久9热精品视频| 午夜激情久久久| 亚洲乱码国产乱码精品精98午夜| 精品国产乱码久久久久久影片| 色爱区综合激月婷婷| 99re这里只有精品首页| 国产乱子伦视频一区二区三区| 丝袜美腿高跟呻吟高潮一区| 最近中文字幕一区二区三区| 国产视频911| 国产日韩欧美a| 久久这里只有精品视频网| 91精品国产综合久久久久久| 欧美丝袜第三区| jiyouzz国产精品久久|