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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ogrfeaturestyle.cpp

?? mitab,讀取MapInfo的地圖文件
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/******************************************************************************
 * $Id: ogrfeaturestyle.cpp 11399 2007-05-02 20:10:00Z warmerdam $
 *
 * Project:  OpenGIS Simple Features Reference Implementation
 * Purpose:  Feature Representation string API
 * Author:   Stephane Villeneuve, stephane.v@videotron.ca
 *
 ******************************************************************************
 * Copyright (c) 2000-2001, Stephane Villeneuve
 *
 * 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.
 ****************************************************************************/

#include "cpl_conv.h"
#include "cpl_string.h"
#include "ogr_feature.h"
#include "ogr_featurestyle.h"

CPL_CVSID("$Id: ogrfeaturestyle.cpp 11399 2007-05-02 20:10:00Z warmerdam $");

CPL_C_START
void OGRFeatureStylePuller() {}
CPL_C_END

/****************************************************************************/
/*                Class Parameter (used in the String)                      */
/*                                                                          */
/*      The order of all parameter MUST be the same than in the definition  */
/****************************************************************************/
OGRStyleParamId asStylePen[] = {{OGRSTPenColor,"c",FALSE,OGRSTypeString},
                                {OGRSTPenWidth,"w",TRUE,OGRSTypeDouble},
                                {OGRSTPenPattern,"p",TRUE,OGRSTypeString},
                                {OGRSTPenId,"id",FALSE,OGRSTypeString},
                                {OGRSTPenPerOffset,"dp",TRUE,OGRSTypeDouble},
                                {OGRSTPenCap,"cap",FALSE,OGRSTypeString},
                                {OGRSTPenJoin,"j",FALSE,OGRSTypeString},
                                {OGRSTPenPriority, "l", FALSE, OGRSTypeInteger
                                }};

OGRStyleParamId asStyleBrush[] = {{OGRSTBrushFColor,"fc",FALSE,OGRSTypeString},
                                {OGRSTBrushBColor,"bc",FALSE,OGRSTypeString},
                                {OGRSTBrushId,"id",FALSE,OGRSTypeString},
                                {OGRSTBrushAngle,"a",TRUE,OGRSTypeDouble},
                                {OGRSTBrushSize,"s",TRUE,OGRSTypeDouble},
                                {OGRSTBrushDx,"dx",TRUE,OGRSTypeDouble},
                                {OGRSTBrushDy,"dy",TRUE,OGRSTypeDouble},
                                {OGRSTBrushPriority,"l",FALSE,OGRSTypeInteger 
                                }};

OGRStyleParamId asStyleSymbol[] = 
{
    {OGRSTSymbolId,"id",FALSE,OGRSTypeString},
    {OGRSTSymbolAngle,"a",FALSE,OGRSTypeDouble},
    {OGRSTSymbolColor,"c",FALSE,OGRSTypeString},
    {OGRSTSymbolSize,"s",TRUE,OGRSTypeDouble},
    {OGRSTSymbolDx,"dx",TRUE,OGRSTypeDouble},
    {OGRSTSymbolDy,"dy",TRUE,OGRSTypeDouble},
    {OGRSTSymbolStep,"ds",TRUE,OGRSTypeDouble},
    {OGRSTSymbolPerp,"dp",TRUE,OGRSTypeDouble},
    {OGRSTSymbolOffset,"di",TRUE,OGRSTypeDouble},
    {OGRSTSymbolPriority,"l",FALSE,OGRSTypeInteger},
    {OGRSTSymbolFontName,"f",FALSE,OGRSTypeString}
};

