JP2004348708A - 地図情報システム用ポリゴン生成方法及びその装置 - Google Patents

地図情報システム用ポリゴン生成方法及びその装置 Download PDF

Info

Publication number
JP2004348708A
JP2004348708A JP2004075959A JP2004075959A JP2004348708A JP 2004348708 A JP2004348708 A JP 2004348708A JP 2004075959 A JP2004075959 A JP 2004075959A JP 2004075959 A JP2004075959 A JP 2004075959A JP 2004348708 A JP2004348708 A JP 2004348708A
Authority
JP
Japan
Prior art keywords
polygon
vertex coordinates
vertex
house frame
offset
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.)
Pending
Application number
JP2004075959A
Other languages
English (en)
Inventor
Atsushi Yano
篤史 矢野
Tokushi Sato
督史 佐藤
Hiromichi Muto
博道 武藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Engineering Co Ltd
Original Assignee
Hitachi Engineering Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Engineering Co Ltd filed Critical Hitachi Engineering Co Ltd
Priority to JP2004075959A priority Critical patent/JP2004348708A/ja
Publication of JP2004348708A publication Critical patent/JP2004348708A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Instructional Devices (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】
本発明の目的は、表示指示から表示が行われるまでの演算処理量を減少させてポリゴン生成を行うことができる地図情報システム用ポリゴン生成方法及びその装置を提供することにある。
【解決手段】
本発明は、地図データに記憶されている表示対象家枠を構成する複数の頂点座標を読みだし、前記頂点座標のi番目の頂点と隣合う(i+1)番目の頂点を結ぶ第1の線分を求め、次いで(i+1)番目の頂点と(i+2)番目の頂点を結ぶ第2の線分を求め、前記第1の線分に対する前記第2の線分がなす角度差を求め、該角度差が予め定められた値よりも小さいとき、前記(i+1)番目の頂点座標を間引く過程を順次全頂点座標によって形成される線分に対して繰り返し、間引かれなかった前記頂点座標に基づいてポリゴン生成することを特徴とする地図情報システム用ポリゴン生成方法にある。
【選択図】 図1

Description

本発明は、住宅地図の家枠の内側を強調表示する新規な地図情報システム用ポリゴン生成方法及びその装置に関する。
従来の地図情報システムでは、電子計算機の入力装置(マウス・キーボード)を操作して住所検索を行うと地図データ記憶部に記憶されている部分から該当する住所の地図データを読み出し、その家枠のポリゴンを元に演算(ポリゴンの内側にポリゴンの角線分と平行な補助線を一定間隔で引いて、それらの交点を結ぶことで強調表示用のポリゴンを演算)して、その結果を表示装置(ディスプレイ)に表示していた。
従来、この種の装置として特許文献1がある。この特許文献1は、ガス、水道、電気などの広域事業者が工事区域を示すときの図面の作成に係わり、工事を行う基準線周りのポリゴン自動生成方法に関するものである。工事区域の範囲を明示するような場合、基準線の両側に所定長さだけポリゴン構成線を自動作成していくことにより、作成者側の作業負担を軽減すると共に、見栄えの良い図面を作成することができる。
特開平9-185700号公報
従来の方法では、地図情報から得られた地図データに基づいて家枠ポリゴンを作成している。また、特許文献1のように工事区域の明示のために基準線から所定距離だけ離れた基準線に平行な線を設けるものであった。しかしながら、特許文献1では、地図データから読み取ったデータを用いて家枠を強調表示するものではない。また、ポリゴン生成におけるデータ処理量についてはなんら述べられていない。家枠の場合、一般的には正方形あるいは長方形とは限らず複雑な形をしている場合が一般的である。それらを読み取った地図データに基づいて忠実にポリゴンを生成しようとすると、そのためのデータ演算量が膨大になることがある。
又、地図情報から対象となる家枠をポリゴン表示する場合、地図情報から得られる頂点と線分全てのデータポイントについて演算表示すると演算量が増大して計算機の負担が大きくなるとともに表示が遅くなるという課題がある。
本発明はこの点に着目し、家枠を示すデータについて地図の表示縮尺に対応した所定の条件判定により、家枠データ数を減らし、データ演算量の軽減を図るものである。すなわち、従来はポリゴンの任意の頂点をその隣接する頂点とを結んだ全ての線分ごとに内側の補助線を引いて、それらの交点を演算することにより強調表示用のポリゴンを求めていた。従って、頂点数の多い家枠の場合は、演算量が多くなり表示に時間がかかる問題があった。この演算処理時間はなるべく小さいほうがよい。頂点が少ない方が、地図上で表示指示をしてから実際に表示されるまでの時間は短くなる。
本発明の目的は、表示指示から表示が行われるまでの演算処理量を減少させてポリゴン生成を行うことができる地図情報システム用ポリゴン生成方法及びその装置を提供することにある。
本発明の他の目的は、地図の表示縮尺の変化に対応した基準値に従って頂点を省き、演算量を減らしてポリゴン生成を行うことができる地図情報システム用ポリゴン生成方法及びその装置を提供することにある。
本発明は、地図データに記憶されている表示対象家枠を構成する複数の頂点座標を読みだし、前記頂点座標のi番目の頂点と隣合う(i+1)番目の頂点を結ぶ第1の線分を求め、次いで(i+1)番目の頂点と(i+2)番目の頂点を結ぶ第2の線分を求め、前記第1の線分に対する前記第2の線分がなす角度差を求め、該角度差が予め定められた値よりも小さいとき、前記(i+1)番目の頂点座標を間引く工程を順次全頂点座標によって形成される線分に対して繰り返し、間引かれなかった前記頂点座標に基づいてポリゴン生成することを特徴とする地図情報システム用ポリゴン生成方法にある。
本発明は、より具体的には、地図データ記憶部からデータを読み出し、表示装置に住宅地図の家枠を強調表示する地図情報システム用ポリゴン生成方法であって、前記地図データ記憶部に記憶されている表示対象家枠を構成する複数の頂点座標を読み出し、前記頂点座標のi番目の頂点と相隣合う(i+1)番目の頂点を結ぶ第1線分を求め、次いで(i+1)番目の頂点と(i+2)番目での頂点を結ぶ第2の線分を求め、前記第1の線分がなす角と前記第2の線分がなす角との角度差を求め、前記求められた角度差が予め定められた値として評価角度管理テーブルに示す地図表示縮尺に応じて設定された基準値より小さいとき前記(i+1)番目の座標値を間引いて、順次読み出された複数の頂点座標について前記間引き判定をし、間引かれなかった頂点に基づいて家枠強調表示を行うポリゴン生成することを特徴とする。
前記ポリゴン生成は、前記地図データから読み出された家枠の内側に強調表示するものであること、又、前記予め定められた値は、地図の表示縮尺に対応して定められる基準値であり、前記角度差を前記基準値に基づいて前記間引き処理を行うことが好ましい。
又、本発明は、地図データから読み出された表示対象家枠ポリゴンを示す複数の頂点座標に対して互いに隣接する前記頂点座標を結ぶ線分に基づいて互いに隣接する前記線分の角度差を求め、前記角度差が予め定められた値より小さいときに前記頂点座標を間引き、間引かれなかった前記頂点座標により前記家枠の内側にオフセット処理して補助線を算出すると共に該補助線の交点によりオフセットポリゴンを算出し、前記家枠ポリゴンとオフセットポリゴンとを画面表示することを特徴とする地図情報システム用ポリゴン生成方法にある。
本発明の家枠強調表示を行うポリゴン生成は、前記地図データ記憶部から読み出された家枠の内側に強調表示するものである。即ち、表示対象の家枠を記憶されている地図データから読み出し、読み出された対象家枠の内側を強調表示する地図情報システム用ポリゴン生成方法であって、読み出された家枠ポリゴンの頂点の座方について相隣り合う頂点についての線分を求め、角変位フィルタ部の角変位算出部により前記線分の傾斜角を求め、前記角変位判定部により1つの線分の傾きとそれに隣接する線分の傾きを求めると共に両線分の角度差を求め、求められた角度差が予め定められた値として評価角度管理テーブルで定められた地図表示縮尺に対する基準値より小さいとき当該頂点を間引き、求められた角度差が前記基準値より大きいとき入力ポリゴン格納テーブルへ格納し、前記入ポリゴン格納テーブルに格納され間引かれたデータにより前記家枠のオフセット処理としての補助線を算出し、その補助線の方程式を補助線方程式格納テーブルに格納し、オフセット処理により前記補助線の交点によりオフセットしたポリゴンを演算し、前記家枠ポリゴンとオフセットポリゴンを編集処理し、家枠ポリゴンとオフセットした家枠強調ポリゴンを表示装置に表示するものである。
本発明は、表示対象家枠ポリゴンとしての複数の頂点座標を記憶する地図データ記憶部と、前記頂点座標の各々について隣合う頂点座標を結ぶ二つの線分の角度差を求める角変位算出部と、前記算出された角度差が予め定められた値よりも小さいとき前記頂点座標を間引く判定部と、間引き処理後のポリゴンデータに基づいて前記家枠ポリゴンを表示する表示装置とを備えたことを特徴とする地図情報システム用ポリゴン生成装置にある。
具体的には、地図データ記憶部から地図情報を読み出し、住宅地図の家枠に内側を強調表示する地図情報システム用ポリゴン生成装置において、表示対象の家枠データとしての頂点座標を入力し、入力された頂点座標の各々ついて相隣り合う頂点を結ぶ二つの線分の角度差を求める角変位算出部と、前記算出された角度差が予め定められた値として評価角度管理テーブルに定められた地図表示縮尺に対する基準値より小さいかを判定し前記角度差が前記基準値より小さいときに当該頂点座標を間引く判定部と、間引き処理後のポリゴンデータに基づいて前記家枠の内側にオフセットした補助線を算出する補助線算出部と、前記補助線を利用してオフセットポリゴンの座標を求める座標算出部と、前記補助線により演算されるオフセットポリゴンの座標と慙愧地図データ記憶部から読み出された家枠ポリゴンとを表示する表示装置とを備えたことを特徴とする。また、補助線は、補助線方程式として格納する補助線方程式格納テーブルを有することにより、課題を解決することができる。
又、本発明は、表示対象家枠ポリゴンとしての複数の頂点座標を記憶する地図データ記憶部と、前記頂点座標の各々について隣合う前記頂点座標を結ぶ二つの線分の角度差を求める角変位算出部と、前記角度差が予め定められた値よりも小さいとき前記頂点座標を間引く判定部と、間引き処理後のポリゴンデータに基づいて前記家枠の内側にオフセット処理した補助線を算出する補助線算出部と、前記補助線の交点によりオフセットポリゴンの頂点座標を求める座標算出部と、前記補助線で構成されるオフセットポリゴンと前記地図データ記憶部から読み出された前記家枠ポリゴンとを表示する表示装置とを備えたことを特徴とする地図情報システム用ポリゴン生成装置にある。
更に、本発明は、家枠を示す任意のポリゴンによる線分の傾きとその隣接する線分の傾きとの角度差を演算して、評価角度管理テーブルから地図の表示縮尺に対応した基準値を設定し、前記角度差が前記基準値に満たない頂点を処理の対象から除外する。そして残った頂点の内側に補助線を引いて、それらの交点を演算することで家枠の内側の強調表示用ポリゴンを求め、表示指示から表示が行われるまでの演算処理量を減少させ、地図の表示縮尺の変化に応じた処理を行うように改善を図ることにある。
前記判定部は、前記角度差が評価角度管理テーブルに定められた地図の表示縮尺に対応する基準値よりも小さいとき前記頂点座標を間引く処理であること、又、間引かれなかった前記頂点座標を格納する入力ポリゴン格納テーブルと、該入力ポリゴン格納テーブルに格納されたデータにより前記家枠のオフセット処理としての補助線を算出して前記補助線の方程式を格納する補助線方式格納テーブルと、前記家枠ポリゴンとオフセットポリゴンを編集処理する編集部とを有することが好ましい。
本発明によれば、表示指示から表示が行われるまでの演算処理量を減少させてポリゴン生成を行うことができる地図情報システム用ポリゴン生成方法及びその装置を提供することができる。
更に、本発明によれば、地図の表示縮尺に対応した基準値に従って頂点を省き、演算量を減らしてポリゴン生成を行うことができる地図情報システム用ポリゴン生成方法及びその装置を提供することができる。
図1は、本発明の一実施例に係る地図情報システム用ポリゴン生成装置の機能ブロック構成図である。制御装置1と、制御装置1の中の、特に主制御部により制御演算された結果を表示する部分である表示装置2と、操作部3とを有する。制御装置1は、主制御部11、対話式制御部12、記憶部13、地図データ記憶部14、各変位フィルタ部15、オフセット処理部16、編集部17、表示制御部18などから構成されている。
記憶部13は、入力ポリゴン格納テーブルA131、入力ポリゴン格納テーブルB132、ベクトル格納テーブル133、補助線通過点格納テーブル134、補助線方程式格納テーブル135、オフセットポリゴン格納テーブル136、評価角度管理テーブル137などのテーブルから構成されていて、主制御部11による制御演算に利用される。
また、角変位フィルタ部15は、角変位算出部151、判定部152から構成され、角変位を演算し、その角変位が予め定められた値として評価角度管理テーブル137の地図表示縮尺に応じて設定された基準値よりも大きいかどうかなどの判断を行う。また、オフセット処理部16は、補助線算出部161、座標算出部162から構成されている。
入力ポリゴン格納テーブルA131は、対話制御部12が操作部3からの命令を受けると地図データ記憶部14から処理したい図形の座標値を制御部11を介して受け取り、座標値を格納する。
図2は、入力ポリゴン格納テーブルA131、入力ポリゴン格納テーブルB132、補助線通過点格納テーブル134、オフセットポリゴン格納テーブル136のデータ構成を示す説明図である。図2に示すように、例えば、第1点から第100点までの頂点のX,Y座標のデータから構成されている。
図3は、評価角度管理テーブル137のデータ構成を示す説明図である。図3に示すように、地図表示縮尺が1/2000〜1/20000のように、その縮尺に応じて予め基準値となる角度差がDelta1〜Delta3(deg)として設定される。
図4は、地図における家枠(図形)が与えられたとき、入力ポリゴン格納テーブルB132について、任意の線分の傾きと隣接する線分の傾きとの角度差により頂点を除く処理を示す説明図である。図4(A)では、点[2]を中心として、相隣合う頂点の点[3]と[2]を結ぶ線分と点[2]と点[1]を結ぶ線分の角度差Delta[deg]を求める場合を示している。そして、角変位フィルタ部15の角変位算出部151が前記隣り合う線分の角度差Delta[deg]を演算する。その後、判定部152が角度差Delta[deg]が予め定められた値として評価角度管理テーブル137から読み出された地図の表示縮尺に対応した基準値CONST[deg]に満たない点かどうかを判断する。この場合は点[2]が基準値CONST[deg]に満たない点であると判定され、点[2]が間引かれることになる。
図4(B)は、間引いた残りの頂点座標データが、家枠図形の座標値として格納されるものである。即ち、間引かれる前の家枠のデータが入力ポリゴン格納テーブルA131に格納され、点[2]に間引かれた家枠データが入力ポリゴン格納テーブルB132に格納される。この例では全点数8点に対して点[2]が間引かれ、残りの7点について家枠強調ポリゴンを求めれば良いので演算処理量の削減を図ることができる。
このように、入力ポリゴン格納テーブルA131に格納されている点について相隣り合う線分について角度差を求めたところ、点[2]が間引かれる点と判定される。そして図4(b)の入力ポリゴン格納テーブルB132として示されているように、点[2]が間引かれた座標値データが格納される。その場合格納されるデータは、図2と同様のデータ形式で、座標値のX,Y座標ベータである。
図5は、ベクトル格納テーブルの説明図である。ベクトル格納テーブル133は、補助線算出部161が入力ポリゴン格納テーブルB132の連続する2点の位置の差からベクトルをポリゴンの内側に向けて90度回転させ、さらにベクトルの大きさをオフセットする値だけ変更させたことにより得られる頂点の座標を格納するテーブルである。テーブルの内容は図2と同様のデータ形式である。
図6は、補助線方程式格納テーブルの説明図である。補助線方程式格納テーブル135は、座標算出部162がベクトル格納テーブル133に格納されたベクトルと平行で、補助線通過点格納テーブル134に格納された頂点を通過する直線の方程式の傾きと切片を演算し格納するテーブルである。
オフセットポリゴン格納テーブル136は座標算出部162がベクトル格納テーブル133に格納されたベクトルと平行で補助線通過点格納テーブル134に格納された頂点を通過する直線の交点を演算し格納する。テーブルのデータ形式は図2と同様である。地図データ記憶部14は、地図データ(住宅地図等)を格納しており、地図アプリケーションの操作により操作部から対話制御部12へ命令が送られると、主制御部11が地図データ記憶部から必要な地図情報を読み出し、編集部17を経て表示制御部18から表示装置2に送られ、表示される。
図7は、補助線により内側に一定オフセットで閉ポリゴンを生成する方法を示す説明図である。住所検索(例として“日立市久慈町1234−56”を検索)を行うと操作部3から対話制御部12へ命令が伝送される。これにより主制御部11は検索された住所に存在するK氏の住宅の家枠の情報を地図データ記憶部から読み出して入力ポリゴン格納テーブルA131へ格納する。それは、図7の点P0〜P11のX,Y座標データが格納される。
角変位フィルタ部15の角変位算出部151は、入力ポリゴン格納テーブルA131に入力された座標値(図7の点P0〜P11)により、ある点とその前の点を結んだ線の傾きと、ある点とその次の点を結んだ線分の傾きを求める。すなわちi番目の頂点と(i+1)番目を結ぶ線分と、(i+1)番目と(i+2)番目の頂点を結ぶ線分を求める。そして判定部152はその2つの線分の傾きの角度差が予め定められた値として評価角度管理テーブル137の地図表示縮尺に対しての基準値CONST[deg]を満たしているかどうかを判定する。満たしていなければその点を間引き処理する。傾きが基準値CONST[deg]より大きい場合には入力ポリゴン格納テーブルB132に格納する。角変位算出部151による演算及び判定部152による判定結果、図7の例ではP1、P3、P7がその後もポリゴン生成演算処理では間引かれることになる(頂点がないものとして扱う)。
オフセット処理部16の補助線算出部161は入力ポリゴン格納テーブルB132の座標値よりポリゴンが右回りか左回りかを判定する。入力ポリゴン格納テーブルB132の座標より、隣り合う2頂点を結ぶ線分のベクトルを求めてその結果をベクトル格納テーブル133へ格納する。座標算出部162はベクトル格納テーブルに格納されているベクトルを内側に向けて90[deg]回転させて、さらにベクトルの大きさをオフセットする値に変更したベクトルを演算して、求めたベクトルの終点を内側の補助線が通過する点の座標として補助線通過点格納テーブル134に格納する。
座標算出部162は補助線通過点格納テーブル134に格納されている座標値とベクトル格納テーブル133に格納されているベクトルの傾きから、内側にオフセットした補助線の方程式を求めて補助線方程式格納テーブル135に格納する(例えば、図7の破線)。また、座標算出部162は補助線方程式格納テーブル135の隣り合う2線の交点を求めて、オフセットポリゴン格納テーブル136に格納する(例えば、図7のP'0〜P'8)。座標算出部162はベクトル格納テーブル133に格納されているベクトルの中で、隣り合うベクトルの傾きの角度差が1[deg]未満の場合、オフセットポリゴン格納テーブル136の座標値を補助線通過点格納テーブル134の座標値に置き換える。主制御部11がオフセットポリゴン格納テーブル136に格納された座標値を編集部17に読み込ませると、既存の住宅の枠と内側に描かれたポリゴンが共に表示制御部18に送られ、表示装置2に表示される。
図8は、本発明の地図情報システム用ポリゴン生成方法を示す全体処理フロー図である。初めに、ステップ1000では評価角度管理テーブル137の地図表示縮尺に対しての角度CONST[deg]を読み込む。ステップ2000では処理したいポリゴンの座標と頂点数を読み込む。ステップ3000では、任意の線分の傾きと隣接する線分の傾きとの角度差が一定値として基準値CONST[deg]に満たない頂点を間引くための処理、例えば図7に示したような処理である。点[i]と点[i+1]を結ぶ線分の傾きをa1、点[j=i+1]と点[j+1]を結ぶ線分の傾きをa2としたときのa1とa2の角度差をDelta[deg]と表す。DeltaがCONST[deg]未満の場合、点[i+1]を間引く。この処理を処理したいポリゴン頂点の全てについて行う。ステップ4000は内側にオフセットした補助線を求めて、それらの交点を求めるための処理である。
図9は、評価角度管理テーブル137の地図表示縮尺に対しての角度CONST[deg]を読み込むための処理フロー図である。ステップ1001では初期化処理を行い、ステップ1002では地図の表示縮尺を取得する。次にステップ1003では評価角度管理テーブル137を読み込み、ステップ1004では評価角度管理テーブル137において地図の表示縮尺に対する角度CONST[deg]を読み込む。
図10は、任意の線分の傾きと、隣接する線分の傾きとの角度差が一定値として評価角度管理テーブル137の地図表示縮尺に対しての基準値CONST[deg]に満たない頂点を間引くための処理フロー図である。ステップ2001ではループカウンタiを初期化し、入力ポリゴン格納テーブルB132へ格納する頂点の数を示す変数を0に初期化する。また、入力ポリゴン格納テーブルB132の先頭に入力ポリゴン格納テーブルA131の先頭座標値を代入する。ステップ2002では、ループカウンタiが入力ポリゴン格納テーブルA131に格納されている頂点の数より小さい場合は、ステップ2003に進む。そうでない場合は、サブルーチンを抜ける。ステップ2003では、隣接する線分の配列番号を示す変数jに、(i+1)を代入してステップ2004に進む。
ステップ2004では、点[i]と点[i+1]を結ぶ線分の傾きをa1に、点[j]と点[j+1]を結ぶ線分の傾きをa2として求める。その後、(a1−a2)の絶対値をDelta_aに代入し、次式で角度差Delta[deg]を(1)式で演算する。
Delta=atn(delta_a) …(1)
その後、ステップ2005に進む。ステップ2005では、Deltaが一定値CONST[deg](外部より設定可能とする)より小さい場合はステップ2006に進み、そうでない場合はステップ2007に進む。ステップ2006では変数jの値を1加算した後、ステップ2004に進む。従って、ステップ2006はステップ2005で角度差が基準値CONST[deg]に満たない場合は次の線分と比較するための処理であるといえる。ステップ2007では、入力ポリゴン格納テーブルB132の頂点数を示すカウンタm_iPointNumを1加算した後、入力ポリゴン格納テーブル2のm_iPointNum番目に入力ポリゴン格納テーブルA131のj番目の座標値を格納してステップ2008へ進む。ステップ2008ではループカウンタiの値を1加算した後、ステップ2002へ進む。
図11は、内側にオフセットした点を求めて、それらの点を結んだ線の交点を求めるための処理のサブルーチンを示す処理フロー図である。図11では、6つの子サブルーチンに分割されている。ステップ3100では、ポリゴンの面積を格納する変数anserを0に。オフセット値を示す変数offsetをオフセットする大きさ(単位:ピクセル)に初期化する。
ステップ3200は、第1のサブルーチン(Sub.R)で入力ポリゴン格納テーブルB132の座標を読み込んで、その面積を演算することでポリゴンが右回りか左回りかを判定する。ステップ3300は、第2のサブルーチン(Sub.R)で入力ポリゴン格納テーブルB132の座標を読み込んで、隣り合う2頂点を結ぶベクトルを求めてベクトル格納テーブル133に格納する。ステップ3300は、第3のサブルーチン(Sub.R)でベクトル格納テーブル133に格納されているベクトルを内側に向けて90度回転させ、かつ大きさが変数offsetで示される値の大きさであるベクトルを演算し、求めたベクトルの終点の座標値を補助線通過点格納テーブル134に格納する。
ステップ3500は、第4のサブルーチン(Sub.R)で補助線通過点格納テーブル134に格納された座標値より補助線の方程式を求めて補助線方程式格納テーブル135に格納する。また、ステップ3600は、第5のサブルーチン(Sub.R)で補助線方程式格納テーブルに135に格納されている補助線のうち隣り合う補助線同士の交点を求めて、オフセットポリゴン格納テーブル136に格納する。ステップ3700は、第6のサブルーチンでベクトル格納テーブル133に格納されているベクトルのなかで、隣り合うベクトルとの傾きの角度差が1[deg]未満の場合、オフセットポリゴン格納テーブル136の座標値を補助線通過点格納テーブル134の座標値に置き換える。
図12は、第1のサブルーチン(Sub.R)を示す処理フロー図である。処理したいポリゴンが右回りか左回りかを判定するための処理である。ステップ3201では、ループカウンタiを0に初期化し、ポリゴンの面積を格納する変数anserを0に初期化する。ステップ3202ではループカウンタiが入力ポリゴン格納テーブルB132の頂点数m_iPointNumより小さい場合は3203に進み、そうでない場合はサブルーチンを抜ける。ステップ3203ではカウンタcont_nにループカウンタiの値−1を代入してステップ3204に進む。ステップ3204では、カウンタcont_nが−1の場合はステップ3205へ進み、そうでない場合はステップ3206へ進む。
ステップ3205ではカウンタcont_nに入力ポリゴン格納テーブルB132の頂点数m_iPointNum−1を代入してステップ3206へ進む。ステップ3206ではcont_pにループカウンタの値i+1を代入する。ステップ3207では、カウンタcont_pが入力ポリゴン格納テーブルB132の頂点数m_iPointNumと等しい場合はステップ3208に進み、そうでない場合はステップ3209に進む。ステップ3209では、ポリゴンの面積を格納する変数anserにポリゴンの面積の一部である(2)式の値を計算してステップ3210へ進む。
(点[cont_n]のX座標一点[cont_p]のX座標)×点[i]のy座標/2 …(2)
ステップ3210ではカウンタiを1増加させる。その後、ステップ3202へ進む。参考までにポリゴンの面積の演算方法を説明しておく。多角形の頂点座標を時計回りに順に、点[0]、点[1]…、点[m_iPointNum]とする。面積は(3)式で表される。
(面積)=Σ(点[i-1]x−点[i+1]x)×点[i]y/(−2) …(3)
(i=1)から(i=m_PointNum)までサムアップした値となる。(ただし、点[0]=点[m_PointNum])
このように、(3)式の関係から求めることができる。画面の左上を原点として下方向を正とする座標系なのでポリゴンの面積を計算して、その値が正の場合は右回り、負の場合は左回りと判定する。
図13は、第2のサブルーチンを示す処理フロー図である。入力された座標値より隣り合う2頂点を結ぶベクトルを求める処理である。ステップ3301ではループカウンタiを0に初期化して、ステップ3302へ進む。ステップ3302ではループカウンタiが入力ポリゴン格納テーブルB132の頂点数m_iPointNumより小さい場合はステップ3303へ進み、そうでない場合はサブルーチンを抜ける。ステップ3303では変数jにループカウンタiの値+1を代入してステップ3304に進む。ステップ3304では、ループカウンタiが入力ポリゴン格納テーブルB132の頂点数m_iPointNum−1と等しい場合はステップ3305へ進み、そうでない場合はステップ3306へ進む。ステップ3306では入力ポリゴン格納テーブルB132の座標値からベクトルを求めてベクトル格納テーブル133へ格納する。ベクトル格納テーブルを配列Vector[ ]で表すと、(4)、(5)式
Vector[i].x = 点[i].x 点[i].x …(4)
Vector[i].y = 点[i].y 点[i].y …(5)
となる。
その後、ステップ3307へ進む。ステップ3307では、ループカウンタiの値を1増加させた後、ステップ3302へ進む。
図14は、第3のサブルーチンを示す処理フロー図である。各ベクトルをポリゴンの内側へ向けて90[deg]回転させたベクトルを求めて、内側にオフセットした点の座標を求めるための処理である。ステップ3401では、ループカウンタiを0に初期化してステップ3402へ進む。ステップ3402では、ポリゴンの面積anserが0より大きい場合はステップ3403に進み変数Kに1を代入し、そうでない場合はステップ3404に進み変数kに−1を代入する。その後、ステップ3405に進む。ステップ3405では、ループカウンタiが入力ポリゴン格納テーブルB132の頂点m_iPointNumより小さい場合はステップ3406へ進み、そうでない場合はサブルーチンを抜ける。ステップ3406では、Vector[i]の大きさを演算した結果を変数sizeに代入した後、内側にオフセットした点の座標を演算して補助線通過点格納テーブル134に格納する。補助線通過点格納テーブル134を配列Pdush[ ]で表すと、(6)、(7)式となる。
Pdush[i].x=(点[i].x−k×(Vector[i].y)×offset/size) …(6)
Pdush[i].y=(点[i].y−k×(Vector[i].x)×offset/size) …(7)
その後ステップ3407へ進む。ステップ3407ではループカウンタiを1加算して、ステップ3405へ進む。
図15及び16は、第4のサブルーチンを示す処理フロー図である。内側にオフセットした点の座標より内側にオフセットした補助線の方程式(y=mx+c)を求める処理である。ステップ3501では、ループカウンタiを0に初期化してステップ3502へ進む。ステップ3502では、ループカウンタiが入力ポリゴン格納テーブルB132の頂点数m_PointNumより小さい場合はステップ3503へ進み、そうでない場合はサブルーチンを抜ける。ステップ3503では変数jに(i+1)を代入してステップ3504に進む。ステップ3504ではループカウンタiが入力ポリゴン格納テーブルB132の頂点数m_iPointNumの値−1と等しい場合はステップ3505へ進み、そうでない場合は図16のステップ3506へと進む。
ステップ3505では変数jを0に初期化してステップ3506へ進む。ステップ3506では点[i].xと点[j].xが等しければステップ3507へ進み、そうでない場合はステップ3508へ進む。傾きmはY方向変化分をX方向変化分で割った値となる。但し、X方向変化分が0の場合は分母を1とする(実行時にエラーが発生するのを避けるため)。ステップ3507では補助線の方程式を求める。傾きの配列をm[]とすると、(8)式となる。
m[i]=(double)(点[j].y−点[i].y) …(8)
その後、ステップ3509に進む。ステップ4508では補助線の方程式を求める。傾きの配列をm[ ]とすると(9)式となる。
m[i]=(double)(点[j].y−点[i].y)/(double)(点[j].x−点[i].x)…(9)
その後ステップ3509に進む。ステップ3509では、切片を求める。切片cはy=mx+cより、切片の配列をc[]とすると、(10)式となる。
c[i]=(double)(Pdush[j].y(double)m[i]×(double)Pdush[i].x …(10)
その後、ステップ3510へ進む。ステップ3510では、ループカウンタiを1増加させてステップ3502へ進む。
図17は、第5のサブルーチンを示す処理フロー図である。求めた補助線の交点を求める処理である。ステップ3601では、ループカウンタiを0に初期化してステップ3602へ進む。ステップ3602ではループカウンタiが入力ポリゴン格納テーブルB132の頂点m_iPointNumより小さい場合はステップ3603へ進み、そうでない場合はサブルーチンを抜ける。ステップ3603では、変数jに値(i−1)を代入してステップ3604へ進む。
ステップ3604では、ループカウンタiが0の場合はステップ3605へ進み、そうでない場合はステップ3606へ進む。ステップ3605では、変数jに入力ポリゴン格納テーブルB132の頂点数m_iPointNum-1を代入してステップ3606へ進む。ステップ3606では、補助線の交点のx座標を演算する。オフセットポリゴン格納テーブルの配列をNew Point[]とすると、(11)式
New Point[i].x=(long)floor(−(c[j]−c[i])/(m[j]−m [i])) …(11)
となる。その後、ステップ3607へ進む。ステップ3607では、補助線の交点のy座標を演算する。
New Point[i].y=(long)floor(m[i]×(−(c[j]−c[i])/(m[j]−m[i]))+c[i]…(12)
(12)式となる。その後、ステップ3608へ進む。ステップ3608では、ループカウンタiを1増加した後、ステップ3602へ進む。
図18は、第6のサブルーチンを示す処理フロー図である。隣り合うベクトルの傾きの差が1[deg]未満の場合、内側にオフセットした点の座標に置き換える処理である。この処理は。傾きの差が0の場合に交点を求めると無限遠になってしまうのを防ぐ役割がある。ステップ3701では、ループカウンタiを0に初期化してステップ3702へ進む。ステップ3702では、ループカウンタiが入力ポリゴン格納テーブルB132の頂点数m_iPointNumより小さい場合はステップ3703へ進み、そうでない場合はサブルーチンを出る。ステップ3703では、変数jに値(i+1)を代入してステップ3704へ進む。
ステップ3704では、ループカウンiが入力ポリゴン格納テーブルB132の頂点数m_iPointNum−1と等しい場合はステップ3705へ進み、そうでない場合はステップ3706へ進む。ステップ3705では、変数jを0に初期化してステップ3706へ進む。ステップ3706では、変数size 1にVector[i]の大きさを、変数size 2にVector[j]の大きさを求める。2次元ベクトルの大きさは、x成分の値の2乗とy成分の値の2乗を加えたものの平方根を演算することで得られる。2つのベクトルの角度差をRAD[rad]とすると内積の定義より(13)式が成立する。
Vector[I].x×Vector[j].x+Vector[I].y×Vector[j].y
= size 1×size 2×cos(RAD) …(13)
これより、(14)式を演算する。
RAD=a cos((Vector[I].x×Vector[j].x+Vector[I].y×Vector)j).y)/
(size 1×size 2))…(14)
その後、ステップ3707へ進む。ステップ3707では、角度差RADの絶対値が1[deg]に満たない場合は、ステップ3708へ進む。そうでない場合はステップ3709へ進む。ステップ3708では、New Point[j]にP dush[j]の値を代入する。その後、ステップ3709へ進む。ステップ4709では、ループカウンタiの値を1増加させた後、ステップ3702へ進む。
以上で述べたように、本実施例によれば、地図データ記憶部から得られた家枠ポリゴンを構成する頂点データから相隣り合う頂点を結ぶ線分を求め、その角度差が予め定められた値として地図表示縮尺に対しての基準値よりも小さいとき、その頂点は家枠強調ポリゴンを構成する頂点としては省略するように角変位フィルタリング処理を行う。そしてフィルタリング処理をして残った頂点について家枠強調表示を行う。したがって、必要最小限のデータ処理で家枠強調表示を行うことができる効果がある。
又、本実施例によれば、家枠ポリゴンの内側に設ける強調表示のための補助線は、家枠ポリゴンデータについてフィルタリング処理をした後で家枠強調表示のための演算処理を行うので、強調表示のための演算量を低減することができる。
本発明に係る地図情報システム用ポリゴン生成装置の機能ブロック構成図である。 入力ポリゴン格納テーブルA、入力ポリゴン格納テーブルB、補助線通過点格納テーブル、オフセットポリゴン格納テーブルのデータ構成を示す説明図である。 評価角度管理テーブルのデータ構成を示す説明図である。 任意の線分の傾きと隣接する線分の傾きとの角度差により頂点を除く処理を示す説明図である。 ベクトル格納テーブルの説明図である。 補助線方程式格納テーブルの説明図である。 補助線により内側にポリゴン生成する方法を示す説明図である。 処理全体の流れを示す説明図である。 評価角度管理テーブルの地図表示縮尺に対しての基準値CONST[deg]を読み込むための処理フロー図である。 任意の線分の傾きと隣接する線分の傾きとの角度差により頂点を除く処理のサブルーチンを示した図である。 内側にオフセットした点を求めて、それらの点を結んだ交点を求めるサブルーチンを示す説明図である。 入力されたポリゴンが右回りか左回りか判定するサブルーチンを示す説明図である。 入力された座標値より、隣り合う2頂点を結ぶベクトルを求めるサブルーチンを示す説明図である。 各ベクトルに垂直なベクトルを求め、内側にオフセットした点を求めるサブルーチンを示す説明図である。 内側にオフセットした点の座標より、内側にオフセットした補助線の方程式を求めるサブルーチンを示す説明図(その1)である。 内側にオフセットした点の座標より、内側にオフセットした補助線の方程式を求めるサブルーチンを示す説明図(その2)である。 求めた補助線の交点を求めるサブルーチンを示す説明図である。 隣り合うベクトルの傾きの大きさが1[deg]未満の場合、内側にオフセットした点の座標に置き換えるサブルーチンを示す説明図である。
符号の説明
1…制御装置、2…表示装置、3…操作部、11…主制御部、12…対話制御部、13…記憶部、14…地図データ記憶部、15…各変位フィルタ部、16…オフセット処理部、17…編集部、18…表示制御部、131…入力ポリゴン格納テーブルA、132…入力ポリゴン格納テーブルB、133…ベクトル格納テーブル、134…補助線通過点格納テーブル、135…補助線方程式格納テーブル、136…オフセットポリゴン格納テーブル、137…評価角度管理テーブル、151…角変位算出部、152…判定部、161…補助線算出部、162…座標算出部。

Claims (4)

  1. 地図データに記憶されている表示対象家枠を構成する複数の頂点座標を読みだし、前記頂点座標のi番目の頂点と隣合う(i+1)番目の頂点を結ぶ第1の線分を求め、次いで(i+1)番目の頂点と(i+2)番目の頂点を結ぶ第2の線分を求め、前記第1の線分に対する前記第2の線分がなす角度差を求め、該角度差が予め定められた値よりも小さいとき、前記(i+1)番目の頂点座標を間引く工程を順次全頂点座標によって形成される線分に対して繰り返し、間引かれなかった前記頂点座標に基づいてポリゴン生成することを特徴とする地図情報システム用ポリゴン生成方法。
  2. 地図データから読み出された表示対象家枠ポリゴンを示す複数の頂点座標に対して互いに隣接する前記頂点座標を結ぶ線分に基づいて互いに隣接する前記線分の角度差を求め、前記角度差が予め定められた値より小さいときに前記頂点座標を間引き、間引かれなかった前記頂点座標により前記家枠の内側にオフセット処理して補助線を算出すると共に該補助線の交点によりオフセットポリゴンを算出し、前記家枠ポリゴンとオフセットポリゴンとを画面表示することを特徴とする地図情報システム用ポリゴン生成方法。
  3. 表示対象家枠ポリゴンとしての複数の頂点座標を記憶する地図データ記憶部と、前記頂点座標の各々について隣合う頂点座標を結ぶ二つの線分の角度差を求める角変位算出部と、前記算出された角度差が予め定められた値よりも小さいとき前記頂点座標を間引く判定部と、間引き処理後のポリゴンデータに基づいて前記家枠ポリゴンを表示する表示装置とを備えたことを特徴とする地図情報システム用ポリゴン生成装置。
  4. 表示対象家枠ポリゴンとしての複数の頂点座標を記憶する地図データ記憶部と、前記頂点座標の各々について隣合う前記頂点座標を結ぶ二つの線分の角度差を求める角変位算出部と、前記角度差が予め定められた値よりも小さいとき前記頂点座標を間引く判定部と、間引き処理後のポリゴンデータに基づいて前記家枠の内側にオフセット処理した補助線を算出する補助線算出部と、前記補助線の交点によりオフセットポリゴンの頂点座標を求める座標算出部と、前記補助線で構成されるオフセットポリゴンと前記地図データ記憶部から読み出された前記家枠ポリゴンとを表示する表示装置とを備えたことを特徴とする地図情報システム用ポリゴン生成装置。
JP2004075959A 2003-04-30 2004-03-17 地図情報システム用ポリゴン生成方法及びその装置 Pending JP2004348708A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004075959A JP2004348708A (ja) 2003-04-30 2004-03-17 地図情報システム用ポリゴン生成方法及びその装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003124663 2003-04-30
JP2004075959A JP2004348708A (ja) 2003-04-30 2004-03-17 地図情報システム用ポリゴン生成方法及びその装置

Publications (1)

Publication Number Publication Date
JP2004348708A true JP2004348708A (ja) 2004-12-09

Family

ID=33543381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004075959A Pending JP2004348708A (ja) 2003-04-30 2004-03-17 地図情報システム用ポリゴン生成方法及びその装置

Country Status (1)

Country Link
JP (1) JP2004348708A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299506A (ja) * 2007-05-30 2008-12-11 Asia Air Survey Co Ltd 線図の圧縮処理プログラム及び閉図形の分割処理プログラム
JP2010072259A (ja) * 2008-09-18 2010-04-02 Victor Co Of Japan Ltd 図形データ生成方法、生成装置、表示方法及び表示装置
CN104658018A (zh) * 2013-11-18 2015-05-27 北京四维图新科技股份有限公司 一种分解环套多边形的方法和制图装置
CN105051787A (zh) * 2013-03-21 2015-11-11 株式会社吉奥技术研究所 绘图数据生成装置和绘图装置
CN114357553A (zh) * 2021-12-31 2022-04-15 重庆宝图科技发展有限公司 一种基于移动端的不动产辅助绘图方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0869525A (ja) * 1994-08-31 1996-03-12 Fujitsu Ltd ベクトルデータの変換方法及び変換装置
JPH09185700A (ja) * 1995-12-28 1997-07-15 Tokyo Gas Co Ltd 基準線周りのポリゴン自動作成方法およびそのための装置
JPH11120332A (ja) * 1997-10-09 1999-04-30 Zenrin Co Ltd 地図データベースの作成方法及び装置
JPH11213128A (ja) * 1998-01-23 1999-08-06 Hitachi Ltd ベクトル地図表示システム
JP2001256231A (ja) * 2000-03-08 2001-09-21 Hitachi Eng Co Ltd 住居枠位置の検索表示方法および装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0869525A (ja) * 1994-08-31 1996-03-12 Fujitsu Ltd ベクトルデータの変換方法及び変換装置
JPH09185700A (ja) * 1995-12-28 1997-07-15 Tokyo Gas Co Ltd 基準線周りのポリゴン自動作成方法およびそのための装置
JPH11120332A (ja) * 1997-10-09 1999-04-30 Zenrin Co Ltd 地図データベースの作成方法及び装置
JPH11213128A (ja) * 1998-01-23 1999-08-06 Hitachi Ltd ベクトル地図表示システム
JP2001256231A (ja) * 2000-03-08 2001-09-21 Hitachi Eng Co Ltd 住居枠位置の検索表示方法および装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299506A (ja) * 2007-05-30 2008-12-11 Asia Air Survey Co Ltd 線図の圧縮処理プログラム及び閉図形の分割処理プログラム
JP2010072259A (ja) * 2008-09-18 2010-04-02 Victor Co Of Japan Ltd 図形データ生成方法、生成装置、表示方法及び表示装置
CN105051787A (zh) * 2013-03-21 2015-11-11 株式会社吉奥技术研究所 绘图数据生成装置和绘图装置
KR20150132177A (ko) 2013-03-21 2015-11-25 가부시키가이샤 지오 기쥬츠켄큐쇼 드로잉 데이터 생성 장치 및 드로잉 장치
CN104658018A (zh) * 2013-11-18 2015-05-27 北京四维图新科技股份有限公司 一种分解环套多边形的方法和制图装置
CN114357553A (zh) * 2021-12-31 2022-04-15 重庆宝图科技发展有限公司 一种基于移动端的不动产辅助绘图方法
CN114357553B (zh) * 2021-12-31 2023-12-15 重庆宝图科技发展有限公司 一种基于移动端的不动产辅助绘图方法

Similar Documents

Publication Publication Date Title
JPH05127654A (ja) 文字図形変形処理装置
KR20060047436A (ko) 2차원 및 3차원 도형의 데이터를 컴퓨터의 메모리에기록하는 데이터 구조, 프로그램 및 기록 매체
JPH05266216A (ja) ボリュームレンダリングを行う方法及び装置
CN113724401B (zh) 一种三维模型切割方法、装置、计算机设备和存储介质
JP3391864B2 (ja) 画像データ処理方法及び装置及びグラフィックシステム
US8587586B2 (en) Electronic device and method for meshing curved surface
US6897863B2 (en) System and method for hidden object removal
JPH07311856A (ja) 画像データ処理方法および装置
CN114708382A (zh) 基于增强现实的三维建模方法、装置、存储介质、设备
WO2009104218A1 (ja) 地図表示装置
JPH05334383A (ja) 画像図形編集装置
JP2004348708A (ja) 地図情報システム用ポリゴン生成方法及びその装置
JPH0636013A (ja) 地形データの作成方法および装置
WO2004053741A1 (ja) 三角形と線分の交点計算方法とそのプログラム
JP6831130B1 (ja) 風向風速推定装置、風向風速推定方法、および風向風速推定プログラム
US20210004424A1 (en) Methods and Systems for Processing Geospatial Data
JP2005070373A (ja) 地図座標変換プログラムおよび地図座標変換装置
US6856325B2 (en) Information processing method and apparatus
JP3332511B2 (ja) 画像データ処理方法及び装置及びグラフィックシステム
JP2007114866A (ja) 接触判定方式
JP3305395B2 (ja) 図形分割装置
JP2008059235A (ja) 立体形状データ変換方法、それを記述したコンピュータプログラムおよび立体形状データ変換装置
JP2007140976A (ja) 断面表示プログラムおよび断面表示装置
JP2692587B2 (ja) 画像処理方法
CN114219915A (zh) 空区剖面的生成方法、装置及计算机设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080428

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080902