ようこそゲストさん | ログイン |

掲示板

トップページ > 過去ログ > 記事閲覧
面積の取得処理について
日時: 2009/08/13 09:10
名前: GEOSISサポート受付

大量のポリゴンの面積を計算する際に、高速化できる方法はないでしょうか?

現在3000個で8分くらいかかっています。


******************************************************
GeoRet = GExec2("FGAREA", "ZALL POLALL POL ALL G")
GeoRet = GExec2("FGGETINFO", "POLALL RECNUM")
IRec = GEOSIS.ReturnL1
GeoRet = GExec2("FGEXOPEN", "POLALL", Ex1)

For Jrec = 1 To IRec
GeoRet = GExec2("FGEXGET", Jrec, Ex1) '全体より1レコード分取得
GeoRet = GExec2("FGEXCREATE", "POL1", Ex2) '新規中間ファイル【POL1】オープン
GeoRet = GExec2("FGEXPUT", Ex2, 1) '【POL1】1レコード目に代入
GeoRet = GExec2("FGEXCLOSE", Ex2, "ON") '【POL1】更新保存
GeoRet = GExec2("FGPOLAREA", "POL1 ANS"): GAr = Round(GEOSIS.ReturnD1, 2) '面積計測
Next
******************************************************


よろしくお願いします。

Page: 1 |

Re: 面積の取得処理について ( No.1 )
日時: 2009/08/13 09:11
名前: GEOSISサポート

ご期待されている程の高速化が実現されるかは分かりませんが、以下の対応を行うことで処理速度が速くなる可能性があります。

1)検索有効グループ・レイヤを対象のデータのみとする。
2)FGGETINFOで取得している中間ファイルのレコード数をFGEXOPEN後にFGEXINFOで取得するように変更する。
3)FGPOLAREAに渡す中間ファイルを作成しているFGEXCREATEの中間ファイル名を"CLIPBOARD"に変更する。
※中間ファイル名を"CLIPBOARD"にすると"ファイルを作成せずにクリップボードを使用するため、ファイルのOpen/Close処理が行われない分、処理が速くなります。

ご検討下さいますようお願い申し上げます。

以上

Page: 1 |



| 利用規約 |

(C) 2024 AS Locus INC.