ENGLISH VERSION

GLOBALBASE PROJECT POWERED BY HIROHISA MORI
ホーム

GLOBALBASEとは? トピックス ダウンロード ドキュメント 実例とリンク
 
ver.B リリースノート
GLOBALBASEガイドブック
COSMOSマニュアル
LANDSCAPEマニュアル
開発情報
文献情報
GLOBALBASEマニュアル集 >> gbviewエージェント・リファレンス・マニュアル >> gbview基本XL関数 >> GET_call (HTTP シーケンシャルGET)
2007-11-04版

GET_call (HTTP シーケンシャルGET)

著者: 森 洋久 / joshua@globalbase.org  ※ 

プロトタイプ

<GET_call/>

引数

なし

属性

dir 文字列 GET_call methodリクエストにおける、URL

評価形式

Applicative

所属エージェント

gbview

所属環境

HTTP

説明

xlsvのHTTPエージェント機能によりリクエストされた、GET_call methodオペレーションの本体の関数。これは、リクエストがあると、シーケンシャルに実行される。実際のオペレーションはパラレルに実行されるので、xlsvは GET を使う。

dir を解析し、gbview内に生成された地図画像バッファに対して対応した処理を行い、結果を返す。

dir はsearchクエリを持ったURLであり、http://server.domainname/xxx/yyy.cgi?search-query という形式です。/xxx/yyy.cgi?search-queryというように、ディレクトリパス名からでも動作します。search-queryの書式は、&で区切られた等式の列です。つまり、BNFで記述すると以下のように表すことが出来ます。

	search-query ::= equation '&' search-query
		| equation
	equation ::= NAME '=' DATA
	 

