JP2004126286A - 描画処理装置、描画処理方法、及び描画処理プログラム - Google Patents
描画処理装置、描画処理方法、及び描画処理プログラム Download PDFInfo
- Publication number
- JP2004126286A JP2004126286A JP2002291181A JP2002291181A JP2004126286A JP 2004126286 A JP2004126286 A JP 2004126286A JP 2002291181 A JP2002291181 A JP 2002291181A JP 2002291181 A JP2002291181 A JP 2002291181A JP 2004126286 A JP2004126286 A JP 2004126286A
- Authority
- JP
- Japan
- Prior art keywords
- application
- map
- information
- software component
- drawing processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Instructional Devices (AREA)
- Document Processing Apparatus (AREA)
Abstract
【課題】各種機能を実現するためのメニューをユーザが容易にカスタマイズすることを可能として低コスト化且つ処理の高速化を図った地理情報システム(Geographic Information System;GIS)を実現する。
【解決手段】描画処理装置は、ホストアプリケーションであるエクセルをプラットフォームとし、各種情報が所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画することが可能な地図描画エンジンコントロール11をエクセルのワークシート10上に貼り付ける。そして、描画処理装置は、ワークシート10によって呼び出されたVBA(Visual Basic for Applications)を介して指定された描画対象としての空間データを地図描画エンジンコントロール11によって取得し、取得した空間データをワークシート10上に描画する。
【選択図】 図3
【解決手段】描画処理装置は、ホストアプリケーションであるエクセルをプラットフォームとし、各種情報が所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画することが可能な地図描画エンジンコントロール11をエクセルのワークシート10上に貼り付ける。そして、描画処理装置は、ワークシート10によって呼び出されたVBA(Visual Basic for Applications)を介して指定された描画対象としての空間データを地図描画エンジンコントロール11によって取得し、取得した空間データをワークシート10上に描画する。
【選択図】 図3
Description
【0001】
【発明の属する技術分野】
本発明は、各種情報を描画して所定の表示手段に対して表示する描画処理装置、描画処理方法、及び描画処理プログラムに関する。
【0002】
【従来の技術】
従来から人工衛星を利用して地上における移動体の位置を測定する全地球測位システム(Global Positioning System;GPS)といった位置情報を取得するためのシステムが開発されている。また、近年では、携帯電話機等の移動体通信網をはじめとする各種通信インフラストラクチャの発達にともない、位置情報を利用した各種サービスが急速に普及しつつある。
【0003】
このような現状のもと、地図という位置情報と他の付加情報とを関連付けることによって極めて有益な情報を提供することが可能なシステムである地理情報システム(Geographic Information System;以下、GISという。)が注目されている。
【0004】
GISとは、地理情報システム関係省庁連絡会議の定義によれば、「地理的位置を手がかりに、位置に関する情報を持ったデータ(空間データ)を総合的に管理・加工し、視覚的に表示し、高度な分析や迅速な判断を可能にする技術」である。このようなGISが適用される範囲は、極めて多岐にわたり、例えば、公共分野では、上下水道、ガス、電力、道路といった生活インフラストラクチャの設備や顧客を管理するシステム、固定資産を管理するシステム、防災及び/又は警察の設備を管理するシステム、都市計画を支援するシステム等が挙げられ、また、民間分野では、宅配便等の配送計画を支援するシステム、店舗状況を評価したり出店計画を支援したりするシステム、顧客を管理するシステム、商品の販売状況等を分析するエリアマーケティング用のシステム、不動産情報を検索するシステム、広告や宣伝計画の策定を支援するシステム、カーナビゲーションシステム等が挙げられる。
【0005】
具体的には、GISを適用した具体例としては、例えば、特許文献1乃至特許文献5等があり、様々な分野に適用することができる。
【0006】
【特許文献1】
特開2001−109801号公報
【特許文献2】
特開2002−41719号公報
【特許文献3】
特開2002−63336号公報
【特許文献4】
特開2002−81008号公報
【特許文献5】
特開2002−236782号公報
【0007】
このようなGISは、近年のコンピュータ装置等の情報処理装置の普及及び高度化にともない、ディジタルデータとして作成された地図データに対して所定の属性データが付加された各種情報に基づいて構築されるのが通常である。
【0008】
ここで、ディジタルデータとして作成される地図データは、いわゆるビットマップ形式の画像といったドット単位で値を保持するラスタ型データと、点、線、面等の図形をベクトルとして表現するベクトル型データとに大別される。このうち、ラスタ型データは、視覚的に綺麗に表示することが可能である一方、データ容量が大きくなり、処理に過大な負荷がかかることが問題とされている。一方、ベクトル型データは、ラスタ型データに比べ、データ容量が小さくて済むことから、処理の負荷も少なくて済み、体感的に処理の高速化を図ることができる。また、ベクトル型データは、例えば図13に示すように、町名を示す情報からなる町名レイヤ、道路を示す情報からなる道路レイヤ、建物を示す情報からなる建物レイヤといった所定の項目毎にレイヤ構造として階層化し、任意のレイヤを合成することによって複数のレイヤの情報を透過的に重畳して表示することが可能であり、分析結果に応じてデータを色分けして表示することも可能である。
【0009】
GISは、これらの地図データと属性データとをデータベースとして保持し、これらの各種情報に基づいて、所定のエンジン(アプリケーション)によって地理情報を描画し、表示画面に表示する。
【0010】
このように、GISは、単なる地図ビューアとしてではなく、地図情報に対応付けられた付加的な情報を、ユーザに対して視覚的に提供することができ、各業務の効率化・迅速化・確実化を図る技術として期待されている。
【0011】
【発明が解決しようとする課題】
ところで、上述したGISにおいては、地理情報を描画するエンジンを起動すると、地図情報を表示する画面の周囲に、例えば、表示する地図の拡大及び/又は縮小を行う機能や、所定の住所の検索を行う機能といった各種メニューを実行するための通常フレームと称されるボタンやアイコン等のグラフィカル・ユーザ・インターフェース(Graphical User Interface;GUI)が表示される。
【0012】
ここで、このフレームとして実装されるメニューや属性データとしての必要な情報を記憶するデータベースは、適用する各業務に応じてカスタマイズして提供されるのが実情である。すなわち、エンジンは、受注した顧客の業務内容・運用に応じてカスタマイズされたアプリケーションとして作成されるものであった。
【0013】
したがって、GISにおいては、受注内容に応じて個別にアプリケーションを作成する必要があることから、必然的にコストが高くなる他、場合によっては処理に時間を要するという問題があった。
【0014】
一方、GISは、例えばマイクロソフト(登録商標)社が提供するエクセル(Excel)等の表計算ソフトウェアによって実現することもできる(例えば、非特許文献1参照。)。
【0015】
【非特許文献1】
小林岳人、”Excelを利用した地理情報システム(GIS)の方法”、[online]、[平成14年9月11日検索]、インターネット<URL:http://homepage2.nifty.com/taketo−kobayashi/paper/paper98.htm>
【0016】
実際に、上述したエクセルには、画像としての地図データからなるオブジェクトをワークシート上に挿入する”データマップ”と称される機能が搭載されており、ワークシート上の各セルとオブジェクトとして挿入された地図データとを関連付けることにより、簡易的なGISを構築することができる。
【0017】
しかしながら、このような表計算ソフトウェアにおいては、レイヤ構造として階層化されたデータをオブジェクトとして挿入することはできず、このため、本来のGISの有効な利点であるレイヤの重ね合わせによる空間的事象の分析を行うことは極めて困難であった。また、表計算ソフトウェアにおいては、上述したラスタ型データとベクトル型データとの重ね合わせができないことから、例えば、標高値に基づいて作成された鳥瞰図上に、緯度・経度値に基づいて作成された道路等の情報を重ね合わせて表示することができなかった。さらに、表計算ソフトウェアにおいては、地図情報を等高線グラフや散布図グラフといったグラフ作成機能を用いて表現することから、正確な3次元情報の表現を行うことができず、表示する地図の拡大及び/又は縮小といった動的でリアルタイム性を要する動作を行う機能を実現することはできなかった。
【0018】
なお、これらの問題は、GISに限ったものではなく、例えばCAD(computer−aided design)等のレイヤ構造として階層化されたデータを描画するアプリケーションについても同様に生じるものである。
【0019】
本発明は、このような実情に鑑みてなされたものであり、本来のGISの特徴をいかんなく発揮するために必要とされる各種機能を実現することができ、また、これら各種機能を実現するためのメニューをユーザが容易にカスタマイズすることを可能として低コスト化且つ処理の高速化を図ることができる描画処理装置、描画処理方法、及び描画処理プログラムを提供することを目的とする。
【0020】
【課題を解決するための手段】
上述した目的を達成する本発明にかかる描画処理装置は、各種情報を描画して所定の表示手段に対して表示する描画処理装置であって、起動画面上で所定のソフトウェア部品をオブジェクトとして貼り付け、当該ソフトウェア部品の機能を組み込み可能であるコントロールコンテナとしての第1のアプリケーションを実行する第1のアプリケーション実行手段と、第1のアプリケーション上で動作するソフトウェア部品として構成され、各種情報が所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画することが可能な第2のアプリケーションを実行する第2のアプリケーション実行手段と、第1のアプリケーションと第2のアプリケーションとの間に介在し、第1のアプリケーションとの間でメッセージの授受を行うインターフェースとして機能する第3のアプリケーションを実行する第3のアプリケーション実行手段とを備えることを特徴としている。
【0021】
また、上述した目的を達成する本発明にかかる描画処理方法は、各種情報を描画して所定の表示手段に対して表示する描画処理方法であって、起動画面上で所定のソフトウェア部品をオブジェクトとして貼り付け、当該ソフトウェア部品の機能を組み込み可能であるコントロールコンテナとしての第1のアプリケーションが起動された状態で、各種情報が所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画することが可能な第2のアプリケーションを、第1のアプリケーション上で動作するソフトウェア部品として起動画面上に貼り付けて表示手段に表示する貼り付け工程と、第1のアプリケーションと第2のアプリケーションとの間に介在し、第1のアプリケーションとの間でメッセージの授受を行うインターフェースとして機能する第3のアプリケーションを、第1のアプリケーションによって呼び出して実行し、第3のアプリケーションを介して指定された描画対象としての各種情報を第2のアプリケーションによって取得する情報取得工程と、第2のアプリケーションによって取得した各種情報を第1のアプリケーションの起動画面上に描画する描画工程とを備えることを特徴としている。
【0022】
さらに、上述した本発明にかかる描画処理プログラムは、各種情報を描画して所定の表示手段に対して表示するコンピュータ実行可能な描画処理プログラムであって、起動画面上で所定のソフトウェア部品をオブジェクトとして貼り付け、当該ソフトウェア部品の機能を組み込み可能であるコントロールコンテナとしての第1のアプリケーションが起動された状態で、各種情報が所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画することが可能な第2のアプリケーションを、第1のアプリケーション上で動作するソフトウェア部品として起動画面上に貼り付けて表示手段に表示する貼り付け処理と、第1のアプリケーションと第2のアプリケーションとの間に介在し、第1のアプリケーションとの間でメッセージの授受を行うインターフェースとして機能する第3のアプリケーションを、第1のアプリケーションによって呼び出して実行し、第3のアプリケーションを介して指定された描画対象としての各種情報を第2のアプリケーションによって取得する情報取得処理と、第2のアプリケーションによって取得した各種情報を第1のアプリケーションの起動画面上に描画する描画処理とを備えることを特徴としている。
【0023】
このような本発明にかかる描画処理装置、描画処理方法、及び描画処理プログラムは、それぞれ、第1のアプリケーションを起動した状態で第2のアプリケーションが起動されると、この第2のアプリケーションをソフトウェア部品として起動画面上に貼り付けて表示手段に表示し、第1のアプリケーションによって呼び出された第3のアプリケーションを介して指定された描画対象としての各種情報を第2のアプリケーションによって取得し、取得した各種情報を第1のアプリケーションの起動画面上に描画する。
【0024】
【発明の実施の形態】
以下、本発明を適用した具体的な実施の形態について図面を参照しながら詳細に説明する。
【0025】
この実施の形態は、地理情報システム(Geographic Information System;以下、GISという。)にて用いられる少なくとも地図情報を含む各種情報が、所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画して所定の表示手段に対して表示する第2のアプリケーションである地図描画エンジンを実行する描画処理装置である。この描画処理装置においては、地図描画エンジンが単独のパッケージとして提供されるものではなく、起動画面上で所定のソフトウェア部品をオブジェクトとして貼り付けて当該ソフトウェア部品の機能を組み込み可能であるコントロールコンテナとしての所定の第1のアプリケーション上で動作するソフトウェア部品として構成されるものである。また、描画処理装置は、第1のアプリケーションと地図描画エンジンとの間に介在して第1のアプリケーションとの間でメッセージの授受を行うインターフェースとして機能する所定の第3のアプリケーションを実装する。
【0026】
このような少なくとも3つのアプリケーションを実行する描画処理装置は、第1のアプリケーションを起動した状態で地図描画エンジンが起動されると、この地図描画エンジンをソフトウェア部品として起動画面上に貼り付けて表示手段に表示し、第1のアプリケーションによって呼び出された第3のアプリケーションを介して指定された描画対象としての各種情報を地図描画エンジンによって取得し、取得した各種情報を第1のアプリケーションの起動画面上に描画するものである。
【0027】
なお、以下では、説明の便宜上、描画処理装置は、マイクロソフト(登録商標)社が提供するオペレーティング・システムであるウィンドウズ(登録商標)がインストールされた例えばパーソナルコンピュータ等の各種アプリケーションを実行することが可能な装置であるものとする。また、以下では、第1のアプリケーションとして、マイクロソフト(登録商標)社が提供する表計算ソフトウェアであるエクセル(Excel)を用いるとともに、第3のアプリケーションとして、このエクセルを制御するマクロ言語であるVBA(Visual Basic for Applications)を用い、第2のアプリケーションである地図描画エンジンを、エクセル上に貼り付けられて動作するOLE(Object Linking and Embedding)オブジェクトとして作成されたコントロール、すなわち、ウィンドウズ(登録商標)にレジストされたOCXとして構成されるものとする。さらに、以下では、OCXとして構成される地図描画エンジンを、地図描画エンジンコントロールと称するものとする。
【0028】
すなわち、描画処理装置は、エクセルを起動した状態で地図描画エンジンコントロールを起動することにより、例えば図1に示すように、エクセルのワークシート上に、地図描画エンジンの起動画面を貼り付け、所定の表示画面に表示する。ここで、エクセルのワークシート上には、地図情報と、所定の機能を実現する各種メニューを実行するための通常フレームと称されるボタンやアイコン等のグラフィカル・ユーザ・インターフェース(Graphical User Interface;GUI)とが貼り付けられて表示される。そして、描画処理装置は、地図描画エンジンコントロールと、当該地図描画エンジンコントロールが貼り付けられたエクセルのワークシートとの間にVBAを介在させ、ワークシートを介したユーザの操作に応じた各種メソッドを地図描画エンジンコントロールへと通知することによって地図描画エンジンコントロールが有する各種機能を呼び出したり、地図描画エンジンコントロールからの各種イベントをワークシートへと通知することによって地図描画エンジンコントロールが取得したデータをエクセルに出力したりすることもできる。
【0029】
このような処理を行うことにより、描画処理装置は、各種機能を実現するためのメニューをユーザが容易にカスタマイズすることを可能とし、低コスト化且つ処理の高速化を図ったGISを構築することができる。
【0030】
さて、以下では、このような描画処理装置について具体的に説明する。
【0031】
図2に示すように、描画処理装置1は、例えばパーソナルコンピュータ等の各種アプリケーションを実行することが可能な装置として構成される。描画処理装置1は、内蔵するハードディスクや外部の記憶装置といった所定の記憶手段に記憶された各種データベースに対して所望の情報の読み出し及び/又は書き込みを行うことが可能とされる。例えば、データベースとしては、いわゆるラスタ型データやベクトル型データとして作成された地図データを格納する地図データベース2、ユーザによって任意に登録されるものであって地図データに重畳して描画可能な点、線、面、シンボル等を格納するユーザレイヤデータベース3、例えば顧客情報や業務情報等を格納するユーザ業務データベース4、及びCAD(Computer−Aided Design)データを格納する図示しないCADデータベース等が設けられる。また、描画処理装置1は、必要に応じて、例えば全地球測位システム(Global Positioning System;GPS)といった各種システムを用いて位置情報を取得することが可能とされ、衛星5や図示しない基地局等から提供される位置情報を取得するための通信手段を備えることもできる。
【0032】
このような描画処理装置1は、例えばマウスやキーボード等の操作デバイスを用いた各種操作に応じて、上述したように、アプリケーション間で、各種メソッド及び各種イベントの授受を行うことによって動作する。
【0033】
具体的には、描画処理装置1は、図3に示すように、ホストアプリケーションであるエクセルをプラットフォームとした基本メカニズムのもとに動作する。
【0034】
すなわち、描画処理装置1においては、エクセルのワークシート10上に、地図描画エンジンコントロール11が貼り付けられるとともに、地図描画エンジンコントロール11を操作するための各種ボタン、各種チェックボックス、各種コンボボックス等の各種コントロールオブジェクト12が貼り付けられる。また、描画処理装置1においては、少なくとも、コントロールオブジェクト12に対応した処理を記述したマクロ、イベントハンドラとしてのプロシージャ、及びワークシート10に対するデータの入出力処理を行うためのマクロが、VBA13によって作成される。さらに、描画処理装置1においては、地図描画エンジンコントロール11に、VBA13から与えられる各種メソッド及び/又は各種プロパティを入力するためのメソッド・プロパティインターフェース11aと、VBA13に対して各種イベントを出力するためのイベントインターフェース11bとが設けられる。一方、描画処理装置1においては、VBA13に、地図描画エンジンコントロール11に対して各種メソッドを呼び出すための呼出インターフェース13aと、地図描画エンジンコントロール11から与えられるイベントを入力するためのイベントハンドラ13bとが設けられる。
【0035】
描画処理装置1においては、上述した地図データベース2、ユーザレイヤデータベース3、ユーザ業務データベース4、及びCADデータベースといった、複数レイヤの空間データを格納するデータベースから、地図描画エンジンコントロール11によって所望の情報が読み出され、これらの空間データがワークシート10上に描画される。
【0036】
また、描画処理装置1においては、地図描画エンジンコントロール11が貼り付けられた領域上でのマウス操作は、地図描画エンジンコントロール11によって制御され、マウス操作に応じたイベントが、ワークシート10から地図描画エンジンコントロール11に与えられる。さらに、描画処理装置1においては、コントロールオブジェクト12がマウスによって押下されることにより、VBA13によって作成された対応するマクロが呼び出されるとともに、VBA13によってワークシート10から各種データが読み込まれ、これらの情報がメソッド及び/又はプロパティとして、呼出インターフェース13a及びメソッド・プロパティインターフェース11aを介して地図描画エンジンコントロール11に対して供給される。そして、描画処理装置1においては、地図描画エンジンコントロール11によって例えば距離計測や面積計測等の各種処理を行って得られたデータ等が、イベントとして、イベントインターフェース11b及びイベントハンドラ13bを介してVBA13に対して供給され、このVBA13を介して、ワークシート10に対してデータが出力される。
【0037】
このように、描画処理装置1は、ホストアプリケーションであるエクセルをプラットフォームとして、アプリケーション間で、各種メソッド及び各種イベントの授受を行う基本メカニズムのもとに動作する。ここで、各種メソッド及び各種イベント、並びに、各種情報を登録する際に授受される各種プロパティの具体例について説明する。
【0038】
まず、各種メソッドについて説明する。描画処理装置1は、例えば図4に示すような内容からなる各種メソッドを用意する。なお、同図においては、メソッド名と、これらの各メソッドに対する説明とを記載している。
【0039】
”MsOcxInit”メソッドは、アプリケーションの起動時に、OCXとしての地図描画エンジンコントロールの初期化を行うメソッドであり、OCXとしての地図描画エンジンコントロールに必要な情報が記述された設定ファイルの格納場所を示すパス等の情報を指定することによって地図描画を可能とするものである。
【0040】
”MsSetMode”メソッドは、各種動作モードを設定するメソッドであり、動作モードの通知によってマウス操作にしたがった処理を自動で行うことを可能とするものである。動作モードとしては、例えば、マウスクリック操作による地図の拡大及び/又は縮小を行う拡大及び/又は縮小モード、マウスドラッグ操作による地図のスクロールを行うドラッグモード、マウスズーム操作による地図の拡大を行うマウスズーム、動作モードを停止するためのものであって動作モード停止中における地図のマウスクリック操作に応じてマウスクリックされた当該地図上の位置情報をイベントとして発行するモード停止、マウスクリックされた地図上の位置を中心に当該地図を移動する中心表示モード、マウス操作による360度方向スクロールを行うスクロールモード、地図上にコンパスを表示するコンパス表示、指定された角度によって地図を回転する地図回転処理、マウス操作によって指定された複数点間の距離計測を行う距離計測モード、マウス操作によって指定された領域の面積計測を行う面積計測モード、マウス操作によって指定された2点間の方位を例えば360度表現で返す方位計測モード、円スケールを表示する円スケールモードといったものがある。
【0041】
”MsGetMode”メソッドは、現在の動作モードを取得するメソッドであり、現在OCXに対して設定されている動作モードを取得することを可能とするものである。
【0042】
”MsAddShapeVB”メソッドは、シンボルデータ及び線データの登録を行うメソッドであり、登録したいシンボル情報を後述する各種プロパティを用いて設定した後に呼び出されるものである。
【0043】
”MsRemoveShape”メソッドは、指定された識別子に対応するシンボルデータの削除を行うメソッドである。
【0044】
”MsScrollPixel”メソッドは、画面座標値(ピクセル値)での地図移動を行うメソッドであり、現在表示している地図の中心位置を原点として、指定された画面座標値分だけ当該地図をスクロールするものである。すなわち、”MsScrollPixel”メソッドは、現在表示している地図に対して、上述した”MsSetMode”メソッドによって設定するマウス操作によるスクロールではなく、エクセルからのスクロール依頼を行う際に用いるものである。
【0045】
”MsScrollReal”メソッドは、実座標値(センチメートル値)での地図移動を行うメソッドであり、現在表示している地図の中心位置を原点として、指定された実座標値分だけ当該地図をスクロールするものである。すなわち、”MsScrollReal”メソッドは、”MsScrollPixel”メソッドと同様に、現在表示している地図に対して、上述した”MsSetMode”メソッドによって設定するマウス操作によるスクロールではなく、エクセルからのスクロール依頼を行う際に用いるものである。
【0046】
”MsZoomIn”メソッドは、現在表示している地図の中心位置は変化させずに、当該地図の表示レベルを1段階下げて拡大を行うメソッドであり、上述した”MsOcxInit”メソッドによって指定された設定ファイルに設定されているレベル単位毎に拡大処理を行うものである。
【0047】
”MsZoomOut”メソッドは、現在表示している地図の中心位置は変化させずに、当該地図の表示レベルを1段階上げて縮小を行うメソッドであり、上述した”MsOcxInit”メソッドによって指定された設定ファイルに設定されているレベル単位毎に縮小処理を行うものである。
【0048】
”MsZoomEx”メソッドは、表示レベルに関係なくエクセルから引数として設定された値によって現在表示している地図の拡大及び/又は縮小を行うメソッドであり、現在表示している地図の横方向に対する長さより引数の増減値分だけ拡大及び/又は縮小を行うものである。
【0049】
”MsRequest”メソッドは、指定された任意の位置を中心に地図を表示するメソッドであり、エクセルによって任意の地点の地図をOCX上に表示したい場合に用いられるものである。”MsRequest”メソッドは、例えば1/128秒単位で指定された緯度及び経度の地点を中心に地図を表示するとともに、レベル番号が指定されることにより、設定ファイルに設定されている縮尺にて地図を表示する。
【0050】
”MsRequestKei”メソッドは、中心表示したい位置をいわゆる平面直角座標(19座標系)にて指定することによって指定された任意の位置を中心に地図を表示するメソッドであり、エクセルによって任意の地点の地図をOCX上に表示したい場合に用いられるものである。また、”MsRequestKei”メソッドは、上述した”MsRequest”メソッドと同様に、レベル番号が指定されることにより、設定ファイルに設定されている縮尺にて地図を表示する。
【0051】
”MsSetSize”メソッドは、OCXのサイズを設定する際に用いられるメソッドであり、OCXの縦横の長さを、それぞれ、ピクセル単位で指定することにより、このサイズに合わせてOCXを表示するものである。
【0052】
”MsGetSize”メソッドは、現在のOCXのサイズを取得する際に用いられるメソッドであり、現在のOCXの縦横の長さを、それぞれ、ピクセル単位で引数に返すものである。
【0053】
”MsChangeSize”メソッドは、OCXのサイズと表示位置とを同時に変更するメソッドであり、ピクセル単位で指定されたOCXの縦横の長さと表示位置とに合わせてOCXを表示するものである。
【0054】
”MsMoveOcx”メソッドは、OCXのサイズは変化させずに表示位置のみを変更するメソッドであり、ピクセル単位で指定された座標位置にOCXを移動して表示するものである。
【0055】
”MsRePaint”メソッドは、地図の背景の書き換えは行わずに地図を再描画するメソッドであり、例えば、1つのシンボルを登録した場合に、その登録したシンボルを画面上に反映させる際に用いられるものである。このとき、OCXは、”MsRePaint”メソッドが依頼された後、ウィンドウズ(登録商標)におけるAPI(Application Programming Interface)の1つであるBitBLT(BIT BLock Transfer)を介して登録したシンボルを画面上に反映する。
【0056】
”MsReDraw”メソッドは、地図を再描画するメソッドである。”MsReDraw”メソッドは、上述した”MsRePaint”メソッドとは異なり、地図の背景を含んで再描画を行うため、例えば、既に表示しているシンボルを消去したい場合や、シンボルの合成表示を行う場合に用いられるものである。このとき、OCXは、”MsReDraw”メソッドによって地図の描画を行った後、呼び出し元のアプリケーションであるエクセルに対して、シンボル等の合成情報の表示が可能になった旨を後述する”EvUserDraw”イベントによって通知する。そして、OCXは、エクセルが、”EvUserDraw”イベントを受け取った後シンボル等の表示依頼を行うことにより、地図上にシンボル等の合成を行う。
【0057】
”MsCreateBitmap”メソッドは、現在表示している地図を指定されたサイズのビットマップ形式のファイルとして出力するメソッドであり、現在表示している地図について、指定されたサイズでビットマップ形式のファイルを作成し、指定された格納場所を含むファイル名で出力するものである。なお、ビットマップ形式のファイルとして出力される部分は、画面全体ではなく、OCXに描画されている地図のみである。
【0058】
”MsGetRealCenter”メソッドは、現在表示している地図の中心位置の位置情報を取得するメソッドである。”MsGetRealCenter”メソッドは、現在表示している地図の中心位置の緯度及び経度を、例えば1/128秒単位で返す。
【0059】
”MsGetRealSize”メソッドは、現在表示している地図の縦方向及び横方向の長さを取得するメソッドである。”MsGetRealSize”メソッドは、現在表示している地図の縦方向及び横方向の長さを、例えばセンチメートル単位で返す。
【0060】
”MsGetRealRect”メソッドは、現在表示している地図のRECT情報、すなわち、左上経度、左上緯度、右下経度、右下緯度を取得するメソッドである。”MsGetRealRect”メソッドは、現在表示している地図の左上経度、左上緯度、右下経度、右下緯度を、それぞれ、例えば1/128秒単位で返す。
【0061】
”MsGetLevel”メソッドは、現在表示している地図の表示レベルを取得するメソッドであり、現在表示している地図に対するレベル番号を戻り値として返すものである。
【0062】
”MsSetCursor”メソッドは、OCXのウィンドウ上をポインティングするマウスカーソルを変更するメソッドである。”MsSetCursor”メソッドは、任意に指定されたカーソル番号に対応するマウスカーソルをロードし、マウスカーソルの形状を変更する。
【0063】
”MsSetCursorFile”メソッドは、上述した”MsSetCursor”メソッドと同様に、OCXのウィンドウ上をポインティングするマウスカーソルを変更するメソッドであるが、”MsSetCursor”メソッドとは異なり、任意のフォルダに作成したマウスカーソルのファイル名をフルパスで指定することによって当該マウスカーソルをロードし、マウスカーソルの形状を変更するものである。
【0064】
”MsInputLocal”メソッドは、図形登録モードに移行して登録結果をローカルフォルダに保存するメソッドである。なお、本処理にて作成されたローカルファイルは、OCX側で管理するファイルである。
【0065】
”MsSetSearch”メソッドは、画面内に表示しているユーザレイヤをターゲットとして、指定された内容にて該当する情報を検索するメソッドである。この”MsSetSearch”メソッドによる検索結果は、後述する”EvSearchObject”イベントによって通知される。
【0066】
”MsDelObject”メソッドは、フレームからの表示依頼によってOCXでメモリ展開している図形情報をメモリ上から削除するメソッドである。なお、この”MsDelObject”メソッドを呼び出した場合であっても、図形情報は、メモリ上から削除されるのみであり、実際に管理されているファイルやデータベースから削除されることはない。
【0067】
”MsShowObject”メソッドは、指定された識別子に対応する図形情報の表示及び/又は非表示を行うメソッドである。なお、この”MsShowObject”メソッドによる表示及び/又は非表示の対象は、フレーム側からの依頼によってOCXでメモリ展開している図形情報である。
【0068】
”MsEditLocal”メソッドは、図形編集モードに移行して編集結果をローカルフォルダに保存するメソッドである。なお、本処理にて作成されたローカルファイルは、OCX側で管理するファイルである。
【0069】
”MsScaleWindow”メソッドは、地図上にメジャーのようなサイズ変更が可能なスケールバーを表示するメソッドである。
【0070】
”MsLayerDlg”メソッドは、レイヤの表示及び/又は非表示を行うレイヤ設定ダイアログを表示するメソッドであり、任意のレイヤの表示及び/又は非表示を可能とするものである。
【0071】
”MsColorDlg”メソッドは、レイヤの色設定を行うカラー設定ダイアログを表示するメソッドであり、例えば256色のパレットから任意のレイヤのカラー設定及び文字のフォントサイズ設定を可能とするものである。
【0072】
つぎに、各種イベントについて説明する。描画処理装置1は、例えば図5に示すような内容からなる各種イベントを用意する。なお、同図においては、イベント名と、これらの各イベントに対する説明とを記載している。
【0073】
”EvLButtonUp”イベントは、OCX上でのマウス左ボタンアップに対するイベントを取得する際に用いられ、OCX上にてマウス左ボタンアップされたときの座標情報を返すイベントである。”EvLButtonUp”イベントは、マウス左ボタンアップされた位置に対するOCX内の縦方向及び横方向のピクセル座標XYと、マウス左ボタンアップされた位置に対する例えば1/128秒単位の緯度及び経度とを返す。
【0074】
”EvLButtonDown”イベントは、OCX上でのマウス左ボタンダウンに対するイベントを取得する際に用いられ、OCX上にてマウス左ボタンダウンされたときの座標情報を返すイベントである。”EvLButtonDown”イベントは、マウス左ボタンダウンされた位置に対するOCX内の縦方向及び横方向のピクセル座標XYと、マウス左ボタンダウンされた位置に対する例えば1/128秒単位の緯度及び経度とを返す。
【0075】
”EvRButtonUp”イベントは、OCX上でのマウス右ボタンアップに対するイベントを取得する際に用いられ、OCX上にてマウス右ボタンアップされたときの座標情報を返すイベントである。”EvRButtonUp”イベントは、マウス右ボタンアップされた位置に対するOCX内の縦方向及び横方向のピクセル座標XYと、マウス右ボタンアップされた位置に対する例えば1/128秒単位の緯度及び経度とを返す。
【0076】
”EvRButtonDown”イベントは、OCX上でのマウス右ボタンダウンに対するイベントを取得する際に用いられ、OCX上にてマウス右ボタンダウンされたときの座標情報を返すイベントである。”EvRButtonDown”イベントは、マウス右ボタンダウンされた位置に対するOCX内の縦方向及び横方向のピクセル座標XYと、マウス右ボタンダウンされた位置に対する例えば1/128秒単位の緯度及び経度とを返す。
【0077】
”EvLButtonDblClk”イベントは、OCX上でのマウス左ダブルクリックに対するイベントを取得する際に用いられ、OCX上にてマウス左ダブルクリックされたときの座標情報を返すイベントである。”EvLButtonDblClk”イベントは、マウス左ダブルクリックされた位置に対するOCX内の縦方向及び横方向のピクセル座標XYと、マウス左ダブルクリックされた位置に対する例えば1/128秒単位の緯度及び経度とを返す。
【0078】
”EvMouseMove”イベントは、OCX上でのマウス移動に対するイベントを取得する際に用いられ、OCX上にてマウス移動されたときの座標情報を返すイベントである。”EvMouseMove”イベントは、マウス移動された位置に対するOCX内の縦方向及び横方向のピクセル座標XYと、マウス移動された位置に対する例えば1/128秒単位の緯度及び経度とを返す。
【0079】
”EvNewLevel”イベントは、アプリケーション側に表示レベルが変化した旨を通知するイベントである。具体的には、”EvNewLevel”イベントは、上述した”MsZoomIn”メソッド、”MsZoomOut”メソッド、”MsRequest”メソッド、又は”MsRequestKei”メソッド等により、現在表示している地図の表示レベルが変化した場合に発行される。”EvNewLevel”イベントは、新たに設定されたレベル番号と、新たに表示しているOCXの縦横の長さ(例えばセンチメートル単位)とを返す。
【0080】
”EvUserDraw”イベントは、上述した”MsReDraw”メソッドが呼び出された後、OCX側で地図描画が完了した旨を通知するとともに、そのときに表示しようとしている地図の座標情報を返すイベントである。”EvUserDraw”イベントは、現在表示しようとしている地図の中心経度、中心緯度、左上経度、左上緯度、右下経度、右下緯度を、それぞれ、例えば1/128秒単位で返す。アプリケーション側では、この”EvUserDraw”イベントを取得すると、シンボル等の重ね合わせ情報の表示依頼を行うことが可能となるとともに、表示している範囲を示す情報を返すことから、描画に必要な情報か否かの判断を行うことが可能となる。
【0081】
”EvMeasure”イベントは、地図描画エンジンコントロールが標準実装している機能である距離計測、面積計測、及び方位に関する結果を取得する際に用いられるイベントである。”EvMeasure”イベントは、距離計測の場合には、2点以上のポイントを指定された際に、点間を結ぶ距離を例えばセンチメートル単位で返す。また、”EvMeasure”イベントは、面積計測の場合には、面積計測の終了を意味するマウス右クリックのタイミングで指定された点に囲まれた面積を返す。さらに、”EvMeasure”イベントは、方位の場合には、指定された2点間の示す角度を例えば360度表現で返す。
【0082】
”EvNewMode”イベントは、動作モードが変更された場合に、動作モードが変更した旨を通知するイベントである。
【0083】
”EvStating”イベントは、OCXに対してメソッド等による依頼を行うことが可能となった旨を通知するイベントである。すなわち、アプリケーション側では、この”EvStating”イベントを受け取った後に、各種メソッドを呼び出すことが可能となる。描画処理装置1においては、アプリケーション側がこの”EvStating”イベントを受け取った後に、上述した”MsOcxInit”メソッドを用いてOCXの初期化が行われる。
【0084】
”EvNew3DLevel”イベントは、標高データ等の3次元表示を行っている際に角度又は高さに対して変化があった場合に通知されるイベントである。”EvNew3DLevel”イベントは、角度を例えば360度表現で返すとともに、高さを例えばセンチメートル単位で返す。
【0085】
”EvNewSize”イベントは、OCXのサイズが変更された旨を通知するイベントであり、OCXのサイズが変化したタイミングで変化後のOCXの縦横の長さを例えばピクセル単位で通知するものである。
【0086】
”EvSearchObject”イベントは、上述した”MsSetSearch”メソッドによって検索モードにされた後、地図上の指定されたポイントに基づいて検索条件に該当する検索結果を返すイベントである。具体的には、”EvSearchObject”イベントは、検索結果のオブジェクトと、検索結果として該当するオブジェクトの識別子とを返す。また、”EvSearchObject”イベントは、指定された検索点の縦方向及び横方向のピクセル座標XYと、指定された検索点の例えば1/128秒単位の緯度及び経度とを返す。
【0087】
つぎに、各種プロパティについて説明する。描画処理装置1は、例えば図6に示すような内容からなる各種プロパティを用意する。なお、同図においては、プロパティ名と、これらの各プロパティに対する説明とを記載している。
【0088】
”AutoDraw”プロパティは、シンボル登録等によって即時描画を行う際に用いられるプロパティである。”InitFlg”プロパティは、OCXが初期化されているか否かを判定するフラグである。
【0089】
”Shape.Label.IconNo”プロパティは、シンボル情報登録時に用いられるプロパティであり、アイコン番号を指定するものである。”Shape.Label.Slope”プロパティは、シンボル情報登録時に用いられるプロパティであり、回転角度を指定するものである。
【0090】
”Shape.Label.x”プロパティは、シンボル情報登録時に用いられるプロパティであり、シンボルの横方向の座標Xを指定するものである。”Shape.Label.y”プロパティは、シンボル情報登録時に用いられるプロパティであり、シンボルの縦方向の座標Yを指定するものである。
【0091】
”Shape.Label.SymSize”プロパティは、シンボル情報登録時に用いられるプロパティであり、アイコンのサイズを指定するものである。”Shape.Label.TextSize”プロパティは、シンボル情報登録時に用いられるプロパティであり、文字のサイズを指定するものである。
【0092】
”Shape.Label.TextPos”プロパティは、シンボル情報登録時に用いられるプロパティであり、文字の表示位置を指定するものである。”Shape.Label.TextColor”プロパティは、シンボル情報登録時に用いられるプロパティであり、文字の色を指定するものである。
【0093】
”Shape.Label.LabelFlg”プロパティは、シンボル情報登録時に用いられるプロパティであり、ラベルを表示するか否かを示すフラグである。”Shape.Label.LabelColor”プロパティは、シンボル情報登録時に用いられるプロパティであり、ラベルの背景色を指定するものである。
【0094】
”Shape.Label.FrameColor”プロパティは、シンボル情報登録時に用いられるプロパティであり、ラベルの淵の色を指定するものである。”Shape.Label.Text”プロパティは、シンボル情報登録時に用いられるプロパティであり、ラベルの文字列を指定するものである。
【0095】
”Shape.Line.Color”プロパティは、線情報登録時に用いられるプロパティであり、色番号を指定するものである。”Shape.Line.Size”プロパティは、線情報登録時に用いられるプロパティであり、線のサイズを指定するものである。
【0096】
”Shape.Line.Type”プロパティは、線情報登録時に用いられるプロパティであり、線の種類を指定するものである。”Shape.Line.Count”プロパティは、線情報登録時に用いられるプロパティであり、線の座標数を指定するものである。”Shape.Line.PointClear”プロパティは、線情報登録時に用いられるプロパティであり、線情報登録時に一旦座標情報をクリアするものである。
【0097】
”Shape.Cross.Taget.x”プロパティは、十字線表示時に用いられるプロパティであり、十字中心の緯度を指定するものである。”Shape.Cross.Taget.y”プロパティは、十字線表示時に用いられるプロパティであり、十字中心の経度を指定するものである。
【0098】
”Shape.Cross.Taget.ColorNo”プロパティは、十字線表示時に用いられるプロパティであり、十字線の色を指定するものである。”Shape.Cross.Taget.Size”プロパティは、十字線表示時に用いられるプロパティであり、十字線のサイズを指定するものである。”Shape.Cross.Taget.Type”プロパティは、十字線表示時に用いられるプロパティであり、十字線の種類を指定するものである。
【0099】
描画処理装置1は、このような各種メソッド、各種イベント、各種プロパティを用意することにより、本来のGISの特徴をいかんなく発揮するために必要とされる各種機能を実現することができる。
【0100】
さて、このような描画処理装置1の処理について具体的に説明するために、地図描画エンジンコントロールの初期化処理、距離計測を行う際のイベント処理、並びに、地図の拡大及び/又は縮小処理を例に挙げて説明する。
【0101】
まず、地図描画エンジンコントロールの初期化処理について説明する。
【0102】
描画処理装置1は、図7に示すような一連の工程を経ることにより、OCXとしての地図描画エンジンコントロールの初期化処理を行う。
【0103】
まず、描画処理装置1においては、同図に示すように、ステップS1において、オペレータ(ユーザ)がエクセルを起動した状態でマウスを用いてアドインコマンドバーを押下することにより、地図描画エンジンコントロールと、この地図描画エンジンコントロールを操作するためのVBAによるマクロ処理を実行するための各種コントロールオブジェクトとが自動生成され、ワークシート上に貼り付けられる。
【0104】
続いて、描画処理装置1においては、ステップS2において、オペレータがキーボードを用いて、設定ファイルを格納する設定フォルダのパスをワークシート上の所定のセルに入力する。
【0105】
続いて、描画処理装置1においては、ステップS3において、オペレータがマウスを用いて、初期化処理を開始するための所定のコントロールオブジェクトを押下する。これにより、描画処理装置1においては、OCXとしての地図描画エンジンコントロールの初期化処理が開始される。
【0106】
すなわち、描画処理装置1においては、ステップS4において、ワークシートによって初期化用のマクロを呼び出す。これに応じて、描画処理装置1においては、ステップS5において、VBAによってマクロ処理を実行することにより、上述した”MsOcxInit”メソッドを発行し、この”MsOcxInit”メソッドを地図描画エンジンコントロールに供給し、地図描画エンジンコントロールの初期化を行う。
【0107】
なお、ステップS5におけるVBAのロジックは、図8に示すように記述される。ここで、同図中5行目には、設定フォルダのパスを取得する旨の命令が記述されているが、”C3”は、ステップS2にて入力されたセル番号を示している。また、同図中6行目には、地図描画エンジンコントロールの初期化を行うための”MsOcxInit”メソッドを呼び出す旨の命令が記述されている。さらに、同図中8行目には、初期モードを設定するための命令が記述されているとともに、同図中9行目には、初期スケールを設定するための命令が記述されている。
【0108】
そして、描画処理装置1においては、図7中ステップS6において、地図描画エンジンコントロールによってデータベースから所定の空間データを取得し、ステップS7において、取得した空間データをワークシート上に描画し、一連の初期化処理を終了する。
【0109】
描画処理装置1は、ホストアプリケーションであるエクセルをプラットフォームとして、ワークシート、VBA、及び地図描画エンジンコントロールの間でこのような一連の工程を経ることにより、OCXとしての地図描画エンジンコントロールの初期化処理を行うことができる。
【0110】
つぎに、距離計測を行う際のイベント処理について説明する。
【0111】
描画処理装置1は、図9に示すような一連の工程を経ることにより、距離計測を行う。なお、ここでは、地図描画エンジンコントロールがエクセルのワークシート上貼り付けられ、地図描画エンジンコントロールの初期化処理が終了しているものとして説明を行う。
【0112】
まず、描画処理装置1においては、同図に示すように、ステップS11において、オペレータ(ユーザ)がマウスを用いて、距離計測を行うための所定のコントロールオブジェクトを押下する。これにより、描画処理装置1においては、距離計測処理が開始される。
【0113】
すなわち、描画処理装置1においては、ステップS12において、ワークシートによって距離計測用のマクロを呼び出す。これに応じて、描画処理装置1においては、ステップS13において、VBAによってマクロ処理を実行することにより、距離計測モードを示す”LINE_MEASURE”を引数とする上述した”MsSetMode”メソッドを発行し、この”MsSetMode”メソッドを地図描画エンジンコントロールに供給し、地図描画エンジンコントロールの動作モードを距離計測モードに設定する。
【0114】
なお、ステップS13におけるVBAのロジックは、図10(A)に示すように記述される。ここで、同図中2行目には、地図描画エンジンコントロールの動作モードを距離計測モードに設定するための”MsSetMode”メソッドを呼び出す旨の命令が記述されている。
【0115】
続いて、描画処理装置1においては、図9中ステップS14において、距離計測を行う2点間のうち開始位置を設定するために、オペレータがマウスを用いて、地図上における所望の位置をクリックする。このクリックされた旨を示すマウスイベントは、地図描画エンジンコントロールに供給される。これに応じて、描画処理装置1においては、ステップS15において、地図描画エンジンコントロールにより、クリックされた位置を距離計測開始点として地図上に描画する。
【0116】
また、描画処理装置1においては、ステップS16において、距離計測を行う2点間のうち終了位置を設定するために、オペレータがマウスを用いて、地図上における所望の位置をクリックする。このクリックされた旨を示すマウスイベントは、地図描画エンジンコントロールに供給される。これに応じて、描画処理装置1においては、ステップS17において、地図描画エンジンコントロールにより、クリックされた位置を距離計測終了点として地図上に描画する。
【0117】
続いて、描画処理装置1においては、ステップS18において、地図描画エンジンコントロールによって距離計測処理を行い、ステップS19において、求めた計測結果をワークシートに出力するために、地図描画エンジンコントロールによって計測結果を通知するためのイベントハンドラを呼び出す。
【0118】
なお、ステップS19におけるVBAのロジックは、図10(B)に示すように記述される。ここで、同図中2行目乃至4行目には、計測結果を表示する旨の命令が記述されているが、”C31”,”C32”,”C33”は、それぞれ、計測結果を出力するワークシート上のセル番号を示している。
【0119】
そして、描画処理装置1においては、図9中ステップS20において、VBAイベントプロシージャによって地図描画エンジンコントロールから計測結果を受け取ると、計測結果を示すデータをワークシート上の所定のセルに出力して反映させ、一連の距離計測処理を終了する。
【0120】
描画処理装置1は、ホストアプリケーションであるエクセルをプラットフォームとして、ワークシート、VBA、及び地図描画エンジンコントロールの間でこのような一連の工程を経ることにより、地図上の任意の複数点間の距離計測を行うことができる。
【0121】
最後に、地図の拡大及び/又は縮小処理について説明する。
【0122】
描画処理装置1は、図11に示すような一連の工程を経ることにより、地図の拡大及び/又は縮小処理を行う。なお、ここでも、地図描画エンジンコントロールがエクセルのワークシート上貼り付けられ、地図描画エンジンコントロールの初期化処理が終了しているものとして説明を行う。
【0123】
まず、描画処理装置1においては、同図に示すように、ステップS21において、オペレータ(ユーザ)がマウスを用いて、地図の拡大及び/又は縮小を行うための所定のコントロールオブジェクトを押下する。これにより、描画処理装置1においては、地図の拡大及び/又は縮小処理が開始される。
【0124】
すなわち、描画処理装置1においては、ステップS22において、ワークシートによって拡大及び/又は縮小用のマクロを呼び出す。これに応じて、描画処理装置1においては、ステップS23において、VBAによってマクロ処理を実行することにより、上述した”MsZoomIn”メソッド又は”MsZoomOut”メソッドを発行し、これらの”MsZoomIn”メソッド又は”MsZoomOut”メソッドを地図描画エンジンコントロールに供給する。
【0125】
なお、ステップS23におけるVBAのロジックは、図12に示すように記述される。ここで、同図中2行目乃至6行目には、拡大を行うためのコントロールオブジェクトが押下された場合には、”MsZoomIn”メソッドを呼び出して拡大処理を行う一方で、縮小を行うためのコントロールオブジェクトが押下された場合には、”MsZoomOut”メソッドを呼び出して縮小処理を行う旨の命令が記述されている。
【0126】
そして、描画処理装置1においては、図11中ステップS24において、地図描画エンジンコントロールによってデータベースから所定の空間データを取得し、ステップS25において、取得した空間データをワークシート上に描画し、一連の初期化処理を終了する。
【0127】
描画処理装置1は、ホストアプリケーションであるエクセルをプラットフォームとして、ワークシート、VBA、及び地図描画エンジンコントロールの間でこのような一連の工程を経ることにより、地図の拡大及び/又は縮小処理を行うことができる。
【0128】
以上説明したように、本発明の実施の形態として示す描画処理装置1は、ホストアプリケーションであるエクセルをプラットフォームとして、エクセルのワークシートに地図描画エンジンコントロールをOCXとして貼り付けるとともに、ワークシートと地図描画エンジンコントロールとの間にVBAを介在させ、ワークシートによって呼び出されたVBAを介して指定された描画対象としての空間データを地図描画エンジンコントロールによって取得し、取得した空間データをワークシート上に描画する。これにより、描画処理装置1は、VBAを介して各種機能を実現するための制御を行うことが可能となることから、各種機能を実現するためのメニューをユーザが容易にカスタマイズすることが可能となり、各業務内容に応じたアプリケーションを作成する必要がないことから、設計者及びユーザの負担軽減を図り、低コスト化を図ることができる。また、描画処理装置1は、VBAを介した制御を行うことにより、処理の高速化を図ることができ、例えば地図のスクロール動作等を体感的に違和感なく行うことができる。このように、描画処理装置1は、本来のGISの特徴をいかんなく発揮するために必要とされる各種機能を容易に実現するGISを構築することができる。
【0129】
なお、描画処理装置1は、インターネット等を介していわゆるActiveXコントロールとしての所定の地図描画エンジンコントロールをダウンロードし、ブラウザ上で地図描画エンジンコントロールを実行するシステムであるいわゆるウェブGISとは全く異なる概念のもとに構成されるものである。
【0130】
すなわち、ウェブGISにおいては、ブラウザ上でActiveXコントロールとしての地図描画エンジンコントロールを動作させるために、所定のアプリケーションを地図描画エンジンコントロールに合わせて作成する必要があり、このアプリケーションは、ユーザが任意に変更操作することは不可能に構成される。これに対して、描画処理装置1においては、ウェブGISにおけるアプリケーションに対応するものとしてVBAを用いていることから、例えばエクセルのワークシート上のデータ等に応じてユーザが任意且つ動的に変更操作することができる。したがって、描画処理装置1は、例えば地図やコントロールオブジェクト等をマウスを用いてドラッグするといった動作を行うこともでき、ウェブGISと比較して、遥かに柔軟且つ容易なカスタマイズを実現することができ、利便に優れたものである。
【0131】
なお、本発明は、上述した実施の形態に限定されるものではない。例えば、上述した実施の形態では、第1のアプリケーションとしてエクセルを用いるものとして説明したが、本発明は、エクセル以外の任意の表計算ソフトウェアであってもよいことは勿論である。また、本発明においては、第1のアプリケーションとしては表計算ソフトウェアでなくてもよく、例えば、ワード等のワードプロセッシングソフトウェアやパワーポイント(登録商標)等のプレゼンテーションソフトウェアといったように、OCXを貼り付けられるコントロールコンテナとしてのアプリケーションであれば、いかなるものであっても適用することができる。
【0132】
また、上述した実施の形態では、第2のアプリケーションとして地図描画エンジンを用いるものとして説明したが、本発明は、例えばCADソフトウェア等であってもよく、各種情報が所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画することが可能なアプリケーションであれば、いかなるものであっても適用することができる。
【0133】
さらに、上述した実施の形態では、第3のアプリケーションとしてVBAを用いるものとして説明したが、本発明は、例えばいわゆるCOM(Component Object Model)やOCX等であってもよい。
【0134】
このように、本発明は、その趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0135】
【発明の効果】
以上詳細に説明したように、本発明にかかる描画処理装置、描画処理方法、及び描画処理プログラムは、それぞれ、第1のアプリケーションを起動した状態で第2のアプリケーションが起動されると、この第2のアプリケーションをソフトウェア部品として起動画面上に貼り付けて表示手段に表示し、第1のアプリケーションによって呼び出された第3のアプリケーションを介して指定された描画対象としての各種情報を第2のアプリケーションによって取得し、取得した各種情報を第1のアプリケーションの起動画面上に描画することにより、本来のGISの特徴をいかんなく発揮するために必要とされる各種機能を実現することができ、また、これら各種機能を実現するためのメニューをユーザが容易にカスタマイズすることを可能として低コスト化且つ処理の高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態として示す描画処理装置の表示内容を説明する図である。
【図2】同描画処理装置の構成を説明する図である。
【図3】同描画処理装置における基本メカニズムを説明する図である。
【図4】各種メソッドを説明する図である。
【図5】各種イベントを説明する図である。
【図6】各種プロパティを説明する図である。
【図7】同描画処理装置において地図描画エンジンコントロールの初期化処理を行う際の一連の工程を説明するフローチャートである。
【図8】図7に示す処理におけるVBAのロジックを説明する図であり、”MsOcxInit”メソッドを発行するためのVBAのロジックについて説明する図である。
【図9】同描画処理装置において距離計測を行う際の一連の工程を説明するフローチャートである。
【図10】図9に示す処理におけるVBAのロジックを説明する図であり、(A)は、”MsSetMode”メソッドを発行するためのVBAのロジックについて説明し、(B)は、計測結果を通知するためのイベントハンドラを呼び出すためのVBAのロジックについて説明する図である。
【図11】同描画処理装置において地図の拡大及び/又は縮小処理を行う際の一連の工程を説明するフローチャートである。
【図12】図11に示す処理におけるVBAのロジックを説明する図であり、”MsZoomIn”メソッド又は”MsZoomOut”メソッドを発行するためのVBAのロジックについて説明する図である。
【図13】レイヤ構造について説明する図である。
【符号の説明】
1 描画処理装置、 2 地図データベース、 3 ユーザレイヤデータベース、 4 ユーザ業務データベース、 5 衛星、 10 ワークシート、 11 地図描画エンジンコントロール、 11a メソッド・プロパティインターフェース、 11b イベントインターフェース、 12 コントロールオブジェクト、 13 VBA、 13a 呼出インターフェース、 13b イベントハンドラ13b
【発明の属する技術分野】
本発明は、各種情報を描画して所定の表示手段に対して表示する描画処理装置、描画処理方法、及び描画処理プログラムに関する。
【0002】
【従来の技術】
従来から人工衛星を利用して地上における移動体の位置を測定する全地球測位システム(Global Positioning System;GPS)といった位置情報を取得するためのシステムが開発されている。また、近年では、携帯電話機等の移動体通信網をはじめとする各種通信インフラストラクチャの発達にともない、位置情報を利用した各種サービスが急速に普及しつつある。
【0003】
このような現状のもと、地図という位置情報と他の付加情報とを関連付けることによって極めて有益な情報を提供することが可能なシステムである地理情報システム(Geographic Information System;以下、GISという。)が注目されている。
【0004】
GISとは、地理情報システム関係省庁連絡会議の定義によれば、「地理的位置を手がかりに、位置に関する情報を持ったデータ(空間データ)を総合的に管理・加工し、視覚的に表示し、高度な分析や迅速な判断を可能にする技術」である。このようなGISが適用される範囲は、極めて多岐にわたり、例えば、公共分野では、上下水道、ガス、電力、道路といった生活インフラストラクチャの設備や顧客を管理するシステム、固定資産を管理するシステム、防災及び/又は警察の設備を管理するシステム、都市計画を支援するシステム等が挙げられ、また、民間分野では、宅配便等の配送計画を支援するシステム、店舗状況を評価したり出店計画を支援したりするシステム、顧客を管理するシステム、商品の販売状況等を分析するエリアマーケティング用のシステム、不動産情報を検索するシステム、広告や宣伝計画の策定を支援するシステム、カーナビゲーションシステム等が挙げられる。
【0005】
具体的には、GISを適用した具体例としては、例えば、特許文献1乃至特許文献5等があり、様々な分野に適用することができる。
【0006】
【特許文献1】
特開2001−109801号公報
【特許文献2】
特開2002−41719号公報
【特許文献3】
特開2002−63336号公報
【特許文献4】
特開2002−81008号公報
【特許文献5】
特開2002−236782号公報
【0007】
このようなGISは、近年のコンピュータ装置等の情報処理装置の普及及び高度化にともない、ディジタルデータとして作成された地図データに対して所定の属性データが付加された各種情報に基づいて構築されるのが通常である。
【0008】
ここで、ディジタルデータとして作成される地図データは、いわゆるビットマップ形式の画像といったドット単位で値を保持するラスタ型データと、点、線、面等の図形をベクトルとして表現するベクトル型データとに大別される。このうち、ラスタ型データは、視覚的に綺麗に表示することが可能である一方、データ容量が大きくなり、処理に過大な負荷がかかることが問題とされている。一方、ベクトル型データは、ラスタ型データに比べ、データ容量が小さくて済むことから、処理の負荷も少なくて済み、体感的に処理の高速化を図ることができる。また、ベクトル型データは、例えば図13に示すように、町名を示す情報からなる町名レイヤ、道路を示す情報からなる道路レイヤ、建物を示す情報からなる建物レイヤといった所定の項目毎にレイヤ構造として階層化し、任意のレイヤを合成することによって複数のレイヤの情報を透過的に重畳して表示することが可能であり、分析結果に応じてデータを色分けして表示することも可能である。
【0009】
GISは、これらの地図データと属性データとをデータベースとして保持し、これらの各種情報に基づいて、所定のエンジン(アプリケーション)によって地理情報を描画し、表示画面に表示する。
【0010】
このように、GISは、単なる地図ビューアとしてではなく、地図情報に対応付けられた付加的な情報を、ユーザに対して視覚的に提供することができ、各業務の効率化・迅速化・確実化を図る技術として期待されている。
【0011】
【発明が解決しようとする課題】
ところで、上述したGISにおいては、地理情報を描画するエンジンを起動すると、地図情報を表示する画面の周囲に、例えば、表示する地図の拡大及び/又は縮小を行う機能や、所定の住所の検索を行う機能といった各種メニューを実行するための通常フレームと称されるボタンやアイコン等のグラフィカル・ユーザ・インターフェース(Graphical User Interface;GUI)が表示される。
【0012】
ここで、このフレームとして実装されるメニューや属性データとしての必要な情報を記憶するデータベースは、適用する各業務に応じてカスタマイズして提供されるのが実情である。すなわち、エンジンは、受注した顧客の業務内容・運用に応じてカスタマイズされたアプリケーションとして作成されるものであった。
【0013】
したがって、GISにおいては、受注内容に応じて個別にアプリケーションを作成する必要があることから、必然的にコストが高くなる他、場合によっては処理に時間を要するという問題があった。
【0014】
一方、GISは、例えばマイクロソフト(登録商標)社が提供するエクセル(Excel)等の表計算ソフトウェアによって実現することもできる(例えば、非特許文献1参照。)。
【0015】
【非特許文献1】
小林岳人、”Excelを利用した地理情報システム(GIS)の方法”、[online]、[平成14年9月11日検索]、インターネット<URL:http://homepage2.nifty.com/taketo−kobayashi/paper/paper98.htm>
【0016】
実際に、上述したエクセルには、画像としての地図データからなるオブジェクトをワークシート上に挿入する”データマップ”と称される機能が搭載されており、ワークシート上の各セルとオブジェクトとして挿入された地図データとを関連付けることにより、簡易的なGISを構築することができる。
【0017】
しかしながら、このような表計算ソフトウェアにおいては、レイヤ構造として階層化されたデータをオブジェクトとして挿入することはできず、このため、本来のGISの有効な利点であるレイヤの重ね合わせによる空間的事象の分析を行うことは極めて困難であった。また、表計算ソフトウェアにおいては、上述したラスタ型データとベクトル型データとの重ね合わせができないことから、例えば、標高値に基づいて作成された鳥瞰図上に、緯度・経度値に基づいて作成された道路等の情報を重ね合わせて表示することができなかった。さらに、表計算ソフトウェアにおいては、地図情報を等高線グラフや散布図グラフといったグラフ作成機能を用いて表現することから、正確な3次元情報の表現を行うことができず、表示する地図の拡大及び/又は縮小といった動的でリアルタイム性を要する動作を行う機能を実現することはできなかった。
【0018】
なお、これらの問題は、GISに限ったものではなく、例えばCAD(computer−aided design)等のレイヤ構造として階層化されたデータを描画するアプリケーションについても同様に生じるものである。
【0019】
本発明は、このような実情に鑑みてなされたものであり、本来のGISの特徴をいかんなく発揮するために必要とされる各種機能を実現することができ、また、これら各種機能を実現するためのメニューをユーザが容易にカスタマイズすることを可能として低コスト化且つ処理の高速化を図ることができる描画処理装置、描画処理方法、及び描画処理プログラムを提供することを目的とする。
【0020】
【課題を解決するための手段】
上述した目的を達成する本発明にかかる描画処理装置は、各種情報を描画して所定の表示手段に対して表示する描画処理装置であって、起動画面上で所定のソフトウェア部品をオブジェクトとして貼り付け、当該ソフトウェア部品の機能を組み込み可能であるコントロールコンテナとしての第1のアプリケーションを実行する第1のアプリケーション実行手段と、第1のアプリケーション上で動作するソフトウェア部品として構成され、各種情報が所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画することが可能な第2のアプリケーションを実行する第2のアプリケーション実行手段と、第1のアプリケーションと第2のアプリケーションとの間に介在し、第1のアプリケーションとの間でメッセージの授受を行うインターフェースとして機能する第3のアプリケーションを実行する第3のアプリケーション実行手段とを備えることを特徴としている。
【0021】
また、上述した目的を達成する本発明にかかる描画処理方法は、各種情報を描画して所定の表示手段に対して表示する描画処理方法であって、起動画面上で所定のソフトウェア部品をオブジェクトとして貼り付け、当該ソフトウェア部品の機能を組み込み可能であるコントロールコンテナとしての第1のアプリケーションが起動された状態で、各種情報が所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画することが可能な第2のアプリケーションを、第1のアプリケーション上で動作するソフトウェア部品として起動画面上に貼り付けて表示手段に表示する貼り付け工程と、第1のアプリケーションと第2のアプリケーションとの間に介在し、第1のアプリケーションとの間でメッセージの授受を行うインターフェースとして機能する第3のアプリケーションを、第1のアプリケーションによって呼び出して実行し、第3のアプリケーションを介して指定された描画対象としての各種情報を第2のアプリケーションによって取得する情報取得工程と、第2のアプリケーションによって取得した各種情報を第1のアプリケーションの起動画面上に描画する描画工程とを備えることを特徴としている。
【0022】
さらに、上述した本発明にかかる描画処理プログラムは、各種情報を描画して所定の表示手段に対して表示するコンピュータ実行可能な描画処理プログラムであって、起動画面上で所定のソフトウェア部品をオブジェクトとして貼り付け、当該ソフトウェア部品の機能を組み込み可能であるコントロールコンテナとしての第1のアプリケーションが起動された状態で、各種情報が所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画することが可能な第2のアプリケーションを、第1のアプリケーション上で動作するソフトウェア部品として起動画面上に貼り付けて表示手段に表示する貼り付け処理と、第1のアプリケーションと第2のアプリケーションとの間に介在し、第1のアプリケーションとの間でメッセージの授受を行うインターフェースとして機能する第3のアプリケーションを、第1のアプリケーションによって呼び出して実行し、第3のアプリケーションを介して指定された描画対象としての各種情報を第2のアプリケーションによって取得する情報取得処理と、第2のアプリケーションによって取得した各種情報を第1のアプリケーションの起動画面上に描画する描画処理とを備えることを特徴としている。
【0023】
このような本発明にかかる描画処理装置、描画処理方法、及び描画処理プログラムは、それぞれ、第1のアプリケーションを起動した状態で第2のアプリケーションが起動されると、この第2のアプリケーションをソフトウェア部品として起動画面上に貼り付けて表示手段に表示し、第1のアプリケーションによって呼び出された第3のアプリケーションを介して指定された描画対象としての各種情報を第2のアプリケーションによって取得し、取得した各種情報を第1のアプリケーションの起動画面上に描画する。
【0024】
【発明の実施の形態】
以下、本発明を適用した具体的な実施の形態について図面を参照しながら詳細に説明する。
【0025】
この実施の形態は、地理情報システム(Geographic Information System;以下、GISという。)にて用いられる少なくとも地図情報を含む各種情報が、所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画して所定の表示手段に対して表示する第2のアプリケーションである地図描画エンジンを実行する描画処理装置である。この描画処理装置においては、地図描画エンジンが単独のパッケージとして提供されるものではなく、起動画面上で所定のソフトウェア部品をオブジェクトとして貼り付けて当該ソフトウェア部品の機能を組み込み可能であるコントロールコンテナとしての所定の第1のアプリケーション上で動作するソフトウェア部品として構成されるものである。また、描画処理装置は、第1のアプリケーションと地図描画エンジンとの間に介在して第1のアプリケーションとの間でメッセージの授受を行うインターフェースとして機能する所定の第3のアプリケーションを実装する。
【0026】
このような少なくとも3つのアプリケーションを実行する描画処理装置は、第1のアプリケーションを起動した状態で地図描画エンジンが起動されると、この地図描画エンジンをソフトウェア部品として起動画面上に貼り付けて表示手段に表示し、第1のアプリケーションによって呼び出された第3のアプリケーションを介して指定された描画対象としての各種情報を地図描画エンジンによって取得し、取得した各種情報を第1のアプリケーションの起動画面上に描画するものである。
【0027】
なお、以下では、説明の便宜上、描画処理装置は、マイクロソフト(登録商標)社が提供するオペレーティング・システムであるウィンドウズ(登録商標)がインストールされた例えばパーソナルコンピュータ等の各種アプリケーションを実行することが可能な装置であるものとする。また、以下では、第1のアプリケーションとして、マイクロソフト(登録商標)社が提供する表計算ソフトウェアであるエクセル(Excel)を用いるとともに、第3のアプリケーションとして、このエクセルを制御するマクロ言語であるVBA(Visual Basic for Applications)を用い、第2のアプリケーションである地図描画エンジンを、エクセル上に貼り付けられて動作するOLE(Object Linking and Embedding)オブジェクトとして作成されたコントロール、すなわち、ウィンドウズ(登録商標)にレジストされたOCXとして構成されるものとする。さらに、以下では、OCXとして構成される地図描画エンジンを、地図描画エンジンコントロールと称するものとする。
【0028】
すなわち、描画処理装置は、エクセルを起動した状態で地図描画エンジンコントロールを起動することにより、例えば図1に示すように、エクセルのワークシート上に、地図描画エンジンの起動画面を貼り付け、所定の表示画面に表示する。ここで、エクセルのワークシート上には、地図情報と、所定の機能を実現する各種メニューを実行するための通常フレームと称されるボタンやアイコン等のグラフィカル・ユーザ・インターフェース(Graphical User Interface;GUI)とが貼り付けられて表示される。そして、描画処理装置は、地図描画エンジンコントロールと、当該地図描画エンジンコントロールが貼り付けられたエクセルのワークシートとの間にVBAを介在させ、ワークシートを介したユーザの操作に応じた各種メソッドを地図描画エンジンコントロールへと通知することによって地図描画エンジンコントロールが有する各種機能を呼び出したり、地図描画エンジンコントロールからの各種イベントをワークシートへと通知することによって地図描画エンジンコントロールが取得したデータをエクセルに出力したりすることもできる。
【0029】
このような処理を行うことにより、描画処理装置は、各種機能を実現するためのメニューをユーザが容易にカスタマイズすることを可能とし、低コスト化且つ処理の高速化を図ったGISを構築することができる。
【0030】
さて、以下では、このような描画処理装置について具体的に説明する。
【0031】
図2に示すように、描画処理装置1は、例えばパーソナルコンピュータ等の各種アプリケーションを実行することが可能な装置として構成される。描画処理装置1は、内蔵するハードディスクや外部の記憶装置といった所定の記憶手段に記憶された各種データベースに対して所望の情報の読み出し及び/又は書き込みを行うことが可能とされる。例えば、データベースとしては、いわゆるラスタ型データやベクトル型データとして作成された地図データを格納する地図データベース2、ユーザによって任意に登録されるものであって地図データに重畳して描画可能な点、線、面、シンボル等を格納するユーザレイヤデータベース3、例えば顧客情報や業務情報等を格納するユーザ業務データベース4、及びCAD(Computer−Aided Design)データを格納する図示しないCADデータベース等が設けられる。また、描画処理装置1は、必要に応じて、例えば全地球測位システム(Global Positioning System;GPS)といった各種システムを用いて位置情報を取得することが可能とされ、衛星5や図示しない基地局等から提供される位置情報を取得するための通信手段を備えることもできる。
【0032】
このような描画処理装置1は、例えばマウスやキーボード等の操作デバイスを用いた各種操作に応じて、上述したように、アプリケーション間で、各種メソッド及び各種イベントの授受を行うことによって動作する。
【0033】
具体的には、描画処理装置1は、図3に示すように、ホストアプリケーションであるエクセルをプラットフォームとした基本メカニズムのもとに動作する。
【0034】
すなわち、描画処理装置1においては、エクセルのワークシート10上に、地図描画エンジンコントロール11が貼り付けられるとともに、地図描画エンジンコントロール11を操作するための各種ボタン、各種チェックボックス、各種コンボボックス等の各種コントロールオブジェクト12が貼り付けられる。また、描画処理装置1においては、少なくとも、コントロールオブジェクト12に対応した処理を記述したマクロ、イベントハンドラとしてのプロシージャ、及びワークシート10に対するデータの入出力処理を行うためのマクロが、VBA13によって作成される。さらに、描画処理装置1においては、地図描画エンジンコントロール11に、VBA13から与えられる各種メソッド及び/又は各種プロパティを入力するためのメソッド・プロパティインターフェース11aと、VBA13に対して各種イベントを出力するためのイベントインターフェース11bとが設けられる。一方、描画処理装置1においては、VBA13に、地図描画エンジンコントロール11に対して各種メソッドを呼び出すための呼出インターフェース13aと、地図描画エンジンコントロール11から与えられるイベントを入力するためのイベントハンドラ13bとが設けられる。
【0035】
描画処理装置1においては、上述した地図データベース2、ユーザレイヤデータベース3、ユーザ業務データベース4、及びCADデータベースといった、複数レイヤの空間データを格納するデータベースから、地図描画エンジンコントロール11によって所望の情報が読み出され、これらの空間データがワークシート10上に描画される。
【0036】
また、描画処理装置1においては、地図描画エンジンコントロール11が貼り付けられた領域上でのマウス操作は、地図描画エンジンコントロール11によって制御され、マウス操作に応じたイベントが、ワークシート10から地図描画エンジンコントロール11に与えられる。さらに、描画処理装置1においては、コントロールオブジェクト12がマウスによって押下されることにより、VBA13によって作成された対応するマクロが呼び出されるとともに、VBA13によってワークシート10から各種データが読み込まれ、これらの情報がメソッド及び/又はプロパティとして、呼出インターフェース13a及びメソッド・プロパティインターフェース11aを介して地図描画エンジンコントロール11に対して供給される。そして、描画処理装置1においては、地図描画エンジンコントロール11によって例えば距離計測や面積計測等の各種処理を行って得られたデータ等が、イベントとして、イベントインターフェース11b及びイベントハンドラ13bを介してVBA13に対して供給され、このVBA13を介して、ワークシート10に対してデータが出力される。
【0037】
このように、描画処理装置1は、ホストアプリケーションであるエクセルをプラットフォームとして、アプリケーション間で、各種メソッド及び各種イベントの授受を行う基本メカニズムのもとに動作する。ここで、各種メソッド及び各種イベント、並びに、各種情報を登録する際に授受される各種プロパティの具体例について説明する。
【0038】
まず、各種メソッドについて説明する。描画処理装置1は、例えば図4に示すような内容からなる各種メソッドを用意する。なお、同図においては、メソッド名と、これらの各メソッドに対する説明とを記載している。
【0039】
”MsOcxInit”メソッドは、アプリケーションの起動時に、OCXとしての地図描画エンジンコントロールの初期化を行うメソッドであり、OCXとしての地図描画エンジンコントロールに必要な情報が記述された設定ファイルの格納場所を示すパス等の情報を指定することによって地図描画を可能とするものである。
【0040】
”MsSetMode”メソッドは、各種動作モードを設定するメソッドであり、動作モードの通知によってマウス操作にしたがった処理を自動で行うことを可能とするものである。動作モードとしては、例えば、マウスクリック操作による地図の拡大及び/又は縮小を行う拡大及び/又は縮小モード、マウスドラッグ操作による地図のスクロールを行うドラッグモード、マウスズーム操作による地図の拡大を行うマウスズーム、動作モードを停止するためのものであって動作モード停止中における地図のマウスクリック操作に応じてマウスクリックされた当該地図上の位置情報をイベントとして発行するモード停止、マウスクリックされた地図上の位置を中心に当該地図を移動する中心表示モード、マウス操作による360度方向スクロールを行うスクロールモード、地図上にコンパスを表示するコンパス表示、指定された角度によって地図を回転する地図回転処理、マウス操作によって指定された複数点間の距離計測を行う距離計測モード、マウス操作によって指定された領域の面積計測を行う面積計測モード、マウス操作によって指定された2点間の方位を例えば360度表現で返す方位計測モード、円スケールを表示する円スケールモードといったものがある。
【0041】
”MsGetMode”メソッドは、現在の動作モードを取得するメソッドであり、現在OCXに対して設定されている動作モードを取得することを可能とするものである。
【0042】
”MsAddShapeVB”メソッドは、シンボルデータ及び線データの登録を行うメソッドであり、登録したいシンボル情報を後述する各種プロパティを用いて設定した後に呼び出されるものである。
【0043】
”MsRemoveShape”メソッドは、指定された識別子に対応するシンボルデータの削除を行うメソッドである。
【0044】
”MsScrollPixel”メソッドは、画面座標値(ピクセル値)での地図移動を行うメソッドであり、現在表示している地図の中心位置を原点として、指定された画面座標値分だけ当該地図をスクロールするものである。すなわち、”MsScrollPixel”メソッドは、現在表示している地図に対して、上述した”MsSetMode”メソッドによって設定するマウス操作によるスクロールではなく、エクセルからのスクロール依頼を行う際に用いるものである。
【0045】
”MsScrollReal”メソッドは、実座標値(センチメートル値)での地図移動を行うメソッドであり、現在表示している地図の中心位置を原点として、指定された実座標値分だけ当該地図をスクロールするものである。すなわち、”MsScrollReal”メソッドは、”MsScrollPixel”メソッドと同様に、現在表示している地図に対して、上述した”MsSetMode”メソッドによって設定するマウス操作によるスクロールではなく、エクセルからのスクロール依頼を行う際に用いるものである。
【0046】
”MsZoomIn”メソッドは、現在表示している地図の中心位置は変化させずに、当該地図の表示レベルを1段階下げて拡大を行うメソッドであり、上述した”MsOcxInit”メソッドによって指定された設定ファイルに設定されているレベル単位毎に拡大処理を行うものである。
【0047】
”MsZoomOut”メソッドは、現在表示している地図の中心位置は変化させずに、当該地図の表示レベルを1段階上げて縮小を行うメソッドであり、上述した”MsOcxInit”メソッドによって指定された設定ファイルに設定されているレベル単位毎に縮小処理を行うものである。
【0048】
”MsZoomEx”メソッドは、表示レベルに関係なくエクセルから引数として設定された値によって現在表示している地図の拡大及び/又は縮小を行うメソッドであり、現在表示している地図の横方向に対する長さより引数の増減値分だけ拡大及び/又は縮小を行うものである。
【0049】
”MsRequest”メソッドは、指定された任意の位置を中心に地図を表示するメソッドであり、エクセルによって任意の地点の地図をOCX上に表示したい場合に用いられるものである。”MsRequest”メソッドは、例えば1/128秒単位で指定された緯度及び経度の地点を中心に地図を表示するとともに、レベル番号が指定されることにより、設定ファイルに設定されている縮尺にて地図を表示する。
【0050】
”MsRequestKei”メソッドは、中心表示したい位置をいわゆる平面直角座標(19座標系)にて指定することによって指定された任意の位置を中心に地図を表示するメソッドであり、エクセルによって任意の地点の地図をOCX上に表示したい場合に用いられるものである。また、”MsRequestKei”メソッドは、上述した”MsRequest”メソッドと同様に、レベル番号が指定されることにより、設定ファイルに設定されている縮尺にて地図を表示する。
【0051】
”MsSetSize”メソッドは、OCXのサイズを設定する際に用いられるメソッドであり、OCXの縦横の長さを、それぞれ、ピクセル単位で指定することにより、このサイズに合わせてOCXを表示するものである。
【0052】
”MsGetSize”メソッドは、現在のOCXのサイズを取得する際に用いられるメソッドであり、現在のOCXの縦横の長さを、それぞれ、ピクセル単位で引数に返すものである。
【0053】
”MsChangeSize”メソッドは、OCXのサイズと表示位置とを同時に変更するメソッドであり、ピクセル単位で指定されたOCXの縦横の長さと表示位置とに合わせてOCXを表示するものである。
【0054】
”MsMoveOcx”メソッドは、OCXのサイズは変化させずに表示位置のみを変更するメソッドであり、ピクセル単位で指定された座標位置にOCXを移動して表示するものである。
【0055】
”MsRePaint”メソッドは、地図の背景の書き換えは行わずに地図を再描画するメソッドであり、例えば、1つのシンボルを登録した場合に、その登録したシンボルを画面上に反映させる際に用いられるものである。このとき、OCXは、”MsRePaint”メソッドが依頼された後、ウィンドウズ(登録商標)におけるAPI(Application Programming Interface)の1つであるBitBLT(BIT BLock Transfer)を介して登録したシンボルを画面上に反映する。
【0056】
”MsReDraw”メソッドは、地図を再描画するメソッドである。”MsReDraw”メソッドは、上述した”MsRePaint”メソッドとは異なり、地図の背景を含んで再描画を行うため、例えば、既に表示しているシンボルを消去したい場合や、シンボルの合成表示を行う場合に用いられるものである。このとき、OCXは、”MsReDraw”メソッドによって地図の描画を行った後、呼び出し元のアプリケーションであるエクセルに対して、シンボル等の合成情報の表示が可能になった旨を後述する”EvUserDraw”イベントによって通知する。そして、OCXは、エクセルが、”EvUserDraw”イベントを受け取った後シンボル等の表示依頼を行うことにより、地図上にシンボル等の合成を行う。
【0057】
”MsCreateBitmap”メソッドは、現在表示している地図を指定されたサイズのビットマップ形式のファイルとして出力するメソッドであり、現在表示している地図について、指定されたサイズでビットマップ形式のファイルを作成し、指定された格納場所を含むファイル名で出力するものである。なお、ビットマップ形式のファイルとして出力される部分は、画面全体ではなく、OCXに描画されている地図のみである。
【0058】
”MsGetRealCenter”メソッドは、現在表示している地図の中心位置の位置情報を取得するメソッドである。”MsGetRealCenter”メソッドは、現在表示している地図の中心位置の緯度及び経度を、例えば1/128秒単位で返す。
【0059】
”MsGetRealSize”メソッドは、現在表示している地図の縦方向及び横方向の長さを取得するメソッドである。”MsGetRealSize”メソッドは、現在表示している地図の縦方向及び横方向の長さを、例えばセンチメートル単位で返す。
【0060】
”MsGetRealRect”メソッドは、現在表示している地図のRECT情報、すなわち、左上経度、左上緯度、右下経度、右下緯度を取得するメソッドである。”MsGetRealRect”メソッドは、現在表示している地図の左上経度、左上緯度、右下経度、右下緯度を、それぞれ、例えば1/128秒単位で返す。
【0061】
”MsGetLevel”メソッドは、現在表示している地図の表示レベルを取得するメソッドであり、現在表示している地図に対するレベル番号を戻り値として返すものである。
【0062】
”MsSetCursor”メソッドは、OCXのウィンドウ上をポインティングするマウスカーソルを変更するメソッドである。”MsSetCursor”メソッドは、任意に指定されたカーソル番号に対応するマウスカーソルをロードし、マウスカーソルの形状を変更する。
【0063】
”MsSetCursorFile”メソッドは、上述した”MsSetCursor”メソッドと同様に、OCXのウィンドウ上をポインティングするマウスカーソルを変更するメソッドであるが、”MsSetCursor”メソッドとは異なり、任意のフォルダに作成したマウスカーソルのファイル名をフルパスで指定することによって当該マウスカーソルをロードし、マウスカーソルの形状を変更するものである。
【0064】
”MsInputLocal”メソッドは、図形登録モードに移行して登録結果をローカルフォルダに保存するメソッドである。なお、本処理にて作成されたローカルファイルは、OCX側で管理するファイルである。
【0065】
”MsSetSearch”メソッドは、画面内に表示しているユーザレイヤをターゲットとして、指定された内容にて該当する情報を検索するメソッドである。この”MsSetSearch”メソッドによる検索結果は、後述する”EvSearchObject”イベントによって通知される。
【0066】
”MsDelObject”メソッドは、フレームからの表示依頼によってOCXでメモリ展開している図形情報をメモリ上から削除するメソッドである。なお、この”MsDelObject”メソッドを呼び出した場合であっても、図形情報は、メモリ上から削除されるのみであり、実際に管理されているファイルやデータベースから削除されることはない。
【0067】
”MsShowObject”メソッドは、指定された識別子に対応する図形情報の表示及び/又は非表示を行うメソッドである。なお、この”MsShowObject”メソッドによる表示及び/又は非表示の対象は、フレーム側からの依頼によってOCXでメモリ展開している図形情報である。
【0068】
”MsEditLocal”メソッドは、図形編集モードに移行して編集結果をローカルフォルダに保存するメソッドである。なお、本処理にて作成されたローカルファイルは、OCX側で管理するファイルである。
【0069】
”MsScaleWindow”メソッドは、地図上にメジャーのようなサイズ変更が可能なスケールバーを表示するメソッドである。
【0070】
”MsLayerDlg”メソッドは、レイヤの表示及び/又は非表示を行うレイヤ設定ダイアログを表示するメソッドであり、任意のレイヤの表示及び/又は非表示を可能とするものである。
【0071】
”MsColorDlg”メソッドは、レイヤの色設定を行うカラー設定ダイアログを表示するメソッドであり、例えば256色のパレットから任意のレイヤのカラー設定及び文字のフォントサイズ設定を可能とするものである。
【0072】
つぎに、各種イベントについて説明する。描画処理装置1は、例えば図5に示すような内容からなる各種イベントを用意する。なお、同図においては、イベント名と、これらの各イベントに対する説明とを記載している。
【0073】
”EvLButtonUp”イベントは、OCX上でのマウス左ボタンアップに対するイベントを取得する際に用いられ、OCX上にてマウス左ボタンアップされたときの座標情報を返すイベントである。”EvLButtonUp”イベントは、マウス左ボタンアップされた位置に対するOCX内の縦方向及び横方向のピクセル座標XYと、マウス左ボタンアップされた位置に対する例えば1/128秒単位の緯度及び経度とを返す。
【0074】
”EvLButtonDown”イベントは、OCX上でのマウス左ボタンダウンに対するイベントを取得する際に用いられ、OCX上にてマウス左ボタンダウンされたときの座標情報を返すイベントである。”EvLButtonDown”イベントは、マウス左ボタンダウンされた位置に対するOCX内の縦方向及び横方向のピクセル座標XYと、マウス左ボタンダウンされた位置に対する例えば1/128秒単位の緯度及び経度とを返す。
【0075】
”EvRButtonUp”イベントは、OCX上でのマウス右ボタンアップに対するイベントを取得する際に用いられ、OCX上にてマウス右ボタンアップされたときの座標情報を返すイベントである。”EvRButtonUp”イベントは、マウス右ボタンアップされた位置に対するOCX内の縦方向及び横方向のピクセル座標XYと、マウス右ボタンアップされた位置に対する例えば1/128秒単位の緯度及び経度とを返す。
【0076】
”EvRButtonDown”イベントは、OCX上でのマウス右ボタンダウンに対するイベントを取得する際に用いられ、OCX上にてマウス右ボタンダウンされたときの座標情報を返すイベントである。”EvRButtonDown”イベントは、マウス右ボタンダウンされた位置に対するOCX内の縦方向及び横方向のピクセル座標XYと、マウス右ボタンダウンされた位置に対する例えば1/128秒単位の緯度及び経度とを返す。
【0077】
”EvLButtonDblClk”イベントは、OCX上でのマウス左ダブルクリックに対するイベントを取得する際に用いられ、OCX上にてマウス左ダブルクリックされたときの座標情報を返すイベントである。”EvLButtonDblClk”イベントは、マウス左ダブルクリックされた位置に対するOCX内の縦方向及び横方向のピクセル座標XYと、マウス左ダブルクリックされた位置に対する例えば1/128秒単位の緯度及び経度とを返す。
【0078】
”EvMouseMove”イベントは、OCX上でのマウス移動に対するイベントを取得する際に用いられ、OCX上にてマウス移動されたときの座標情報を返すイベントである。”EvMouseMove”イベントは、マウス移動された位置に対するOCX内の縦方向及び横方向のピクセル座標XYと、マウス移動された位置に対する例えば1/128秒単位の緯度及び経度とを返す。
【0079】
”EvNewLevel”イベントは、アプリケーション側に表示レベルが変化した旨を通知するイベントである。具体的には、”EvNewLevel”イベントは、上述した”MsZoomIn”メソッド、”MsZoomOut”メソッド、”MsRequest”メソッド、又は”MsRequestKei”メソッド等により、現在表示している地図の表示レベルが変化した場合に発行される。”EvNewLevel”イベントは、新たに設定されたレベル番号と、新たに表示しているOCXの縦横の長さ(例えばセンチメートル単位)とを返す。
【0080】
”EvUserDraw”イベントは、上述した”MsReDraw”メソッドが呼び出された後、OCX側で地図描画が完了した旨を通知するとともに、そのときに表示しようとしている地図の座標情報を返すイベントである。”EvUserDraw”イベントは、現在表示しようとしている地図の中心経度、中心緯度、左上経度、左上緯度、右下経度、右下緯度を、それぞれ、例えば1/128秒単位で返す。アプリケーション側では、この”EvUserDraw”イベントを取得すると、シンボル等の重ね合わせ情報の表示依頼を行うことが可能となるとともに、表示している範囲を示す情報を返すことから、描画に必要な情報か否かの判断を行うことが可能となる。
【0081】
”EvMeasure”イベントは、地図描画エンジンコントロールが標準実装している機能である距離計測、面積計測、及び方位に関する結果を取得する際に用いられるイベントである。”EvMeasure”イベントは、距離計測の場合には、2点以上のポイントを指定された際に、点間を結ぶ距離を例えばセンチメートル単位で返す。また、”EvMeasure”イベントは、面積計測の場合には、面積計測の終了を意味するマウス右クリックのタイミングで指定された点に囲まれた面積を返す。さらに、”EvMeasure”イベントは、方位の場合には、指定された2点間の示す角度を例えば360度表現で返す。
【0082】
”EvNewMode”イベントは、動作モードが変更された場合に、動作モードが変更した旨を通知するイベントである。
【0083】
”EvStating”イベントは、OCXに対してメソッド等による依頼を行うことが可能となった旨を通知するイベントである。すなわち、アプリケーション側では、この”EvStating”イベントを受け取った後に、各種メソッドを呼び出すことが可能となる。描画処理装置1においては、アプリケーション側がこの”EvStating”イベントを受け取った後に、上述した”MsOcxInit”メソッドを用いてOCXの初期化が行われる。
【0084】
”EvNew3DLevel”イベントは、標高データ等の3次元表示を行っている際に角度又は高さに対して変化があった場合に通知されるイベントである。”EvNew3DLevel”イベントは、角度を例えば360度表現で返すとともに、高さを例えばセンチメートル単位で返す。
【0085】
”EvNewSize”イベントは、OCXのサイズが変更された旨を通知するイベントであり、OCXのサイズが変化したタイミングで変化後のOCXの縦横の長さを例えばピクセル単位で通知するものである。
【0086】
”EvSearchObject”イベントは、上述した”MsSetSearch”メソッドによって検索モードにされた後、地図上の指定されたポイントに基づいて検索条件に該当する検索結果を返すイベントである。具体的には、”EvSearchObject”イベントは、検索結果のオブジェクトと、検索結果として該当するオブジェクトの識別子とを返す。また、”EvSearchObject”イベントは、指定された検索点の縦方向及び横方向のピクセル座標XYと、指定された検索点の例えば1/128秒単位の緯度及び経度とを返す。
【0087】
つぎに、各種プロパティについて説明する。描画処理装置1は、例えば図6に示すような内容からなる各種プロパティを用意する。なお、同図においては、プロパティ名と、これらの各プロパティに対する説明とを記載している。
【0088】
”AutoDraw”プロパティは、シンボル登録等によって即時描画を行う際に用いられるプロパティである。”InitFlg”プロパティは、OCXが初期化されているか否かを判定するフラグである。
【0089】
”Shape.Label.IconNo”プロパティは、シンボル情報登録時に用いられるプロパティであり、アイコン番号を指定するものである。”Shape.Label.Slope”プロパティは、シンボル情報登録時に用いられるプロパティであり、回転角度を指定するものである。
【0090】
”Shape.Label.x”プロパティは、シンボル情報登録時に用いられるプロパティであり、シンボルの横方向の座標Xを指定するものである。”Shape.Label.y”プロパティは、シンボル情報登録時に用いられるプロパティであり、シンボルの縦方向の座標Yを指定するものである。
【0091】
”Shape.Label.SymSize”プロパティは、シンボル情報登録時に用いられるプロパティであり、アイコンのサイズを指定するものである。”Shape.Label.TextSize”プロパティは、シンボル情報登録時に用いられるプロパティであり、文字のサイズを指定するものである。
【0092】
”Shape.Label.TextPos”プロパティは、シンボル情報登録時に用いられるプロパティであり、文字の表示位置を指定するものである。”Shape.Label.TextColor”プロパティは、シンボル情報登録時に用いられるプロパティであり、文字の色を指定するものである。
【0093】
”Shape.Label.LabelFlg”プロパティは、シンボル情報登録時に用いられるプロパティであり、ラベルを表示するか否かを示すフラグである。”Shape.Label.LabelColor”プロパティは、シンボル情報登録時に用いられるプロパティであり、ラベルの背景色を指定するものである。
【0094】
”Shape.Label.FrameColor”プロパティは、シンボル情報登録時に用いられるプロパティであり、ラベルの淵の色を指定するものである。”Shape.Label.Text”プロパティは、シンボル情報登録時に用いられるプロパティであり、ラベルの文字列を指定するものである。
【0095】
”Shape.Line.Color”プロパティは、線情報登録時に用いられるプロパティであり、色番号を指定するものである。”Shape.Line.Size”プロパティは、線情報登録時に用いられるプロパティであり、線のサイズを指定するものである。
【0096】
”Shape.Line.Type”プロパティは、線情報登録時に用いられるプロパティであり、線の種類を指定するものである。”Shape.Line.Count”プロパティは、線情報登録時に用いられるプロパティであり、線の座標数を指定するものである。”Shape.Line.PointClear”プロパティは、線情報登録時に用いられるプロパティであり、線情報登録時に一旦座標情報をクリアするものである。
【0097】
”Shape.Cross.Taget.x”プロパティは、十字線表示時に用いられるプロパティであり、十字中心の緯度を指定するものである。”Shape.Cross.Taget.y”プロパティは、十字線表示時に用いられるプロパティであり、十字中心の経度を指定するものである。
【0098】
”Shape.Cross.Taget.ColorNo”プロパティは、十字線表示時に用いられるプロパティであり、十字線の色を指定するものである。”Shape.Cross.Taget.Size”プロパティは、十字線表示時に用いられるプロパティであり、十字線のサイズを指定するものである。”Shape.Cross.Taget.Type”プロパティは、十字線表示時に用いられるプロパティであり、十字線の種類を指定するものである。
【0099】
描画処理装置1は、このような各種メソッド、各種イベント、各種プロパティを用意することにより、本来のGISの特徴をいかんなく発揮するために必要とされる各種機能を実現することができる。
【0100】
さて、このような描画処理装置1の処理について具体的に説明するために、地図描画エンジンコントロールの初期化処理、距離計測を行う際のイベント処理、並びに、地図の拡大及び/又は縮小処理を例に挙げて説明する。
【0101】
まず、地図描画エンジンコントロールの初期化処理について説明する。
【0102】
描画処理装置1は、図7に示すような一連の工程を経ることにより、OCXとしての地図描画エンジンコントロールの初期化処理を行う。
【0103】
まず、描画処理装置1においては、同図に示すように、ステップS1において、オペレータ(ユーザ)がエクセルを起動した状態でマウスを用いてアドインコマンドバーを押下することにより、地図描画エンジンコントロールと、この地図描画エンジンコントロールを操作するためのVBAによるマクロ処理を実行するための各種コントロールオブジェクトとが自動生成され、ワークシート上に貼り付けられる。
【0104】
続いて、描画処理装置1においては、ステップS2において、オペレータがキーボードを用いて、設定ファイルを格納する設定フォルダのパスをワークシート上の所定のセルに入力する。
【0105】
続いて、描画処理装置1においては、ステップS3において、オペレータがマウスを用いて、初期化処理を開始するための所定のコントロールオブジェクトを押下する。これにより、描画処理装置1においては、OCXとしての地図描画エンジンコントロールの初期化処理が開始される。
【0106】
すなわち、描画処理装置1においては、ステップS4において、ワークシートによって初期化用のマクロを呼び出す。これに応じて、描画処理装置1においては、ステップS5において、VBAによってマクロ処理を実行することにより、上述した”MsOcxInit”メソッドを発行し、この”MsOcxInit”メソッドを地図描画エンジンコントロールに供給し、地図描画エンジンコントロールの初期化を行う。
【0107】
なお、ステップS5におけるVBAのロジックは、図8に示すように記述される。ここで、同図中5行目には、設定フォルダのパスを取得する旨の命令が記述されているが、”C3”は、ステップS2にて入力されたセル番号を示している。また、同図中6行目には、地図描画エンジンコントロールの初期化を行うための”MsOcxInit”メソッドを呼び出す旨の命令が記述されている。さらに、同図中8行目には、初期モードを設定するための命令が記述されているとともに、同図中9行目には、初期スケールを設定するための命令が記述されている。
【0108】
そして、描画処理装置1においては、図7中ステップS6において、地図描画エンジンコントロールによってデータベースから所定の空間データを取得し、ステップS7において、取得した空間データをワークシート上に描画し、一連の初期化処理を終了する。
【0109】
描画処理装置1は、ホストアプリケーションであるエクセルをプラットフォームとして、ワークシート、VBA、及び地図描画エンジンコントロールの間でこのような一連の工程を経ることにより、OCXとしての地図描画エンジンコントロールの初期化処理を行うことができる。
【0110】
つぎに、距離計測を行う際のイベント処理について説明する。
【0111】
描画処理装置1は、図9に示すような一連の工程を経ることにより、距離計測を行う。なお、ここでは、地図描画エンジンコントロールがエクセルのワークシート上貼り付けられ、地図描画エンジンコントロールの初期化処理が終了しているものとして説明を行う。
【0112】
まず、描画処理装置1においては、同図に示すように、ステップS11において、オペレータ(ユーザ)がマウスを用いて、距離計測を行うための所定のコントロールオブジェクトを押下する。これにより、描画処理装置1においては、距離計測処理が開始される。
【0113】
すなわち、描画処理装置1においては、ステップS12において、ワークシートによって距離計測用のマクロを呼び出す。これに応じて、描画処理装置1においては、ステップS13において、VBAによってマクロ処理を実行することにより、距離計測モードを示す”LINE_MEASURE”を引数とする上述した”MsSetMode”メソッドを発行し、この”MsSetMode”メソッドを地図描画エンジンコントロールに供給し、地図描画エンジンコントロールの動作モードを距離計測モードに設定する。
【0114】
なお、ステップS13におけるVBAのロジックは、図10(A)に示すように記述される。ここで、同図中2行目には、地図描画エンジンコントロールの動作モードを距離計測モードに設定するための”MsSetMode”メソッドを呼び出す旨の命令が記述されている。
【0115】
続いて、描画処理装置1においては、図9中ステップS14において、距離計測を行う2点間のうち開始位置を設定するために、オペレータがマウスを用いて、地図上における所望の位置をクリックする。このクリックされた旨を示すマウスイベントは、地図描画エンジンコントロールに供給される。これに応じて、描画処理装置1においては、ステップS15において、地図描画エンジンコントロールにより、クリックされた位置を距離計測開始点として地図上に描画する。
【0116】
また、描画処理装置1においては、ステップS16において、距離計測を行う2点間のうち終了位置を設定するために、オペレータがマウスを用いて、地図上における所望の位置をクリックする。このクリックされた旨を示すマウスイベントは、地図描画エンジンコントロールに供給される。これに応じて、描画処理装置1においては、ステップS17において、地図描画エンジンコントロールにより、クリックされた位置を距離計測終了点として地図上に描画する。
【0117】
続いて、描画処理装置1においては、ステップS18において、地図描画エンジンコントロールによって距離計測処理を行い、ステップS19において、求めた計測結果をワークシートに出力するために、地図描画エンジンコントロールによって計測結果を通知するためのイベントハンドラを呼び出す。
【0118】
なお、ステップS19におけるVBAのロジックは、図10(B)に示すように記述される。ここで、同図中2行目乃至4行目には、計測結果を表示する旨の命令が記述されているが、”C31”,”C32”,”C33”は、それぞれ、計測結果を出力するワークシート上のセル番号を示している。
【0119】
そして、描画処理装置1においては、図9中ステップS20において、VBAイベントプロシージャによって地図描画エンジンコントロールから計測結果を受け取ると、計測結果を示すデータをワークシート上の所定のセルに出力して反映させ、一連の距離計測処理を終了する。
【0120】
描画処理装置1は、ホストアプリケーションであるエクセルをプラットフォームとして、ワークシート、VBA、及び地図描画エンジンコントロールの間でこのような一連の工程を経ることにより、地図上の任意の複数点間の距離計測を行うことができる。
【0121】
最後に、地図の拡大及び/又は縮小処理について説明する。
【0122】
描画処理装置1は、図11に示すような一連の工程を経ることにより、地図の拡大及び/又は縮小処理を行う。なお、ここでも、地図描画エンジンコントロールがエクセルのワークシート上貼り付けられ、地図描画エンジンコントロールの初期化処理が終了しているものとして説明を行う。
【0123】
まず、描画処理装置1においては、同図に示すように、ステップS21において、オペレータ(ユーザ)がマウスを用いて、地図の拡大及び/又は縮小を行うための所定のコントロールオブジェクトを押下する。これにより、描画処理装置1においては、地図の拡大及び/又は縮小処理が開始される。
【0124】
すなわち、描画処理装置1においては、ステップS22において、ワークシートによって拡大及び/又は縮小用のマクロを呼び出す。これに応じて、描画処理装置1においては、ステップS23において、VBAによってマクロ処理を実行することにより、上述した”MsZoomIn”メソッド又は”MsZoomOut”メソッドを発行し、これらの”MsZoomIn”メソッド又は”MsZoomOut”メソッドを地図描画エンジンコントロールに供給する。
【0125】
なお、ステップS23におけるVBAのロジックは、図12に示すように記述される。ここで、同図中2行目乃至6行目には、拡大を行うためのコントロールオブジェクトが押下された場合には、”MsZoomIn”メソッドを呼び出して拡大処理を行う一方で、縮小を行うためのコントロールオブジェクトが押下された場合には、”MsZoomOut”メソッドを呼び出して縮小処理を行う旨の命令が記述されている。
【0126】
そして、描画処理装置1においては、図11中ステップS24において、地図描画エンジンコントロールによってデータベースから所定の空間データを取得し、ステップS25において、取得した空間データをワークシート上に描画し、一連の初期化処理を終了する。
【0127】
描画処理装置1は、ホストアプリケーションであるエクセルをプラットフォームとして、ワークシート、VBA、及び地図描画エンジンコントロールの間でこのような一連の工程を経ることにより、地図の拡大及び/又は縮小処理を行うことができる。
【0128】
以上説明したように、本発明の実施の形態として示す描画処理装置1は、ホストアプリケーションであるエクセルをプラットフォームとして、エクセルのワークシートに地図描画エンジンコントロールをOCXとして貼り付けるとともに、ワークシートと地図描画エンジンコントロールとの間にVBAを介在させ、ワークシートによって呼び出されたVBAを介して指定された描画対象としての空間データを地図描画エンジンコントロールによって取得し、取得した空間データをワークシート上に描画する。これにより、描画処理装置1は、VBAを介して各種機能を実現するための制御を行うことが可能となることから、各種機能を実現するためのメニューをユーザが容易にカスタマイズすることが可能となり、各業務内容に応じたアプリケーションを作成する必要がないことから、設計者及びユーザの負担軽減を図り、低コスト化を図ることができる。また、描画処理装置1は、VBAを介した制御を行うことにより、処理の高速化を図ることができ、例えば地図のスクロール動作等を体感的に違和感なく行うことができる。このように、描画処理装置1は、本来のGISの特徴をいかんなく発揮するために必要とされる各種機能を容易に実現するGISを構築することができる。
【0129】
なお、描画処理装置1は、インターネット等を介していわゆるActiveXコントロールとしての所定の地図描画エンジンコントロールをダウンロードし、ブラウザ上で地図描画エンジンコントロールを実行するシステムであるいわゆるウェブGISとは全く異なる概念のもとに構成されるものである。
【0130】
すなわち、ウェブGISにおいては、ブラウザ上でActiveXコントロールとしての地図描画エンジンコントロールを動作させるために、所定のアプリケーションを地図描画エンジンコントロールに合わせて作成する必要があり、このアプリケーションは、ユーザが任意に変更操作することは不可能に構成される。これに対して、描画処理装置1においては、ウェブGISにおけるアプリケーションに対応するものとしてVBAを用いていることから、例えばエクセルのワークシート上のデータ等に応じてユーザが任意且つ動的に変更操作することができる。したがって、描画処理装置1は、例えば地図やコントロールオブジェクト等をマウスを用いてドラッグするといった動作を行うこともでき、ウェブGISと比較して、遥かに柔軟且つ容易なカスタマイズを実現することができ、利便に優れたものである。
【0131】
なお、本発明は、上述した実施の形態に限定されるものではない。例えば、上述した実施の形態では、第1のアプリケーションとしてエクセルを用いるものとして説明したが、本発明は、エクセル以外の任意の表計算ソフトウェアであってもよいことは勿論である。また、本発明においては、第1のアプリケーションとしては表計算ソフトウェアでなくてもよく、例えば、ワード等のワードプロセッシングソフトウェアやパワーポイント(登録商標)等のプレゼンテーションソフトウェアといったように、OCXを貼り付けられるコントロールコンテナとしてのアプリケーションであれば、いかなるものであっても適用することができる。
【0132】
また、上述した実施の形態では、第2のアプリケーションとして地図描画エンジンを用いるものとして説明したが、本発明は、例えばCADソフトウェア等であってもよく、各種情報が所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画することが可能なアプリケーションであれば、いかなるものであっても適用することができる。
【0133】
さらに、上述した実施の形態では、第3のアプリケーションとしてVBAを用いるものとして説明したが、本発明は、例えばいわゆるCOM(Component Object Model)やOCX等であってもよい。
【0134】
このように、本発明は、その趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0135】
【発明の効果】
以上詳細に説明したように、本発明にかかる描画処理装置、描画処理方法、及び描画処理プログラムは、それぞれ、第1のアプリケーションを起動した状態で第2のアプリケーションが起動されると、この第2のアプリケーションをソフトウェア部品として起動画面上に貼り付けて表示手段に表示し、第1のアプリケーションによって呼び出された第3のアプリケーションを介して指定された描画対象としての各種情報を第2のアプリケーションによって取得し、取得した各種情報を第1のアプリケーションの起動画面上に描画することにより、本来のGISの特徴をいかんなく発揮するために必要とされる各種機能を実現することができ、また、これら各種機能を実現するためのメニューをユーザが容易にカスタマイズすることを可能として低コスト化且つ処理の高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態として示す描画処理装置の表示内容を説明する図である。
【図2】同描画処理装置の構成を説明する図である。
【図3】同描画処理装置における基本メカニズムを説明する図である。
【図4】各種メソッドを説明する図である。
【図5】各種イベントを説明する図である。
【図6】各種プロパティを説明する図である。
【図7】同描画処理装置において地図描画エンジンコントロールの初期化処理を行う際の一連の工程を説明するフローチャートである。
【図8】図7に示す処理におけるVBAのロジックを説明する図であり、”MsOcxInit”メソッドを発行するためのVBAのロジックについて説明する図である。
【図9】同描画処理装置において距離計測を行う際の一連の工程を説明するフローチャートである。
【図10】図9に示す処理におけるVBAのロジックを説明する図であり、(A)は、”MsSetMode”メソッドを発行するためのVBAのロジックについて説明し、(B)は、計測結果を通知するためのイベントハンドラを呼び出すためのVBAのロジックについて説明する図である。
【図11】同描画処理装置において地図の拡大及び/又は縮小処理を行う際の一連の工程を説明するフローチャートである。
【図12】図11に示す処理におけるVBAのロジックを説明する図であり、”MsZoomIn”メソッド又は”MsZoomOut”メソッドを発行するためのVBAのロジックについて説明する図である。
【図13】レイヤ構造について説明する図である。
【符号の説明】
1 描画処理装置、 2 地図データベース、 3 ユーザレイヤデータベース、 4 ユーザ業務データベース、 5 衛星、 10 ワークシート、 11 地図描画エンジンコントロール、 11a メソッド・プロパティインターフェース、 11b イベントインターフェース、 12 コントロールオブジェクト、 13 VBA、 13a 呼出インターフェース、 13b イベントハンドラ13b
Claims (6)
- 各種情報を描画して所定の表示手段に対して表示する描画処理装置であって、
起動画面上で所定のソフトウェア部品をオブジェクトとして貼り付け、当該ソフトウェア部品の機能を組み込み可能であるコントロールコンテナとしての第1のアプリケーションを実行する第1のアプリケーション実行手段と、
上記第1のアプリケーション上で動作するソフトウェア部品として構成され、各種情報が所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画することが可能な第2のアプリケーションを実行する第2のアプリケーション実行手段と、
上記第1のアプリケーションと上記第2のアプリケーションとの間に介在し、上記第1のアプリケーションとの間でメッセージの授受を行うインターフェースとして機能する第3のアプリケーションを実行する第3のアプリケーション実行手段とを備えること
を特徴とする描画処理装置。 - 上記第1のアプリケーション実行手段は、上記第1のアプリケーションを起動した状態で上記第2のアプリケーションが起動されると、上記第2のアプリケーションをソフトウェア部品として起動画面上に貼り付けて上記表示手段に表示し、
上記第2のアプリケーション実行手段は、上記第1のアプリケーションによって呼び出された上記第3のアプリケーションを介して指定された描画対象としての各種情報を取得し、取得した各種情報を上記第1のアプリケーションの起動画面上に描画すること
を特徴とする請求項1記載の描画処理装置。 - 上記第1のアプリケーションは、表計算ソフトウェアであり、上記第3のアプリケーションは、上記第1のアプリケーションを制御するマクロ言語であること
を特徴とする請求項1又は請求項2記載の描画処理装置。 - 上記第2のアプリケーションは、地理情報システムにて用いられる少なくとも地図情報を含む各種情報を描画する地図描画エンジンであることを特徴とする請求項1乃至請求項3のうちいずれか1項記載の描画処理装置。
- 各種情報を描画して所定の表示手段に対して表示する描画処理方法であって、
起動画面上で所定のソフトウェア部品をオブジェクトとして貼り付け、当該ソフトウェア部品の機能を組み込み可能であるコントロールコンテナとしての第1のアプリケーションが起動された状態で、各種情報が所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画することが可能な第2のアプリケーションを、上記第1のアプリケーション上で動作するソフトウェア部品として起動画面上に貼り付けて上記表示手段に表示する貼り付け工程と、
上記第1のアプリケーションと上記第2のアプリケーションとの間に介在し、上記第1のアプリケーションとの間でメッセージの授受を行うインターフェースとして機能する第3のアプリケーションを、上記第1のアプリケーションによって呼び出して実行し、上記第3のアプリケーションを介して指定された描画対象としての各種情報を上記第2のアプリケーションによって取得する情報取得工程と、
上記第2のアプリケーションによって取得した各種情報を上記第1のアプリケーションの起動画面上に描画する描画工程とを備えること
を特徴とする描画処理方法。 - 各種情報を描画して所定の表示手段に対して表示するコンピュータ実行可能な描画処理プログラムであって、
起動画面上で所定のソフトウェア部品をオブジェクトとして貼り付け、当該ソフトウェア部品の機能を組み込み可能であるコントロールコンテナとしての第1のアプリケーションが起動された状態で、各種情報が所定の項目毎に同じ座標値を有するレイヤ構造として階層化されたデータについて、任意のレイヤを重畳して描画することが可能な第2のアプリケーションを、上記第1のアプリケーション上で動作するソフトウェア部品として起動画面上に貼り付けて上記表示手段に表示する貼り付け処理と、
上記第1のアプリケーションと上記第2のアプリケーションとの間に介在し、上記第1のアプリケーションとの間でメッセージの授受を行うインターフェースとして機能する第3のアプリケーションを、上記第1のアプリケーションによって呼び出して実行し、上記第3のアプリケーションを介して指定された描画対象としての各種情報を上記第2のアプリケーションによって取得する情報取得処理と、
上記第2のアプリケーションによって取得した各種情報を上記第1のアプリケーションの起動画面上に描画する描画処理とを備えること
を特徴とする描画処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002291181A JP2004126286A (ja) | 2002-10-03 | 2002-10-03 | 描画処理装置、描画処理方法、及び描画処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002291181A JP2004126286A (ja) | 2002-10-03 | 2002-10-03 | 描画処理装置、描画処理方法、及び描画処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004126286A true JP2004126286A (ja) | 2004-04-22 |
Family
ID=32282839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002291181A Withdrawn JP2004126286A (ja) | 2002-10-03 | 2002-10-03 | 描画処理装置、描画処理方法、及び描画処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004126286A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009276434A (ja) * | 2008-05-13 | 2009-11-26 | Yahoo Japan Corp | 地図表示システム |
JP2011059818A (ja) * | 2009-09-07 | 2011-03-24 | Sabo Frontier Foundation | 砂防関連情報管理システム |
CN104156285A (zh) * | 2014-08-28 | 2014-11-19 | 同济大学 | 基于vba模块的分区燃料电池实验数据处理方法及系统 |
JP2020035013A (ja) * | 2018-08-27 | 2020-03-05 | キヤノン株式会社 | 表示制御装置および表示制御方法、並びにプログラム |
CN111737778A (zh) * | 2020-06-04 | 2020-10-02 | 广州拓普斯电子科技有限公司 | 一种红外触摸框的光网绘制方法 |
-
2002
- 2002-10-03 JP JP2002291181A patent/JP2004126286A/ja not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009276434A (ja) * | 2008-05-13 | 2009-11-26 | Yahoo Japan Corp | 地図表示システム |
JP2011059818A (ja) * | 2009-09-07 | 2011-03-24 | Sabo Frontier Foundation | 砂防関連情報管理システム |
CN104156285A (zh) * | 2014-08-28 | 2014-11-19 | 同济大学 | 基于vba模块的分区燃料电池实验数据处理方法及系统 |
CN104156285B (zh) * | 2014-08-28 | 2018-07-06 | 同济大学 | 基于vba模块的分区燃料电池实验数据处理方法及系统 |
JP2020035013A (ja) * | 2018-08-27 | 2020-03-05 | キヤノン株式会社 | 表示制御装置および表示制御方法、並びにプログラム |
JP7265822B2 (ja) | 2018-08-27 | 2023-04-27 | キヤノン株式会社 | 表示制御装置および表示制御方法、並びにプログラム |
CN111737778A (zh) * | 2020-06-04 | 2020-10-02 | 广州拓普斯电子科技有限公司 | 一种红外触摸框的光网绘制方法 |
CN111737778B (zh) * | 2020-06-04 | 2024-04-30 | 广州拓普斯电子科技有限公司 | 一种红外触摸框的光网绘制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2790176B1 (en) | Computing systems, devices and methods for rendering maps remotely from an host application | |
US9417777B2 (en) | Enabling quick display transitions between indoor and outdoor map data | |
US20150062114A1 (en) | Displaying textual information related to geolocated images | |
EP2727008B1 (en) | Managing web page data in a composite document | |
US20130249812A1 (en) | Interactive visual representation of points of interest data | |
US9134886B2 (en) | Providing indoor facility information on a digital map | |
US20020091758A1 (en) | Map viewing, publishing, and provisioning system | |
US20130007575A1 (en) | Managing Map Data in a Composite Document | |
CN108008871A (zh) | 一种页面生成方法及装置 | |
US20120213416A1 (en) | Methods and systems for browsing heterogeneous map data | |
WO2013003451A2 (en) | Managing satellite and aerial image data in a composite document | |
JP5289379B2 (ja) | 地図表示装置、方法、プログラム及び地図表示サーバ | |
CN114675925B (zh) | 组态图像处理方法、装置、计算机设备、存储介质 | |
CN111080782A (zh) | 基于实景三维地理信息系统的可视化系统 | |
US11392269B2 (en) | Geospatial asset management | |
US20130167049A1 (en) | Geographic information service system | |
US20150356065A1 (en) | Converting presentation metadata to a browser-renderable format during compilation | |
KR101171566B1 (ko) | 합성 공간 표현의 생성 | |
JP5273610B2 (ja) | 地図サーバ装置 | |
Zhang et al. | A method based on graphic entity for visualizing complex map symbols on the web | |
JP2004126286A (ja) | 描画処理装置、描画処理方法、及び描画処理プログラム | |
CN111710045A (zh) | 基于虚拟现实技术的电力营业厅导览系统及其构建方法 | |
CN114416897B (zh) | 基于二维地图的信息处理方法、装置、系统、设备及介质 | |
CN112860834B (zh) | 一种基于webgis的第三方地图对接装置和方法 | |
Park | A Study on User Interface Design Based on Geo-Infographic and Augmented Reality Technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060110 |