TNB Library
クラス | 公開型 | 公開メンバ関数 | 限定公開メンバ関数 | 全メンバ一覧
CShapeFileTypePoint クラス

シェープファイル type Point 管理クラス [詳解]

#include <TnbShapeFile.h>

+ CShapeFileTypePoint の継承関係図

クラス

class  CPointRecordContent
 Point レコードコンテンツ [詳解]
 

公開型

typedef double Double
 符号付き64bitIEEE浮動小数点(8bytes) [詳解]
 
enum  EFieldKind {
  EK_String , EK_Integer , EK_Float , EK_Date ,
  EK_Invalid
}
 フィールド種類 [詳解]
 
enum  EFieldType {
  ET_Character = 'C' , ET_Date = 'D' , ET_Numeric = 'N' , ET_Floating = 'F' ,
  ET_Logical = 'L'
}
 フィールドタイプ [詳解]
 
typedef long Integer
 符号付き32bit整数(4bytes) [詳解]
 

公開メンバ関数

INDEX AddCharacterField (LPCTSTR lpszFieldName, size_t width)
 [追加] 文字フィールド追加. [詳解]
 
INDEX AddDateField (LPCTSTR lpszFieldName)
 [追加] 日付フィールド追加. [詳解]
 
INDEX AddField (const TFieldInfo &fi)
 [追加] フィールド追加. [詳解]
 
INDEX AddFloatingField (LPCTSTR lpszFieldName, size_t width, size_t dec=0)
 [追加] 数値フィールド追加. [詳解]
 
INDEX AddNumericField (LPCTSTR lpszFieldName, size_t width, size_t dec=0)
 [追加] 数値フィールド追加. [詳解]
 
INDEX AddRecord (void)
 [追加] レコード追加. [詳解]
 
void AllDelete (void)
 [削除] 全削除. [詳解]
 
bool AllDeleteRecord (void)
 [削除] レコード全削除. [詳解]
 
 CShapeFileTypePoint (void)
 コンストラクタ [詳解]
 
bool DeleteField (INDEX field)
 [削除] フィールド削除. [詳解]
 
bool DeleteRecord (INDEX record)
 [削除] レコード削除. [詳解]
 
INDEX FindFieldName (LPCTSTR lpszFieldName) const
 [検索] フィールド名検索 [詳解]
 
const TBoundingBoxGetBoundingBox (void) const
 [取得] バウンディングボックス取得. [詳解]
 
TDate GetDateRecord (INDEX record, INDEX field) const
 [取得] レコード日付取得. [詳解]
 
size_t GetFieldCount (void) const
 [取得] フィールド数取得 [詳解]
 
EFieldKind GetFieldInfo (TFieldInfo &_fi, INDEX field) const
 [取得] フィールド情報取得 [詳解]
 
double GetFloatRecord (INDEX record, INDEX field) const
 [取得] レコード実数取得. [詳解]
 
Integer GetHeadShapeType (void) const
 [取得] ヘッダシェープタイプ取得. [詳解]
 
int GetIntegerRecord (INDEX record, INDEX field) const
 [取得] レコード数値取得. [詳解]
 
const CPointRecordContentGetPointShapeRecord (INDEX record) const
 [取得] シェープコンテンツ取得. [詳解]
 
size_t GetRecordCount (void) const
 [取得] レコード数取得 [詳解]
 
const IRecordContentGetShapeRecord (INDEX record) const
 [取得] シェープコンテンツ取得. [詳解]
 
CStr GetStringRecord (INDEX record, INDEX field, bool isAdjust=false) const
 [取得] レコード文字列取得. [詳解]
 
bool InsertRecord (INDEX record)
 [挿入] レコード挿入. [詳解]
 
bool IsNullRecord (INDEX record, INDEX field) const
 [確認] レコードNULL確認 [詳解]
 
bool LoadFile (LPCTSTR lpszBaseFileName, bool withTypeCheck=true)
 [読込] ファイル読込み 保持している情報を破棄し、ファイルから読込みます。 [詳解]
 
bool LoadFile (LPCTSTR lpszFileName)
 [読込] DBFファイル読込み [詳解]
 