NAME=DATAについては以下の通りです。もし、以下の書式のなかにsearch-queryとして認められない文字が入っている場合は、%によってエスケープされます。使うコード系はUnicodeです。
  • mode
    書式:
    1. md=move 移動/画像取得モード
    2. md=info1 情報取得モード1(現在使われていない)
    3. md=info2 情報取得モード1(現在使われていない)
    4. md=rss RSS LONGフォーマット
    5. md=rss_short RSS SHORTフォーマット
    6. md=open 編集の開始 ( ver.B.b11以降のサポート)
    7. md=insert 編集プロットの挿入 ( ver.B.b11以降のサポート)
    8. md=update 編集プロットの情報更新 ( ver.B.b11以降のサポート)
    9. md=delete 編集プロットの削除 ( ver.B.b11以降のサポート)
    10. md=emove 編集プロットの移動 ( ver.B.b11以降のサポート)
    11. md=save 編集対象vctの保存 ( ver.B.b11以降のサポート)
    12. md=close 編集の終了 ( ver.B.b11以降のサポート)
    13. md=object 編集プロットの情報取得。 ( ver.B.b11以降のサポート)
    モードを指定する。 省略可能。省略時は、md=moveと等価。各モードの説明は後述する。
  • target
    書式:
    1. t=[座標系IDまたはURL]_a_[中心座標x]_[中心座標y]_[回転角(度)]_[レゾリューション]
    2. t=[座標系IDまたはURL]_b_[最小座標x]_[最小座標y]_[最大座標x]_[最大座標y]_[回転角(度)]
    3. t=[座標系IDまたはURL]_c_[回転角(度)]
    表示する座標系と、その位置を与える。与え方は3通りあるが、現在は1.の方法しかサポートしていない。[座標系ID]は、座標系識別子指定 XL関数(環境)(HTTPSetup:Coordinate (座標識別子定義))によって与えられた番号です。しかし、Coordinateで定義されていなくとも、URLを直接記述することも出来る。
  • move
    書式:
    1. mv=[画像x方向ドット数]-[画像y方向ドット数]
    targetで与えられた表示位置から、表示位置を、表示した画像上で与えたドット数だけ移動します。省略時はm=0_0と等価。
  • rotate
    書式:
    1. r=[回転角 ( 度)]
    targetで与えられた表示位置から、moveによって、表示位置を表示した画像上で与えたドット数だけ移動したあと、rotateで与えた角度だけ右周りに回転させます。省略はr=0と等価。
  • zoom
    書式:
    1. z=[拡大率]
    targetで与えられた表示位置から、moveによって、座標位置をドット数分ずらし、rotateにより回転させたあと、与えた拡大率だけ拡大する。拡大率は、1より小さいと縮小、1より大きい場合拡大になる。z=0または0より小さいとき、またはz=を省略したときには何もしない。つまり、z=1と等価。
  • layer
    書式:
    1. l=list

    
    	list ::= element list
    		| element
    		;
    	element ::= 条件式ID '[' STATE ']'
    		;
    	STATE ::= '0'
    		| '1'
    		;
    	 

    条件式レイヤの表示、非表示の指定、ベースマップの指定を行う。条件式レイヤとは、 XL関数(環境)(HTTPSetup:Condition (条件レイヤ定義))によって指定されたIDをもつ各レイヤのことです。「条件式ID」対応する条件式レイヤのIDであり、そのレイヤにセットする状態をSTATEで示す。
    • 0は、その条件式レイヤを無効にする(隠す)
    • 1は、その条件式レイヤを有効にする(表示する)
    という意味です。elementを省略することも出来ます。省略した場合そのレイヤは[0]を指定したのと同じ。つまり無効になります。
  • complete
    書式:
    1. p=0
    2. p=1
    3. p=2
    p=0のとき、画像の描画の途中でもGETは画像を送信します。
    p=1のとき、画像の描画がほぼ完全に終了してから画像を送信します。しかし、万が一書き変わる可能性はなきにしもあらず。
    p=2のとき、画像の描画が完全に終了してから画像を送信します。書き変わる可能性は無いことが保証されています。
    省略時は、p=0と等価。
  • win_size
    書式:
    1. s=[width]_[height]
    フレームのサイズを指定します。横のピクセル数、立てのピクセル数を与えます。
  • nop
    書式:
    1. n=[整数]
    特にオペレーションのない等式。基本的に、URLを作成するときに同一URLにならないようにしたい場合に適当な数字を指定します。キャッシュなどを無効にするための等式です。
  • position ( ver.B.b11以降のサポート)
    書式:
    1. position=[x座標]_[y座標]
    プロット編集時に座標を与える。
  • sessionId ( ver.B.b11以降のサポート)
    書式:
    1. sessionId=[ID]
    プロット編集時、openで得られたsessionIdを指定する。
  • information ( ver.B.b11以降のサポート)
    書式:
    1. information=[文字列]
    プロット編集時、プロットの属性情報を与える。[文字列]の書式は informationタグ [UNDEF REF (gb-data-structure-information)]をXML書式化したものである。
  • objCode ( ver.B.b11以降のサポート)
    書式:
    1. objCode=[CODE]
    プロット編集時、プロットのオブジェクトコードを与える。オブジェクトコードについては、 [UNDEF REF (gb-data-structure-vector)]を参照のこと。
  • vct ( ver.B.b11以降のサポート)
    書式
    1. vct=[vct番号]
    プロット編集時、編集対象vctファイルのIDを与える。vctファイルのIDは、vctファイルの定義がある XL関数(環境)(HTTPSetup:Coordinate (座標識別子定義))の座標系識別子である。
  • markImage ( ver.B.b11以降のサポート)
    書式
    1. markImg=[URL]
    プロット編集時、プロットのドットのイメージのURLを与える ( gif または jpeg)。httpを使うことが出来る。
  • markTransparent ( ver.B.b11以降のサポート)
    書式
    1. markTransparent=[URL]
    プロット編集時、プロットのドットのイメージの透明色を16進数で与える。


ページトップへ戻る