OGRStyleParamId asStyleLabel[] = {{OGRSTLabelFontName,"f",FALSE,OGRSTypeString},
                                  {OGRSTLabelSize,"s",TRUE,OGRSTypeDouble},
                                  {OGRSTLabelTextString,"t",FALSE,
                                   OGRSTypeString},
                                  {OGRSTLabelAngle,"a",FALSE,OGRSTypeDouble},
                                  {OGRSTLabelFColor,"c",FALSE,OGRSTypeString},
                                  {OGRSTLabelBColor,"b",FALSE,OGRSTypeString},
                                  {OGRSTLabelPlacement,"m",FALSE,
                                   OGRSTypeString},
                                  {OGRSTLabelAnchor,"p",FALSE,OGRSTypeInteger},
                                  {OGRSTLabelDx,"dx",TRUE,OGRSTypeDouble},
                                  {OGRSTLabelDy,"dy",TRUE,OGRSTypeDouble},
                                  {OGRSTLabelPerp,"dp",TRUE,OGRSTypeDouble},
                                  {OGRSTLabelBold,"bo",FALSE,OGRSTypeBoolean},
                                  {OGRSTLabelItalic,"it",FALSE,OGRSTypeBoolean},
                                  {OGRSTLabelUnderline,"un",FALSE,
                                   OGRSTypeBoolean},
                                  {OGRSTLabelPriority,"l",FALSE,
                                   OGRSTypeInteger},
                                  {OGRSTLabelStrikeout,"st",FALSE,
                                   OGRSTypeBoolean},
                                  {OGRSTLabelStretch,"w",FALSE, OGRSTypeDouble},
                                  {OGRSTLabelAdjHor,"ah",FALSE,
                                   OGRSTypeString},
                                  {OGRSTLabelAdjVert,"av",FALSE,
                                   OGRSTypeString},
                                  {OGRSTLabelHColor,"h",FALSE,OGRSTypeString}
                                 };

OGRStyleParamId asStyleVector[] = {{OGRSTVectorId,"id",FALSE,OGRSTypeString},
                                  {OGRSTVectorNoCompress,"nc",FALSE,
                                   OGRSTypeInteger},
                                  {OGRSTVectorSprain,"sp",FALSE,
                                   OGRSTypeInteger},
                                  {OGRSTVectorNoSlope,"ns",FALSE,
                                   OGRSTypeInteger},
                                  {OGRSTVectorMirroring,"m",FALSE,
                                   OGRSTypeInteger},
                                  {OGRSTVectorCentering,"c",FALSE,
                                   OGRSTypeInteger},
                                  {OGRSTVectorPriority,"l",FALSE,
                                   OGRSTypeInteger}
                                 };

/* ======================================================================== */
/* OGRStyleMgr                                                              */
/* ======================================================================== */

/****************************************************************************/
/*             OGRStyleMgr::OGRStyleMgr(OGRStyleTable *poDataSetStyleTable) */
/*                                                                          */
/****************************************************************************/
OGRStyleMgr::OGRStyleMgr(OGRStyleTable *poDataSetStyleTable)
{
    m_poDataSetStyleTable = poDataSetStyleTable;
    m_pszStyleString = NULL;
}

/****************************************************************************/
/*             OGRStyleMgr::~OGRStyleMgr()                                  */
/*                                                                          */
/****************************************************************************/
OGRStyleMgr::~OGRStyleMgr()
{
    if ( m_pszStyleString )
        CPLFree(m_pszStyleString);
}

/****************************************************************************/
/*      GBool OGRStyleMgr::SetFeatureStyleString(OGRFeature *poFeature,     */
/*                                       char *pszStyleString,              */
/*                                       GBool bNoMatching)                 */
/*      Set the gived representation to the feature,                        */
/*      if bNoMatching == TRUE, don't try to find it in the styletable      */
/*      otherwize, we will use the name defined in the styletable           */
/****************************************************************************/
GBool OGRStyleMgr::SetFeatureStyleString(OGRFeature *poFeature, 
                                         const char *pszStyleString,
                                         GBool bNoMatching)
{
    const char *pszName;
    if (poFeature == FALSE)
      return FALSE;
    
    if (pszStyleString == NULL)
      poFeature->SetStyleString("");
    else if (bNoMatching == TRUE)
      poFeature->SetStyleString(pszStyleString);
    else if ((pszName = GetStyleName(pszStyleString)) != NULL)
      poFeature->SetStyleString(pszName);
    else
      poFeature->SetStyleString(pszStyleString);

    return TRUE;
}

