亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
波多野结衣中文字幕一区二区三区| 久久无码av三级| 一区二区三区四区中文字幕| 欧美年轻男男videosbes| 亚洲精品美国一| 欧美日本一区二区| 久久精品免费看| 亚洲国产成人在线| 91首页免费视频| 丝瓜av网站精品一区二区| 91精品国产综合久久福利软件| 毛片不卡一区二区| 国产视频一区二区三区在线观看 | 亚洲一区二区四区蜜桃| 欧美日韩国产一级| 精品一区二区三区免费毛片爱 | 91蜜桃视频在线| 日韩有码一区二区三区| 久久嫩草精品久久久精品| 成人精品高清在线| 日韩av午夜在线观看| 国产视频一区二区在线| 欧美少妇xxx| 精品一区二区三区免费视频| 综合久久久久综合| 日韩一区二区视频| 91香蕉视频污在线| 久久精品免费观看| 亚洲免费观看高清完整版在线观看 | 国产日韩综合av| 色噜噜狠狠色综合中国| 久久国产尿小便嘘嘘尿| 亚洲欧美日韩国产另类专区| 精品女同一区二区| 欧美亚洲国产一区在线观看网站 | 国产精品理论在线观看| 欧美日韩电影在线播放| 成人免费视频网站在线观看| 日韩成人av影视| 亚洲另类中文字| 久久蜜桃av一区二区天堂| 欧美一a一片一级一片| 国产成人免费视频一区| 日本不卡一二三| 伊人开心综合网| 国产精品久久夜| 久久只精品国产| 91麻豆精品国产91久久久 | 国产成人av电影免费在线观看| 亚洲电影第三页| 亚洲免费视频成人| 亚洲国产高清在线观看视频| 日韩欧美电影在线| 91.成人天堂一区| 91成人在线观看喷潮| a4yy欧美一区二区三区| 国产精品系列在线播放| 裸体歌舞表演一区二区| 丝袜美腿亚洲综合| 亚洲一区视频在线观看视频| 1区2区3区欧美| 中文字幕免费不卡| 亚洲国产精品精华液ab| 久久久www免费人成精品| 欧美电影精品一区二区| 日韩亚洲国产中文字幕欧美| 欧美日韩一区三区四区| 欧美自拍偷拍午夜视频| 色哦色哦哦色天天综合| 91美女视频网站| 色综合色狠狠综合色| 91性感美女视频| 91丨porny丨首页| 91亚洲精华国产精华精华液| 成人av片在线观看| 97超碰欧美中文字幕| 91偷拍与自偷拍精品| 99久久精品99国产精品| 色综合久久久久综合| 色综合久久久久网| 欧美在线观看你懂的| 欧美私人免费视频| 6080日韩午夜伦伦午夜伦| 欧美日韩国产色站一区二区三区| 欧美日韩在线一区二区| 欧美一级夜夜爽| 精品国产免费久久| 国产欧美综合在线观看第十页| 日本一区二区三区免费乱视频| 国产精品进线69影院| 亚洲欧美日韩国产另类专区| 亚洲成在人线在线播放| 免费观看一级欧美片| 国产九色sp调教91| 91在线视频在线| 欧美日韩一二三区| 精品成人私密视频| 国产精品电影院| 亚洲国产一二三| 毛片av一区二区| 成人爱爱电影网址| 欧美日韩视频第一区| 欧美mv和日韩mv的网站| 国产精品久久久久aaaa| 午夜精品福利久久久| 国产精品综合二区| 色综合色综合色综合| 日韩欧美中文字幕精品| 亚洲国产高清aⅴ视频| 亚洲成人资源网| 国产一区二区三区日韩| 在线区一区二视频| 精品福利av导航| 亚洲黄色片在线观看| 久久电影网电视剧免费观看| av在线综合网| 欧美一级免费观看| 国产精品视频一二| 秋霞国产午夜精品免费视频| 成人免费av在线| 3d动漫精品啪啪一区二区竹菊| 国产精品网站在线观看| 爽好久久久欧美精品| 福利一区福利二区| 69av一区二区三区| 18成人在线观看| 精彩视频一区二区| 欧美午夜精品理论片a级按摩| 国产三级精品三级| 热久久免费视频| 日本二三区不卡| 中国av一区二区三区| 久久国产夜色精品鲁鲁99| 欧美主播一区二区三区| 国产精品美女久久久久久久| 日本午夜一本久久久综合| 色哟哟欧美精品| 国产免费久久精品| 精品一区在线看| 51精品视频一区二区三区| 亚洲男人的天堂av| 国产成人午夜片在线观看高清观看| 欧美日韩国产免费一区二区| 国产精品国产三级国产aⅴ入口| 久久97超碰国产精品超碰| 欧美私人免费视频| 亚洲精品国产高清久久伦理二区| 国产69精品一区二区亚洲孕妇| 日韩三级.com| 日韩av一级片| 欧美电影一区二区| 三级一区在线视频先锋| 欧美亚洲国产一区二区三区va| 亚洲人成人一区二区在线观看| 高清在线成人网| 久久久精品黄色| 国产精品中文欧美| 久久青草欧美一区二区三区| 捆绑变态av一区二区三区| 欧美一二三四区在线| 免费久久99精品国产| 日韩一区二区三区视频在线 | 中文字幕日韩av资源站| 大胆亚洲人体视频| 国产精品毛片久久久久久 | 91亚洲精品久久久蜜桃| 国产精品久久久久久久第一福利| 丁香激情综合国产| 国产精品久久久久久户外露出| 波多野结衣中文字幕一区| 成人免费在线观看入口| 94-欧美-setu| 亚洲综合在线观看视频| 欧美三级视频在线观看| 亚洲成a人片综合在线| 欧美精选一区二区| 麻豆成人免费电影| 久久精品夜夜夜夜久久| 国产suv精品一区二区6| 亚洲日本成人在线观看| 在线免费不卡视频| 亚洲亚洲人成综合网络| 91精品国产色综合久久久蜜香臀| 蜜臀va亚洲va欧美va天堂| 精品福利一二区| 成人app网站| 亚洲永久免费视频| 欧美一区二区精品在线| 国产酒店精品激情| 亚洲特级片在线| 在线播放国产精品二区一二区四区 | 一区二区三区波多野结衣在线观看| 在线精品视频免费观看| 视频一区在线播放| 久久精品在线观看| 在线观看91视频| 九色综合狠狠综合久久| 国产精品久久久一本精品| 欧美日韩在线播放一区| 国产在线精品免费|