戻り値

  • md=move 移動/画像取得モード
    必須等式: target,layer,win_size
    付加すると有効に働く等式: move,rotate,zoom,complete,nop
    与えられた座標系、表示位置の画像を生成し、その画像をHTTPエージェントの image/jpeg の書式で返す。
  • md=rss RSS LONGフォーマット
    必須等式: target,layer,win_size
    付加すると有効に働く等式: move,rotate,zoom,complete,nop
    与えられた座標系、表示位置の画像を生成し、その画像および画像バッファについての情報をHTTPエージェントの text/xml 形式に埋め込まれたRSS形式で返す。RSS形式については後述。
  • md=rss_short RSS SHORTフォーマット
    必須等式: target,layer,win_size
    付加すると有効に働く等式: move,rotate,zoom,complete,nop
    与えられた座標系、表示位置の画像を生成し、その画像および画像バッファについての情報をHTTPエージェントの text/xml 形式に埋め込まれたRSS形式で返す。RSS形式については後述。
  • md=open 編集の開始
    必須等式: なし
    付加すると有効に働く等式: なし
    プロット編集用セッションIDを返す。
    正常戻り値は gvha-statusにtype="ok"にID着きフォーマット text/xml 形式に埋め込んだもの。エラーは、 gvha-status の各コード。
  • md=insert 編集プロットの挿入
    必須等式: target,position,vct,markImage,information
    付加すると有効に働く等式: markTransparent
    与えられた情報のプロットを新しく生成し登録する。ただし、これはgbviewのメモリ上に生成されるのみ。ファイルに書き込むためには、md=saveを実行する必要がある。
    正常/エラーともに戻り値は gvha-status text/xml 形式に埋め込んだもの。
  • md=update 編集プロットの情報更新
    必須等式:
    vct,objCode,information
    付加すると有効に働く等式: なし
    与えられたobjCodeのプロットの情報を更新する。ただし、これはgbviewのメモリ上のデータを更新するのみ。ファイルに書き込むためには、md=saveを実行する必要がある。
    正常/エラーともに戻り値は gvha-status text/xml 形式に埋め込んだもの。
  • md=delete 編集プロットの削除
    必須等式: vct,objCode
    付加すると有効に働く等式: なし
    与えられた情報のプロットを削除する。ただし、これはgbviewのメモリ上が更新されるのみ。ファイルに書き込むためには、md=saveを実行する必要がある。
    正常/エラーともに戻り値は gvha-status text/xml 形式に埋め込んだもの。
  • md=emove 編集プロットの移動
    必須等式: vct,objCode,position,markImage
    付加すると有効に働く等式: markTransparent
    与えられた情報のプロットを移動する。ただし、これはgbviewのメモリ上が更新されるのみ。ファイルに書き込むためには、md=saveを実行する必要がある。
    正常/エラーともに戻り値は gvha-status text/xml 形式に埋め込んだもの。
  • md=save 編集対象vctの保存
    必須等式: vct
    付加すると有効に働く等式: なし
    更新されたvctをファイルへ書き出す。
    正常/エラーともに戻り値は gvha-status text/xml 形式に埋め込んだもの。
  • md=close 編集の終了
    必須等式: sessionId
    付加すると有効に働く等式: なし
    セッションをクローズする。
    正常/エラーともに戻り値は gvha-status text/xml 形式に埋め込んだもの。
  • md=object 編集プロットの情報取得 必須等式: vct,objCode
    付加すると有効に働く等式: なし
    オブジェクトの情報を取得する。 type="ok"のgvha-status構造にinformationを埋め込む。
    正常戻り値は gvha-statusにtype="ok"にオブジェクトの情報つきフォーマット text/xml 形式に埋め込んだもの。エラーは、 gvha-status の各コード。
RSS の書式