/****************************************************************************/
/*            const char *OGRStyleMgr::InitFromFeature(OGRFeature *)        */
/*                                                                          */
/****************************************************************************/
const char *OGRStyleMgr::InitFromFeature(OGRFeature *poFeature)
{
    CPLFree(m_pszStyleString);
    m_pszStyleString = NULL;

    if (poFeature)
      InitStyleString(poFeature->GetStyleString());
    else
      m_pszStyleString = NULL;

    return m_pszStyleString;

}
/****************************************************************************/
/*            GBool OGRStyleMgr::InitStyleString(char *pszStyleString)      */
/*                                                                          */
/****************************************************************************/
GBool OGRStyleMgr::InitStyleString(const char *pszStyleString)
{
    CPLFree(m_pszStyleString);
    m_pszStyleString = NULL;

    if (pszStyleString && pszStyleString[0] == '@')
      m_pszStyleString = CPLStrdup(GetStyleByName(pszStyleString));
    else
      m_pszStyleString = NULL;

    if (m_pszStyleString == NULL && pszStyleString)
      m_pszStyleString = CPLStrdup(pszStyleString);
   

    
    return TRUE;
}    
/****************************************************************************/
/*      const char *OGRStyleMgr::GetStyleName(const char *pszStyleString)   */
/*                                                                          */
/****************************************************************************/
const char *OGRStyleMgr::GetStyleName(const char *pszStyleString)
{

    // SECURITY:  the unit and the value for all parameter should be the same,  
    // a text comparaison is executed .

    const char *pszStyle;

    if (pszStyleString)
      pszStyle = pszStyleString;
    else
      pszStyle = m_pszStyleString;

    if (pszStyle)
    {
        if (m_poDataSetStyleTable)
          return  m_poDataSetStyleTable->GetStyleName(pszStyle);
    }
    return NULL;
}
/****************************************************************************/
/*      const char *OGRStyleMgr::GetStyleByName(const char *pszStyleName)   */
/*                                                                          */
/****************************************************************************/
const char *OGRStyleMgr::GetStyleByName(const char *pszStyleName)
{    
    if (m_poDataSetStyleTable)
    {
        return  m_poDataSetStyleTable->Find(pszStyleName);
    }
    return NULL;
}
    
/****************************************************************************/
/*            GBool OGRStyleMgr::AddStyle(char *pszStyleName,               */
/*                                   char *pszStyleString)                  */
/*                                                                          */
/****************************************************************************/
GBool OGRStyleMgr::AddStyle(const char *pszStyleName, 
                            const char *pszStyleString)
{
    const char *pszStyle;

    if (pszStyleString)
      pszStyle = pszStyleString;
    else
      pszStyle = m_pszStyleString;

    if (m_poDataSetStyleTable)
    {
        return m_poDataSetStyleTable->AddStyle(pszStyleName, pszStyle);
    }
    return FALSE;
}
/****************************************************************************/
/*            const char *OGRStyleMgr::GetStyleString(OGRFeature *)         */
/*                                                                          */
/****************************************************************************/
const char *OGRStyleMgr::GetStyleString(OGRFeature *poFeature)
{
    if (poFeature == NULL)
      return m_pszStyleString;
    else
      return InitFromFeature(poFeature);
}

GBool OGRStyleMgr::AddPart(const char *pszPart)
{
    char *pszTmp; 
    if (pszPart)
    {
        if (m_pszStyleString)
        {
            pszTmp = CPLStrdup(CPLSPrintf("%s;%s",m_pszStyleString,
                                          pszPart));
            CPLFree(m_pszStyleString);
            m_pszStyleString = pszTmp;
        }
        else
        {
              pszTmp= CPLStrdup(CPLSPrintf("%s",pszPart));
              CPLFree(m_pszStyleString);
              m_pszStyleString = pszTmp;
        }
        return TRUE;
    }

    return FALSE;



}

