|
TNB Library
|
シェープファイル管理クラス [詳解]
#include <TnbShapeFile.h>
CShapeFile の継承関係図クラス | |
| class | CBeInteger |
| ビックエンディアンINTEGER. [詳解] | |
| class | CNullShapeRecordContent |
| NULL SHAPE レコードコンテンツ [詳解] | |
| class | CUnknownRecordContent |
| 不明 レコードコンテンツ [詳解] | |
| struct | IRecordContent |
| レコードコンテンツ抽象クラス. [詳解] | |
| struct | TBoundingBox |
| バウンディングボックス型. [詳解] | |
| struct | THead |
| ファイルヘッダ型. [詳解] | |
公開型 | |
| 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) |
| [削除] レコード全削除. [詳解] | |
| CShapeFile (void) | |
| コンストラクタ [詳解] | |
| bool | DeleteField (INDEX field) |
| [削除] フィールド削除. [詳解] | |
| bool | DeleteRecord (INDEX record) |
| [削除] レコード削除. [詳解] | |
| INDEX | FindFieldName (LPCTSTR lpszFieldName) const |
| [検索] フィールド名検索 [詳解] | |
| const TBoundingBox & | GetBoundingBox (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 |
| [取得] レコード数値取得. [詳解] | |
| size_t | GetRecordCount (void) const |
| [取得] レコード数取得 [詳解] | |
| const IRecordContent * | GetShapeRecord (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 | SetShapeRecord (INDEX record, IRecordContent *P) |
| [設定] シェープコンテンツ設定. [詳解] | |
| bool | SetStringRecord (INDEX record, INDEX field, LPCTSTR lpszString) |
| [設定] レコード文字列設定. [詳解] | |
限定公開メンバ関数 | |
| void | Dump (void) |
| Traceダンプ [詳解] | |
| virtual CShapeFile::IRecordContent * | LoadType (Integer type, const IReader &r, size_t sz) |
| [通知] タイプ別読込み処理 [詳解] | |
シェープファイル管理クラス
ESRIジャパン株式会社の シェープファイルアクセスクラスです。
// ポイントタイプのシェープファイルクラス宣言
CShapeFileTypePoint sf;
// バウンディングボックスの値を設定
CShapeFileTypePoint::TBoundingBox bb;
bb.xMin = 0.01;
bb.xMax = 100.0;
sf.SetBoundingBox(bb);
// 属性フィールドを作成。
sf.AddCharacterField("LABEL", 16); // 0; 名前
sf.AddDateField("DATE"); // 1; 日付
sf.AddNumericField("LAT.", 8, 3); // 2; 緯度
sf.AddNumericField("LONG.", 8, 3); // 3; 経度
// レコード1を作成
INDEX idx = sf.AddRecord();
sf.SetPointShapeRecord(idx, 34.5, 56.1);
sf.SetStringRecord(idx, 0, "OX株式会社");
sf.SetDateRecord(idx, 1, CGrid::TDate(2009, 1, 1));
sf.SetFloatRecord(idx, 2, 123.4);
sf.SetFloatRecord(idx, 3, 32.6);
// レコード2を作成
idx = sf.AddRecord();
sf.SetPointShapeRecord(idx, 12.3, 33.2);
sf.SetStringRecord(idx, 0, "(株)予輪予輪");
sf.SetDateRecord(idx, 1, CGrid::TDate(2010, 2, 16));
sf.SetFloatRecord(idx, 2, 111.5);
sf.SetFloatRecord(idx, 3, 5.1);
// レコード3を作成
idx = sf.AddRecord();
// ファイル書き出し
sf.SaveFile("c:\\eeeee");
|
TnbShapeFile.h の 68 行目に定義があります。
| typedef double Double |
符号付き64bitIEEE浮動小数点(8bytes)
TnbShapeFile.h の 74 行目に定義があります。
| typedef long Integer |
符号付き32bit整数(4bytes)
TnbShapeFile.h の 73 行目に定義があります。
|
inherited |
|
inherited |
| CShapeFile | ( | void | ) |
コンストラクタ
TnbShapeFile.h の 313 行目に定義があります。
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
| INDEX AddRecord | ( | void | ) |
[追加] レコード追加.
| INVALID_INDEX以外 | 追加成功。値は追加したレコードインデックス。 |
| INVALID_INDEX | レコード追加失敗 |
TnbShapeFile.h の 371 行目に定義があります。
| bool AllDeleteRecord | ( | void | ) |
|
inherited |
| bool DeleteRecord | ( | INDEX | record | ) |
|
protected |
Traceダンプ
TnbShapeFile.h の 544 行目に定義があります。
|
inherited |
| const TBoundingBox & GetBoundingBox | ( | void | ) | const |
|
inherited |
|
inherited |
|
inherited |
| Integer GetHeadShapeType | ( | void | ) | const |
|
inherited |
| const IRecordContent * GetShapeRecord | ( | INDEX | record | ) | const |
[取得] シェープコンテンツ取得.
| record | レコードインデックス |
| NULL | インデックスが範囲外。 |
| NULL以外 | レコードコンテンツの参照。 |
TnbShapeFile.h の 426 行目に定義があります。
|
inherited |
| bool InsertRecord | ( | INDEX | record | ) |
[挿入] レコード挿入.
| record | レコードインデックス。 |
| true | 成功 |
| false | 失敗 |
TnbShapeFile.h の 386 行目に定義があります。
|
inherited |
| bool LoadFile | ( | LPCTSTR | lpszBaseFileName, |
| bool | withTypeCheck = true |
||
| ) |
[読込] ファイル読込み 保持している情報を破棄し、ファイルから読込みます。
| lpszBaseFileName | ファイル名。拡張子はつけないでください。 |
| withTypeCheck | trueの場合、現在の GetHeadShapeType() で得られるタイプと異なるファイルはエラーになります。 |
| true | 成功 |
| false | 失敗 |
TnbShapeFile.h の 440 行目に定義があります。
|
inherited |
|
protectedvirtual |
[通知] タイプ別読込み処理
| type | タイプ |
| r | リーダ。ファイルポインタは typeの直後になってます。 |
| sz | r の読込み可能サイズ。 |
| NULL | タイプが異なるので、読み込まなかった。 |
| NULL以外 | r から読み込んでレコードコンテンツを new で作成したポインタを返す。 |
CShapeFileTypePointで再実装されています。
TnbShapeFile.h の 538 行目に定義があります。
| bool SaveFile | ( | LPCTSTR | lpszBaseFileName | ) | const |
[作成] ファイル作成.
保持しているデータをファイルに書き出し.
| lpszBaseFileName | ファイル名。拡張子はつけないでください。 |
| true | 成功 |
| false | 失敗 |
TnbShapeFile.h の 498 行目に定義があります。
| void SetBoundingBox | ( | const TBoundingBox & | bb | ) |
|
inherited |
|
inherited |
| void SetHeadShapeType | ( | Integer | type | ) |
|
inherited |
|
inherited |
| bool SetShapeRecord | ( | INDEX | record, |
| IRecordContent * | P | ||
| ) |
[設定] シェープコンテンツ設定.
| record | レコードインデックス |
| P | レコードコンテンツ。必ず new で作成したオブジェクトであること。 |
| NULL | インデックスが範囲外。 |
| NULL以外 | レコードコンテンツの参照。 |
TnbShapeFile.h の 415 行目に定義があります。