TNB Library
|
シェープファイル管理クラス [詳解]
#include <TnbShapeFile.h>
クラス | |
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 行目に定義があります。