/****************************************************************************/
/*            GBool OGRStyleMgr::AddPart(OGRStyleTool *)                    */
/*            Add a new part in the current style                           */
/****************************************************************************/
GBool OGRStyleMgr::AddPart(OGRStyleTool *poStyleTool)
{
    char *pszTmp;
    if (poStyleTool)
    {
        if (m_pszStyleString)
        {
            pszTmp = CPLStrdup(CPLSPrintf("%s;%s",m_pszStyleString,
                                        poStyleTool->GetStyleString()));
            CPLFree(m_pszStyleString);
            m_pszStyleString = pszTmp;
        }
        else
        {
              pszTmp= CPLStrdup(CPLSPrintf("%s",
                                        poStyleTool->GetStyleString()));
              CPLFree(m_pszStyleString);
              m_pszStyleString = pszTmp;
        }
        return TRUE;
    }

    return FALSE;
}
    

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
福利一区二区在线| 99久久国产综合精品麻豆| 一个色在线综合| 最新成人av在线| 亚洲国产成人在线| 国产精品国产三级国产普通话99 | 国产香蕉久久精品综合网| 91精品国产丝袜白色高跟鞋| 欧美久久一二三四区| 欧美福利视频一区| 日韩欧美色综合| 国产亚洲欧美色| 国产精品美女久久久久aⅴ| 国产精品成人在线观看| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲免费色视频| 亚洲成av人片一区二区梦乃| 日韩精品1区2区3区| 国产在线播精品第三| 丰满白嫩尤物一区二区| 91捆绑美女网站| 欧美日韩www| 久久久一区二区| 一级日本不卡的影视| 日韩电影免费在线看| 国产一区二区三区观看| 91网站最新网址| 日韩亚洲欧美一区二区三区| 国产精品欧美综合在线| 日日摸夜夜添夜夜添国产精品 | 欧美三级电影在线观看| 欧美精品黑人性xxxx| 久久亚洲春色中文字幕久久久| 国产精品乱码人人做人人爱| 亚洲3atv精品一区二区三区| 国产最新精品免费| 色狠狠一区二区| 久久久777精品电影网影网| 亚洲另类在线视频| 国产一区二区在线看| 欧美性生活大片视频| 国产日韩在线不卡| 美女一区二区视频| 在线免费不卡电影| 日本一区二区高清| 久久97超碰色| 欧美日韩国产一区| 国产精品嫩草影院av蜜臀| 美腿丝袜亚洲色图| 欧美丝袜第三区| 亚洲日本护士毛茸茸| 国产一区二区在线电影| 91精品在线免费观看| 一区二区三区日韩欧美| 国产99精品在线观看| 日韩欧美一区在线| 日韩va欧美va亚洲va久久| 91成人国产精品| 亚洲女爱视频在线| 成人a免费在线看| 亚洲精品一区二区三区四区高清| 天堂蜜桃91精品| 欧美日韩综合在线| 一区二区三区视频在线看| av电影一区二区| 国产精品嫩草99a| 波多野结衣亚洲一区| 欧美激情在线一区二区三区| 国产一区二区三区四区五区入口| 日韩欧美在线影院| 精品一区二区三区日韩| 欧美大片一区二区三区| 老司机精品视频线观看86| 欧美一区二区三区在线| 免费看欧美美女黄的网站| 欧美精品123区| 亚洲国产sm捆绑调教视频| 欧美亚洲禁片免费| 天天综合色天天| 欧美日韩免费视频| 喷白浆一区二区| 日韩欧美国产一区在线观看| 久久av中文字幕片| 国产欧美日韩视频一区二区| 国产成人综合在线播放| 中文字幕欧美一| 色婷婷国产精品| 日韩和欧美的一区| 精品成人免费观看| 成人夜色视频网站在线观看| 亚洲欧美在线观看| 欧美日韩一区精品| 久久精品国产久精国产爱| 久久欧美一区二区| 成人黄色a**站在线观看| 国产精品麻豆视频| 欧美喷潮久久久xxxxx| 韩日av一区二区| 国产精品国产馆在线真实露脸| 91麻豆蜜桃一区二区三区| 亚洲成人资源网| 日韩欧美国产一区二区三区| 丁香啪啪综合成人亚洲小说| 樱花影视一区二区| 日韩色视频在线观看| www.在线欧美| 日韩高清在线电影| 亚洲欧洲精品天堂一级| 欧美日韩国产综合一区二区三区| 国产一区二区三区国产| 亚洲欧美国产77777| 欧美精品日韩精品| 成人毛片在线观看| 日韩精品亚洲一区二区三区免费| 欧美国产精品一区二区三区| 欧美视频一二三区| caoporn国产一区二区| 久久精品国产在热久久| 国产精品电影一区二区三区| 日韩午夜激情av| 91欧美一区二区| 国产成人综合在线| 日韩av午夜在线观看| 亚洲天堂久久久久久久| 久久精品免费在线观看| 欧美精品久久久久久久多人混战| 成人av网站免费| 国产一区日韩二区欧美三区| 三级亚洲高清视频| 一个色综合网站| 亚洲日本va在线观看| 久久精品免视看| 欧美电影免费观看高清完整版在 | 欧美性色aⅴ视频一区日韩精品| 韩国精品主播一区二区在线观看| 亚洲午夜在线观看视频在线| 国产精品国产三级国产有无不卡 | 懂色av一区二区在线播放| 免费看黄色91| 首页欧美精品中文字幕| 夜夜嗨av一区二区三区网页 | 亚洲免费观看视频| 国产精品三级av| 国产蜜臀av在线一区二区三区| 日韩欧美国产三级电影视频| 91精品蜜臀在线一区尤物| 精品视频免费看| 欧美午夜电影一区| 一本一道综合狠狠老| 日本伦理一区二区| 日本乱人伦一区| 91久久奴性调教| 91行情网站电视在线观看高清版| 色综合欧美在线视频区| 91久久久免费一区二区| 欧美色爱综合网| 日韩写真欧美这视频| 日韩精品一区二区三区中文精品| 欧美一区二区三区视频| 欧美一区二区三区四区高清| 日韩精品一区在线| 久久久99精品久久| 亚洲日本在线观看| 亚洲成a人片在线观看中文| 日产精品久久久久久久性色| 首页综合国产亚洲丝袜| 狠狠色丁香婷婷综合| 国产suv精品一区二区883| 成人激情动漫在线观看| 欧洲一区二区av| 欧美一级精品大片| 久久久久久99久久久精品网站| 国产精品视频观看| 亚洲激情第一区| 蜜臀精品一区二区三区在线观看 | 欧美激情一区二区三区在线| 日韩一区在线免费观看| 一级做a爱片久久| 久久99精品久久久久久久久久久久 | 亚洲成人www| 精品一二三四区| 91亚洲精品乱码久久久久久蜜桃| 欧美性色aⅴ视频一区日韩精品| 欧美精品黑人性xxxx| 国产女主播视频一区二区| 一区二区三区四区激情| 韩国av一区二区三区在线观看| 成人综合在线观看| 7777精品伊人久久久大香线蕉最新版| 亚洲精品一线二线三线| 一区二区三区四区在线播放 | 一区二区免费看| 久久国产精品第一页| 不卡电影免费在线播放一区| 91精品国产91久久综合桃花| 中文字幕一区二区三区蜜月| 麻豆精品一区二区av白丝在线| 91在线视频观看| 久久一区二区三区四区| 性欧美疯狂xxxxbbbb|