bool SaveFile (LPCTSTR lpszBaseFileName) const
 [作成] ファイル作成. [詳解]
 
void SetBoundingBox (const TBoundingBox &bb)
 [設定] バウンディングボックス設定. [詳解]
 
bool SetDateRecord (INDEX record, INDEX field, const TDate &date)
 [設定] レコード日付設定. [詳解]
 
bool SetFloatRecord (INDEX record, INDEX field, double value)
 [設定] レコード実数設定. [詳解]
 
void SetHeadShapeType (Integer type)
 [設定] ヘッダシェープタイプ設定. [詳解]
 
bool SetIntegerRecord (INDEX record, INDEX field, int value)
 [設定] レコード数値設定. [詳解]
 
bool SetNullRecord (INDEX record, INDEX field)
 [設定] レコードNULL設定. [詳解]
 
bool SetPointShapeRecord (INDEX record, Double x, Double y)
 [設定] ポイントシェープコンテンツ設定. [詳解]
 
bool SetShapeRecord (INDEX record, IRecordContent *P)
 [設定] シェープコンテンツ設定. [詳解]
 
bool SetStringRecord (INDEX record, INDEX field, LPCTSTR lpszString)
 [設定] レコード文字列設定. [詳解]
 

限定公開メンバ関数

void Dump (void)
 Traceダンプ [詳解]
 
virtual CShapeFile::IRecordContentLoadType (Integer type, const IReader &r, size_t sz)
 [通知] タイプ別読込み処理 [詳解]
 

詳解

シェープファイル type Point 管理クラス

ESRIジャパン株式会社の シェープファイルアクセスクラスです。

覚え書き
シェープタイプ1(ポイントシェープ)用のクラスです。
参照
使用方法は CShapeFile を参照。
必要ファイル
TnbShapeFile.h
日付
09/02/05 新規作成

TnbShapeFile.h686 行目に定義があります。

型定義メンバ詳解

◆ Double

typedef double Double
inherited

符号付き64bitIEEE浮動小数点(8bytes)

TnbShapeFile.h74 行目に定義があります。

◆ Integer

typedef long Integer
inherited

符号付き32bit整数(4bytes)

TnbShapeFile.h73 行目に定義があります。

列挙型メンバ詳解

◆ EFieldKind

enum EFieldKind
inherited

フィールド種類

列挙値
EK_String 

文字列

EK_Integer 

数値

EK_Float 

実数

EK_Date 

日付

EK_Invalid 

不正

TnbGrid.h37 行目に定義があります。

◆ EFieldType

enum EFieldType
inherited

フィールドタイプ

列挙値
ET_Character 

文字列

ET_Date 

年月日

ET_Numeric 

数値

ET_Floating 

浮動小数点数値

ET_Logical 

論理(?,Y,N,T,F)

TnbGrid.h47 行目に定義があります。

構築子と解体子

◆ CShapeFileTypePoint()

CShapeFileTypePoint ( void  )

コンストラクタ

TnbShapeFile.h775 行目に定義があります。

関数詳解

◆ AddCharacterField()

INDEX AddCharacterField ( LPCTSTR  lpszFieldName,
size_t  width 
)
inherited

[追加] 文字フィールド追加.

覚え書き
フィールド名が既存の場合、失敗します。
レコードがある場合、失敗します。
引数
lpszFieldNameフィールド名
widthフィールド幅
戻り値
INVALID_INDEX以外追加成功。値は追加したフィールドインデックス。
INVALID_INDEXフィールド追加失敗

TnbGrid.h214 行目に定義があります。

◆ AddDateField()

INDEX AddDateField ( LPCTSTR  lpszFieldName)
inherited

[追加] 日付フィールド追加.

覚え書き
フィールド名が既存の場合、失敗します。
レコードがある場合、失敗します。
引数
lpszFieldNameフィールド名
戻り値
INVALID_INDEX以外追加成功。値は追加したフィールドインデックス。
INVALID_INDEXフィールド追加失敗

TnbGrid.h270 行目に定義があります。

◆ AddField()

INDEX AddField ( const TFieldInfo fi)
inherited