md=rss、md=rss_short時に返ってくるRSSフォーマットについて述べる。 これは、 (http://www.w3.org/1999/02/22-rdf-syntax-ns#)に規定されるRDFの書式に従った物である。以下のような形式なっている。
  • 本体
    
    	<?xml version="1.0" encoding="UTF-8"?>
    	<rdf:RDF xml:lang="ja"
    		xmlns:gb="http://www.globalbase.org/spec/http-rss/0.1/"
    		xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    		xmlns="http://purl.org/rss/1.0/">
    		
    		<channel rdf:about="[RSS_TARGET]">
    			<title> GLOBALBASE HTTP GATEWAY </title>
    			<link> [NEXT_TARGET] </link>
    			<description> GLOBALBASE HTTP GATEWAY </description>
    			<items>
    			<rdf:Seq>
    			<rdf:li rdf:resource="[NEXT_TARGET]"/>
    			<rdf:li rdf:resource="[C_STS_REFRERENCE]"/>*
    			</rdf:Seq>
    			</items>
    		</channel>
    
    		<item rdf:about="[NEXT_TARGET]">
    			<title> GLOBALBASE HTTP GATEWAY </title>
    			<link> [NEXT_TARGET] </link>
    			<description> GLOBALBASE HTTP GATEWAY </description>
    			<gb:status1>[STATUS1]</gb:status1>
    			<gb:status2>[STATUS2]</gb:status2>
    			<gb:status-n>[STATUS-N]</gb:status-n>
    			<gb:status-layer>[STATUS-LAYERS]</gb:statuslayer>
    			[PLOT_ELEMENT_AREA_LIST]
    		</item>
    		**
    		<item ref:about="[C_STS_RESOURCE]">
    				<title> GLOBALBASE HTTP GATEWAY </title>
    				<link>[C_STS_REFERENCE]</link>
    				<description> click reference </description>
    		</item>
    		**
    	</rdf:RDF>
    	 

    「*」のついているタグまたは、「**」で囲われた要素は、内容が無い場合省略されます。
    • [RSS_TARGET]
      md=rss/md=rss_shortで与えた、このRDFを返すURL。
    • [NEXT_TARGET]
      [RSS_TARGET]のmove,zoom,rotateの移動処理を行い(正規化し)targetのみで記述されたURL。この[NEXT_TARGET]をアクセスしても、RSS_TARGETと等価な画像もしくはRSSが返ってくると期待出来る。
    • [C_STS_REFERENCE]
      画像のステータス情報にクリック情報がある場合のそのクリック先のURL。あまり使わない。
  • [PLOT_ELEMENT_AREA_LIST] の書式は、画像中のプロットおよびオブジェクトの情報を保持する。以下の通り。
    • RSS SHORT フォーマットの場合。または、RSS LONGフォーマットで、オブジェクトがクリックの情報以外の情報を持たない場合。 以下のようにHTMLのclickable mapのエリア書式と同等の要素がエリアの数だけならびます。
      
      	<area name="[AREA_NAME]" coords="[TLx],[TLy],[BRx],[BRy]"
      			shape="rect" objCode="[CODE]"
      			resource="[vctURLまたはID]"/>
      	 

      • [AREA_NAME]
        システムによってランダムに生成されるエリア名。
      • [TLx][TLy]
        エリア矩形の左上の座標値
      • [BRx][BRy]
        エリア矩形の右下の座標値
      • [objCode]
        このオブジェクトのオブジェクトコード。詳しくは、 [UNDEF REF (gb-data-structure-vector)]を参照すること。
      • [vctURLまたはID]
        そのオブジェクトの存在するvctファイルの参照URLまたは、 XL関数(環境)(HTTPSetup:Coordinate (座標識別子定義))で与えられる座標系ID
    • RSS LONG フォーマットの場合。
      
      	<area name="[AREA_NAME]" coords="[TLx],[TLy],[BRx],[BRy]"
      			shape="rect" objCode="[CODE]"
      			resource="[vctURLまたはID]">
      		[info_org]
      		[info_html]*
      	</area>
      	 

      • [AREA_NAME]
        システムによってランダムに生成されるエリア名。
      • [TLx][TLy]
        エリア矩形の左上の座標値
      • [BRx][BRy]
        エリア矩形の右下の座標値
      • [objCode]
        このオブジェクトのオブジェクトコード。詳しくは、 [UNDEF REF (gb-data-structure-vector)]を参照すること。
      • [vctURLまたはID]
        そのオブジェクトの存在するvctファイルの参照URLまたは、 XL関数(環境)(HTTPSetup:Coordinate (座標識別子定義))で与えられる座標系ID
      • [info_org]
        オブジェクトのもつ情報、 [UNDEF REF (gb-data-structure-vector)]に示される。information書式によります。
      • [info_html]
        [info_org]をスタイルシートに通し、HTML化した結果。もし、スタイルシートが定義されていなかったり、エラーにより変換出来ない場合は、[info_html]は省略されます。
  • [STATUS-LAYERS] の書式は以下の通り、layer要素が1つまたは複数つらなります。
    
    	<layer>
    		<id>[座標系レイヤID]</id>
    		<entry_url>[座標系entry_URL]</entry_url>
    		<target_url>[座標系target_URL]</target_url>
    		<flags>[FLAGS]</flags>
    	</layer>
    	 

    実際に画面に表示されている座標系の情報です。
    • [座標系レイヤID]
      フレームバッファの、座標系を保持しているレイヤID。 XL関数(環境)(HTTPSetup:Coordinate (座標識別子定義))で与えられるIDとは異なります。
    • [座標系entry_URL][座標系target_URL]
      座標系のentry URLとtarget URL。詳細は [UNDEF REF (gb-data-structure-coordinate)]を参照してください。
    • [FLAGS]
      レイヤに設定されているフラグ。

エラー

  • XLE_PROTO_INV_FIELD_NAME
    • "dir attribute is required"
      dir属性がない。
    • "invalid URL"
      dirの書式がおかしい。
    • "corresponding gvha set is not defined ( dir)"
      呼び出されたURLは存在しないURLであった。外部からのHTTP接続においては、URLが存在するかしないかは、 xlsv エージェントが事前にチェックするので、当該エラーが発生することは。ほぼない。このエラーが発生するのは、httpagnet.xlなどにおけるgbviewを直接セットアップするときのエラーである可能性が高い。当該エラーが発生する最大の要因としては、 Cache コマンドのエラーである。
  • XLE_PROTO_BUSY
    利用出来る画像バッファがない。(使い果たされている。)

参考

バグ



ページトップへ戻る



  GLOBALBASEAI[v\[XE\tgEFAxvOSOURCEFORGE.JPQBĂ܂B SourceForge.jp SourceForge.net Logo