[追加] フィールド追加.

覚え書き
フィールド名が既存の場合、失敗します。
レコードがある場合、失敗します。
引数
fiフィールド追加
戻り値
INVALID_INDEX以外追加成功。値は追加したフィールドインデックス。
INVALID_INDEXフィールド追加失敗

TnbGrid.h196 行目に定義があります。

◆ AddFloatingField()

INDEX AddFloatingField ( LPCTSTR  lpszFieldName,
size_t  width,
size_t  dec = 0 
)
inherited

[追加] 数値フィールド追加.

覚え書き
フィールド名が既存の場合、失敗します。
レコードがある場合、失敗します。  
指数形式で管理します。
引数
lpszFieldNameフィールド名
widthフィールド幅
dec小数点部幅。省略すると0になります。
戻り値
INVALID_INDEX以外追加成功。値は追加したフィールドインデックス。
INVALID_INDEXフィールド追加失敗

TnbGrid.h252 行目に定義があります。

◆ AddNumericField()

INDEX AddNumericField ( LPCTSTR  lpszFieldName,
size_t  width,
size_t  dec = 0 
)
inherited

[追加] 数値フィールド追加.

覚え書き
フィールド名が既存の場合、失敗します。
レコードがある場合、失敗します。  
小数形式で管理します。そのため、数値の範囲によりフィールド幅、小数点部幅を考慮する必要があります。
引数
lpszFieldNameフィールド名
widthフィールド幅
dec小数点部幅。省略すると0になります。
戻り値
INVALID_INDEX以外追加成功。値は追加したフィールドインデックス。
INVALID_INDEXフィールド追加失敗

TnbGrid.h231 行目に定義があります。

◆ AddRecord()

INDEX AddRecord ( void  )
inherited

[追加] レコード追加.

覚え書き
追加したレコードのシェイプコンテンツは「Null Shape」になっています。
追加したレコードの属性の全フィールドはNULLになっています。
戻り値
INVALID_INDEX以外追加成功。値は追加したレコードインデックス。
INVALID_INDEXレコード追加失敗

TnbShapeFile.h371 行目に定義があります。

◆ AllDelete()

void AllDelete ( void  )
inherited

[削除] 全削除.

覚え書き
レコードも全削除します。

TnbGrid.h129 行目に定義があります。

◆ AllDeleteRecord()

bool AllDeleteRecord ( void  )
inherited

[削除] レコード全削除.

戻り値
true成功
false失敗

TnbShapeFile.h358 行目に定義があります。

◆ DeleteField()

bool DeleteField ( INDEX  field)
inherited

[削除] フィールド削除.

覚え書き
レコードがある場合、失敗します。
引数
fieldフィールドインデックス
戻り値
true成功
false失敗

TnbGrid.h283 行目に定義があります。

◆ DeleteRecord()

bool DeleteRecord ( INDEX  record)
inherited

[削除] レコード削除.

引数
recordレコードインデックス
戻り値
true成功
false失敗

TnbShapeFile.h400 行目に定義があります。

◆ Dump()

void Dump ( void  )
protectedinherited

Traceダンプ

TnbShapeFile.h544 行目に定義があります。

◆ FindFieldName()

INDEX FindFieldName ( LPCTSTR  lpszFieldName) const
inherited

[検索] フィールド名検索

引数
lpszFieldNameフィールド名
戻り値
INVALID_INDEX以外発見。値はフィールドインデックス。
INVALID_INDEX見つからない

TnbGrid.h159 行目に定義があります。

◆ GetBoundingBox()

const TBoundingBox & GetBoundingBox ( void  ) const
inherited

[取得] バウンディングボックス取得.

戻り値
情報

TnbShapeFile.h348 行目に定義があります。

◆ GetDateRecord()

TDate GetDateRecord ( INDEX  record,
INDEX  field 
) const
inherited

[取得] レコード日付取得.

引数
recordレコードインデックス
fieldフィールドインデックス
戻り値
日付

TnbGrid.h604 行目に定義があります。

◆ GetFieldCount()

size_t GetFieldCount ( void  ) const
inherited

[取得] フィールド数取得

戻り値
フィールド数

TnbGrid.h139 行目に定義があります。

◆ GetFieldInfo()

EFieldKind GetFieldInfo ( TFieldInfo _fi,
INDEX  field 
) const
inherited

[取得] フィールド情報取得

引数
[out]_fiフィールド情報
[in]fieldフィードインデックス
戻り値
EK_Invalid以外取得成功。値は種類。
EK_Invalid失敗(インデックスが範囲外)。

TnbGrid.h178 行目に定義があります。

◆ GetFloatRecord()

double GetFloatRecord ( INDEX  record,
INDEX  field 
) const
inherited

[取得] レコード実数取得.

引数
recordレコードインデックス
fieldフィールドインデックス
戻り値
実数

TnbGrid.h580 行目に定義があります。

◆ GetHeadShapeType()

Integer GetHeadShapeType ( void  ) const
inherited

[取得] ヘッダシェープタイプ取得.

戻り値
type シェープタイプ

TnbShapeFile.h330 行目に定義があります。

◆ GetIntegerRecord()

int GetIntegerRecord ( INDEX  record,
INDEX  field 
) const
inherited

[取得] レコード数値取得.

引数
recordレコードインデックス
fieldフィールドインデックス
戻り値
数値

TnbGrid.h556 行目に定義があります。

◆ GetPointShapeRecord()

const CPointRecordContent * GetPointShapeRecord ( INDEX  record) const

[取得] シェープコンテンツ取得.

引数
recordレコードインデックス
戻り値
NULLインデックスが範囲外。
NULL以外レコードコンテンツの参照。

TnbShapeFile.h806 行目に定義があります。

◆ GetRecordCount()

size_t GetRecordCount ( void  ) const
inherited

[取得] レコード数取得

戻り値
レコード数

TnbGrid.h148 行目に定義があります。

◆ GetShapeRecord()

const IRecordContent * GetShapeRecord ( INDEX  record) const
inherited

[取得] シェープコンテンツ取得.

引数
recordレコードインデックス
戻り値
NULLインデックスが範囲外。
NULL以外レコードコンテンツの参照。

TnbShapeFile.h426 行目に定義があります。

◆ GetStringRecord()

CStr GetStringRecord ( INDEX  record,
INDEX  field,
bool  isAdjust = false 
) const
inherited

[取得] レコード文字列取得.

引数
recordレコードインデックス
fieldフィールドインデックス
isAdjusttrue ならフィールドの幅になるようにスペースでパディング、調整します。
戻り値
文字列

TnbGrid.h481 行目に定義があります。

◆ InsertRecord()

bool InsertRecord ( INDEX  record)
inherited

[挿入] レコード挿入.

覚え書き
挿入追加したレコードの全フィールドはNULLになっています。
引数
recordレコードインデックス。
戻り値
true成功
false失敗

TnbShapeFile.h386 行目に定義があります。

◆ IsNullRecord()

bool IsNullRecord ( INDEX  record,
INDEX  field 
) const
inherited

[確認] レコードNULL確認

引数
recordレコードインデックス
fieldフィールドインデックス
戻り値
trueNULL。フィールドインデックス、レコードインデックスが無効の場合も true が返ります。
false失敗

TnbGrid.h464 行目に定義があります。

◆ LoadFile() [1/2]

bool LoadFile ( LPCTSTR  lpszBaseFileName,
bool  withTypeCheck = true 
)
inherited

[読込] ファイル読込み 保持している情報を破棄し、ファイルから読込みます。

覚え書き
*.shp , *.shx , *.dbf から読み込みます。
引数
lpszBaseFileNameファイル名。拡張子はつけないでください。
withTypeChecktrueの場合、現在の GetHeadShapeType() で得られるタイプと異なるファイルはエラーになります。
戻り値
true成功
false失敗

TnbShapeFile.h440 行目に定義があります。

◆ LoadFile() [2/2]

bool LoadFile ( LPCTSTR  lpszFileName)
inherited

[読込] DBFファイル読込み

引数
lpszFileNameファイル名
戻り値
true成功
false失敗

TnbDBaseFile.h55 行目に定義があります。

◆ LoadType()

virtual CShapeFile::IRecordContent * LoadType ( Integer  type,
const IReader r,
size_t  sz 
)
protectedvirtual

[通知] タイプ別読込み処理

引数
typeタイプ
rリーダ。ファイルポインタは typeの直後になってます。
szr の読込み可能サイズ。
戻り値
NULLタイプが異なるので、読み込まなかった。
NULL以外r から読み込んでレコードコンテンツを new で作成したポインタを返す。

CShapeFileを再実装しています。

TnbShapeFile.h826 行目に定義があります。

◆ SaveFile()

bool SaveFile ( LPCTSTR  lpszBaseFileName) const
inherited

[作成] ファイル作成.

保持しているデータをファイルに書き出し.

覚え書き
*.shp , *.shx , *.dbf へ書き出します。
引数
lpszBaseFileNameファイル名。拡張子はつけないでください。
戻り値
true成功
false失敗

TnbShapeFile.h498 行目に定義があります。

◆ SetBoundingBox()

void SetBoundingBox ( const TBoundingBox bb)
inherited

[設定] バウンディングボックス設定.

引数
bb情報

TnbShapeFile.h339 行目に定義があります。

◆ SetDateRecord()

bool SetDateRecord ( INDEX  record,
INDEX  field,
const TDate date 
)
inherited

[設定] レコード日付設定.

覚え書き
日付のフィールド以外には設定できません。
引数
recordレコードインデックス
fieldフィールドインデックス
date日付
戻り値
true成功
false失敗

TnbGrid.h443 行目に定義があります。

◆ SetFloatRecord()

bool SetFloatRecord ( INDEX  record,
INDEX  field,
double  value 
)
inherited

[設定] レコード実数設定.

覚え書き
実数のフィールド以外には設定できません。
引数
recordレコードインデックス
fieldフィールドインデックス
value
戻り値
true成功
false失敗

TnbGrid.h420 行目に定義があります。

◆ SetHeadShapeType()

void SetHeadShapeType ( Integer  type)
inherited

[設定] ヘッダシェープタイプ設定.

引数
typeシェープタイプ

TnbShapeFile.h321 行目に定義があります。

◆ SetIntegerRecord()

bool SetIntegerRecord ( INDEX  record,
INDEX  field,
int  value 
)
inherited

[設定] レコード数値設定.

覚え書き
数値のフィールド以外には設定できません。
引数
recordレコードインデックス
fieldフィールドインデックス
value
戻り値
true成功
false失敗

TnbGrid.h397 行目に定義があります。

◆ SetNullRecord()

bool SetNullRecord ( INDEX  record,
INDEX  field 
)
inherited

[設定] レコードNULL設定.

引数
recordレコードインデックス
fieldフィールドインデックス
戻り値
true成功
false失敗

TnbGrid.h357 行目に定義があります。

◆ SetPointShapeRecord()

bool SetPointShapeRecord ( INDEX  record,
Double  x,
Double  y 
)

[設定] ポイントシェープコンテンツ設定.

引数
recordレコードインデックス
xX座標
yY座標
戻り値
NULLインデックスが範囲外。
NULL以外レコードコンテンツの参照。

TnbShapeFile.h788 行目に定義があります。

◆ SetShapeRecord()

bool SetShapeRecord ( INDEX  record,
IRecordContent P 
)
inherited

[設定] シェープコンテンツ設定.

引数
recordレコードインデックス
Pレコードコンテンツ。必ず new で作成したオブジェクトであること。
戻り値
NULLインデックスが範囲外。
NULL以外レコードコンテンツの参照。

TnbShapeFile.h415 行目に定義があります。

◆ SetStringRecord()

bool SetStringRecord ( INDEX  record,
INDEX  field,
LPCTSTR  lpszString 
)
inherited

[設定] レコード文字列設定.

覚え書き
文字列のフィールド以外にも設定可能です。
引数
recordレコードインデックス
fieldフィールドインデックス
lpszString文字列
戻り値
true成功
false失敗

TnbGrid.h377 行目に定義があります。