JP2022532952A - 地図ジオメトリ簡略化のための空間処理 - Google Patents

地図ジオメトリ簡略化のための空間処理 Download PDF

Info

Publication number
JP2022532952A
JP2022532952A JP2021575319A JP2021575319A JP2022532952A JP 2022532952 A JP2022532952 A JP 2022532952A JP 2021575319 A JP2021575319 A JP 2021575319A JP 2021575319 A JP2021575319 A JP 2021575319A JP 2022532952 A JP2022532952 A JP 2022532952A
Authority
JP
Japan
Prior art keywords
map
raw
tile
tiles
feature
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
JP2021575319A
Other languages
English (en)
Inventor
ブラウン、ジュリアン
ガディヤラム ベンカタ、ヴァッリ
バート、シュルティ
Original Assignee
リスク マネジメント ソリューションズ, インコーポレイテッド
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 リスク マネジメント ソリューションズ, インコーポレイテッド filed Critical リスク マネジメント ソリューションズ, インコーポレイテッド
Publication of JP2022532952A publication Critical patent/JP2022532952A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3863Structures of map data
    • G01C21/387Organisation of map data, e.g. version management or database structures
    • G01C21/3881Tile-based structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20016Hierarchical, coarse-to-fine, multiscale or multiresolution image processing; Pyramid transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30181Earth observation
    • G06T2207/30184Infrastructure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/36Level of detail

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Automation & Control Theory (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Databases & Information Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Instructional Devices (AREA)
  • Image Generation (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

コンピュータ・システム及び関連するコンピュータ実行方法が開示される。システムは、地理的領域のための1つ又は複数のデジタル地図を簡略化するようにプログラムされ、1つ又は複数のデジタル地図は、人間の眼に対する物理的外観を維持しつつ、それらのサイズを削減することによって、地理的領域の複数のサブ領域と関連付けられた複数の生の地図タイルに編成されている。

Description

本開示は、電子マッピングの分野における方法、コンピュータ・ソフトウェア、及び/又は、コンピュータ・ハードウェアに関する。より詳しくは、本開示は、クライアントの地図アプリケーション・プログラム用に簡略化された電子地図タイル(map tile)を生成するための、コンピュータ実装技術に関する。
この項目に記載されているアプローチは、追求され得たアプローチであるが、必ずしも、これまでに考えられた又は追求されたアプローチではない。従って、特に別途明記しない限り、この項目に記載されているアプローチの何れも、単にこの項目に含まれているからといって先行技術とみなされると仮定されるべきでない。
デジタルで記憶された電子地図は、マッピング・プログラム又はアプリケーションのユーザに対して、地理的情報又は位置に基づく情報を表示するために用いられ得る。これらのマッピング・アプリケーションは、地図データを組織化して表示するために、本明細書で地図タイルと称する、地図データのグリッド・ベースのアレンジメントをしばしば利用する。
各地図タイルは地理的地図の部分に対応し得る。例えば、地図タイルは、特定のズーム・レベルの地理的地図の方形領域、又は、地理的地図内の予め定義されたサイズ及び位置の領域に対応し得る。地図タイルは、例えば、道、建物、境界、水域、公園等の地理的地図のフィーチャ(feature)を表わすジオメトリ・データを含み得る。それに加えて、地図タイルは、これらのフィーチャを表わすデータ、例えば、名称、ラベル、レンダリング用スタイル・データ、リスク・レベル、又は、他の情報を含むことができる。このようなデータは、フィーチャとは別にメタデータとして又は付加的フィーチャとして、記憶され得る。各フィーチャは、少なくとも、地図タイル中の隣接する画素のクラスタに対応する。各画素は、異なるフィーチャと関連付けられた1つ又は複数の値を有し得る。従って、地理的地図は多数の地図タイルに対応し得、各地図タイルは大量のデータを含み得る。
Ricky Brundritt、Chris French、Saisang Cai「Bing Maps Tile System」 https://docs.microsoft.com/en-us/bingmaps/articles/bing-maps-tile-system
決められたスペースに大量のデータ又は細部を表示することに関する1つの課題は、電子地図データが、記憶するための記憶装置、送受信するためのデバイス・メモリ及びネットワーク帯域、並びに、レンダリングするための処理パワーを大量に必要とするということである。
電子的なデータ量を削減するために考えられるアプローチは、簡略化アルゴリズムを利用することである。しかしながら、電子地図データの様々なセットは、それらを他から異なるように可視化する異なる特性を有する。例えば、道路網の地図と比較すると歩道網の地図は異なる角度を有する異なる線を有し、それらのフィーチャは異なるレベルで実空間を占める。異なるフィーチャに一律に簡略化を適用すると、より大きいフィーチャが十分に簡略化され得ず、より小さいフィーチャが過度に簡略化されるという結果となる。それに加えて、簡略化アルゴリズムが余りに重く適用される場合、簡略化されたフィーチャは、レンダリングされたときに視覚的に不正確となるであろう。
従って、簡略化された地図データを生成するための改善された方法が必要である。
実装形態において、本明細書に記載される技術が実施され得る例示的なコンピュータ・システムを示す図である。 実装形態に従う例示的なプログラマブルなアルゴリズム又は方法を示す図である。 実装形態が実装され得るコンピュータ・システムを示す図である。 例示的な地図タイル及び例示的な簡略化された地図タイルを示す図である。 例示的な地図タイル及び例示的な簡略化された地図タイルを示す図である。 例示的な地図タイル及び例示的な簡略化された地図タイルを示す図である。
以下の記載においては、本発明の完全な理解を提供するために、説明目的で多数の具体的な詳細事項が記述される。しかしながら、本発明がこれらの具体的な細部無しでも実施され得ることは明らかである。他の例では、本発明を不必要に不明瞭にすることを避けるために公知の構造及び装置がブロック図の形で示される。
本開示のテキストにおいては、図面と組み合わせて、プログラムされるべき機能、入力、変形、出力、及び、プログラミングの他の態様に関して本開示が関係する技術分野の当業者によって互いに伝達するために用いられるレベルと同じレベルの詳細さで、請求項に記載された発明を実施するようにコンピュータをプログラムするために必要なアルゴリズムを散文で記述することが意図されている。すなわち、本開示に記述される詳細さのレベルは、本明細書において請求項に記載された発明を実施するための、プログラムされるべきアルゴリズム又はプログラムの構造及び機能を示すために当業者が互いに伝達するために通常用いる詳細さのレベルと同じである。
1.一般概要
電子地図データのセットに基づいて簡略化された地図データを生成するための技術が本明細書に記載される。電子地図データは、クライアントの地図アプリケーション内で画像地図に、地図のフィーチャをレンダリングする方法を示すジオメトリ・データを含むことができる。簡略化された地図データは最初の電子地図データより少ないジオメトリ又はその他のデータを含むが、簡略化された地図データからレンダリングされる画像地図は、最初の電子地図データからレンダリングされる画像地図と、視覚的に同一又は同様である。
実装形態においては、電子地図データ又はデジタル地図は、地理的領域について、複数の地図タイルに分割される。各地図タイルは、この地理的領域の複数のサブ領域と関連付けられており、特定のズーム・レベルの地理的地図の部分に対応し得る。簡略化された地図データを生成することは、複数の地図タイルの各地図タイル毎に、対応する簡略化された地図タイルを含む。特定の地図タイルがクライアントの地図アプリケーションによって要求されるとき、特定の地図タイルの代わりに、対応する簡略化された地図タイルがクライアントの地図アプリケーションに提供され得る。
実装形態においては、元の地図タイルに基づいて簡略化された地図タイルを生成することは、元の地図タイルによって定義される複数の地図フィーチャの各地図フィーチャ毎に、その地図フィーチャを簡略化された地図タイルから除外するべきかどうかを判断することを含む。地図フィーチャを除外するべきかどうかを判断することは、例えば、そのフィーチャのサイズ、そのフィーチャの形状、そのフィーチャに対応する画素数、そのフィーチャと同一又は共通の画素に対応する他のフィーチャの数、そのフィーチャと関連付けられた値等に基づくことができる。
それに加えて、元の地図タイルに基づいて簡略化された地図タイルを生成することは、複数の地図フィーチャの各地図フィーチャ毎に、その地図フィーチャを1つ又は複数の他の地図フィーチャに合体させるべきかどうかを判断することを含むことができる。地図フィーチャを1つ又は複数の他の地図フィーチャに合体させるべきかどうかを判断することは、例えば、そのフィーチャの形状、1つ又は複数の他の地図フィーチャの形状、そのフィーチャと同一又は共通の画素に対応する他のフィーチャの数、そのフィーチャと関連付けられた値等に基づくことができる。
実装形態においては、これらの技術の様々な組合せが、局所レベル(単一タイル)、クラスタ・レベル(隣接タイル)、又は、広域レベル(全てのタイル又は地図全体)で適用され、簡略化された地図を生成する際に変化する元の地図の性質により良く対応することができる。
簡略化された地図タイルが生成された後、簡略化された地図データは、しばしば元の地図タイルの代わりに、データ記憶装置に記憶され得、且つ/又は、メモリにキャッシュされ得る。記憶/キャッシュされた簡略化された地図データは、対応する元の地図タイルを求める要求に応答して読み出され得る。それに加えて、又は、その代わりに、簡略化された地図タイルに基づいてビットマップ画像がレンダリングされ得る。このビットマップ画像は、地図の、簡略化された地図タイルに対応する部分を表示するときに、クライアントの地図アプリケーションで表示され得る。
他の実装形態、態様、及び、特徴は全体として本開示から明らかになるであろう。これらの技術は、要求された解像度で可視の地図を示すために必要な地図タイルデータだけを、生成し、記憶し、及び、地図データを記憶するサーバ・コンピュータから、遠隔のクライアントの地図アプリケーションまで送信するという利点を有する。要求された解像度で見えない細部を含む地図タイルのデータは、削除又は削減され得る。具体的には、これらの技術によって、ズーム・レベル又は地図コンテキスト(map context)などの様々な粒状度を有する地図タイルの簡略化が可能となり、人間の感覚に対する物理的外観をより良好に維持することより良好な品質を有する簡略化された地図がもたらされる。サイズを縮小すれば、必要なデータ記憶スペース、ネットワーク帯域、及び、ディスプレイ装置によって表示するためのグラフィック・イメージ・フォーマットにレンダリングするために必要な処理パワーはより小さくなる。そのために、実装形態によれば、サーバ・コンピュータにおいて、及び、クライアントのコンピューティング装置において、計算リソースに対する要求を著しく削減することができる。
実装形態においては、表示のためのデジタル地図を簡略化するためのコンピュータ・システムは、1つ又は複数のメモリと、1つ又は複数のメモリに接続される1つ又は複数のプロセッサを具備し、1つ又は複数のプロセッサは、地理的領域のためのデジタル地図を受信することであって、デジタル地図は、地理的領域の複数のサブ領域と関連付けられた複数の生の地図タイルに編成されている、受信することと、1つ又は複数のメモリに記憶されたコンフィギュレーション・データを読み出すことであって、コンフィギュレーション・データは、デジタル地図を簡略化するための、人間にとっての可視性に関する、読み出すことと、複数の生の地図タイルの各々から1つ又は複数のフィーチャを識別することであって、複数の生の地図タイルの各々の1つ又は複数のフィーチャの各フィーチャは、生の地図タイル内の画素のクラスタに対応し、画素のクラスタの各々に対する値を有し、少なくとも2つのフィーチャは複数の生の地図タイルのうちの生の地図タイル内の共通の画素に対応する、識別することと、複数の生の地図タイルにおける少なくとも1つのフィーチャを除去するか又は合体させることによって、或いは、複数の生の地図タイル内のフィーチャの範囲内で画素の値を更新することによって、或いは、複数の生の地図タイル内のフィーチャのサイズを縮小することによって、複数の生の地図タイルに対して1つの修正されたデジタル地図を形成する複数の修正された地図タイルを生成することであって、複数の修正された地図タイルの全体のサイズは複数の生の地図タイルの全体のサイズより小さい、生成することと、複数の修正された地図タイルの各々に対して、修正された地図タイル、及び、複数の生の地図タイルのうちの対応する生の地図タイルを示す情報を1つ又は複数のメモリに記憶することとを実行するように構成される。生成することは、隣接する生の地図タイルのリスト全体に亘って生の地図タイル中のフィーチャの形状の頂点の総数を計算することと、コンフィギュレーション・データからの特定の量だけ総数より大きい数の頂点を、隣接する生の地図タイルのリストの特定の生の地図タイル内のフィーチャの形状に有する、特定の生の地図タイルを選択することと、特定の生の地図タイル内のフィーチャの形状の頂点の数を削減することによって、特定の生の地図タイルに対する特定の修正された地図タイルを生成することとを含む。
実装形態においては、1つ又は複数のプロセッサが、複数の生の地図タイルのうちの特定の生の地図タイルを求める要求を受信することと、1つ又は複数のメモリから、複数の修正された地図タイルのうちの、特定の生の地図タイルに対応する特定の修正された地図タイルを読み出すことと、要求に応答して特定の修正された地図タイルをディスプレイ装置に送信することとを更に実行するように構成される。
実装形態においては、システムはディスプレイ装置を更に含む。
実装形態においては、コンフィギュレーション・データは、地理的領域のデジタル地図を見るための複数のズーム・レベル用のデータを含み、デジタル地図は複数のズーム・レベルのうちの1つのズーム・レベルに対応する。実装形態においては、1つ又は複数のプロセッサは、複数のズーム・レベルのうちの特定のズーム・レベルの選択を更に受けるように構成され、コンフィギュレーション・データは、選択された連続するズーム・レベルに対応する修正されたデジタル地図がディスプレイ装置に送信されるときに、デジタル地図の簡略化の動的制御を可能にするスムージング機能を含む。
実装形態においては、生成することは、複数の生の地図タイルのうちの特定の生の地図タイルのための画素解像度がコンフィギュレーション・データからの第1の閾値未満であると判断することと、特定の生の地図タイルがコンフィギュレーション・データからの第2の閾値より大きい特定の数のフィーチャを有すると判断することと、特定の数のフィーチャのうちの1つのフィーチャを除去することによって特定の生の地図タイルに対する特定の修正された地図タイルを生成することとを含む。
実装形態においては、生成することは、複数の生の地図タイルのうちの特定の生の地図タイルのための画素解像度がコンフィギュレーション・データからの第1の閾値を超えると判断することと、特定の生の地図タイルが、コンフィギュレーション・データからの第2の閾値より大きいフィーチャを含む特定の数のフィーチャを有すると判断することと、フィーチャの画素の少なくとも1つの値を更新することによって特定の生の地図タイルに対する特定の修正された地図タイルを生成することとを含む。
実装形態においては、生成することは、複数の生の地図タイルのうちの複数の生の地図タイルのセット内のフィーチャ中の画素の全ての値の最大値を、複数の生の地図タイルのセット内のフィーチャの少なくとも1つの画素に割り当てることによって、複数の生の地図タイルのセットに対して特定の修正された地図タイルを生成することであって、少なくとも1つの画素はそれぞれ、既に最大値を値として有していない、生成することを含む。
実装形態においては、生成することは、1つ又は複数の共通の画素に対応する複数の生の地図タイルのうちの特定の生の地図タイルに関連付けられた1つ又は複数のフィーチャのうちの特定のフィーチャの画素の全ての値の最大値を、特定のフィーチャの少なくとも1つの1つ又は複数の共通の画素の少なくとも1つの画素に割り当てることによって、特定の生の地図タイルに対して特定の修正された地図タイルを生成することであって、少なくとも1つの画素はそれぞれ、既に最大値を値として有していない、生成することを含む。
実装形態においては、デジタル地図内のフィーチャの画素の各値は、イベントのリストの特定のイベントが発生するという危険の量を示す。
実装形態においては、複数の生の地図タイルのうちの特定の生の地図タイルの画素解像度は、地理的領域内の特定の生の地図タイルに関連付けられたサブ領域の位置に依存する。
実装形態においては、1つ又は複数の非一時的コンピュータ可読記憶媒体は、実行されるときに、1つ又は複数のプロセッサにデジタル地図を簡略化する方法を実行させる命令を記憶する。この方法は、地理的領域のためのデジタル地図を1つ又は複数のプロセッサによって受信することであって、デジタル地図は地理的領域の複数のサブ領域と関連付けられた複数の生の地図タイルに編成されている、受信することと、1つ又は複数のメモリに記憶されたコンフィギュレーション・データを1つ又は複数のプロセッサによって読み出すことであって、コンフィギュレーション・データは、デジタル地図を簡略化するための、人間にとっての可視性に関する、読み出すことと、複数の生の地図タイルの各々から1つ又は複数のフィーチャを識別することであって、複数の生の地図タイルの各々の1つ又は複数のフィーチャの各フィーチャは、生の地図タイル内の画素のクラスタに対応し、画素のクラスタの各々に対する値を有し、少なくとも2つのフィーチャは、複数の生の地図タイルのうちの1つの生の地図タイル内の共通の画素に対応する、識別することと、複数の生の地図タイルにおける少なくとも1つのフィーチャを除去するか又は合体させることによって、或いは、複数の生の地図タイル内のフィーチャの範囲内で画素の値を更新することによって、或いは、複数の生の地図タイル内のフィーチャのサイズを縮小することによって、複数の生の地図タイルに対して1つの修正されたデジタル地図を形成する複数の修正された地図タイルを生成することであって、複数の修正された地図タイルの全体のサイズは複数の生の地図タイルの全体のサイズより小さい、生成することと、複数の修正された地図タイルの各々に対して、修正された地図タイル、及び、複数の生の地図タイルのうちの対応する生の地図タイルを示す情報を1つ又は複数のメモリに記憶することとを含む。生成することは、隣接する生の地図タイルのリスト全体に亘って生の地図タイル中のフィーチャの形状の頂点の総数を計算することと、コンフィギュレーション・データからの特定の量だけ総数より大きい数の頂点を、隣接する生の地図タイルのリストの特定の生の地図タイル内のフィーチャの形状に有する、特定の生の地図タイルを選択することと、特定の生の地図タイル内のフィーチャの形状の頂点の数を削減することによって、特定の生の地図タイルに対する特定の修正された地図タイルを生成することとを含む。
1つの実装形態においては、方法は、複数の生の地図タイルのうちの特定の生の地図タイルを求める要求を受信することと、1つ又は複数のメモリから、複数の修正された地図タイルのうちの、特定の生の地図タイルに対応する特定の修正された地図タイルを読み出すことと、要求に応答して特定の修正された地図タイルをディスプレイ装置に送信することとを更に含む。
1つの実装形態においては、コンフィギュレーション・データは、地理的領域のデジタル地図を見るための複数のズーム・レベル用のデータを含み、デジタル地図は複数のズーム・レベルのうちの1つのズーム・レベルに対応する。1つの実装形態においては、1つ又は複数のプロセッサは、複数のズーム・レベルのうちの特定のズーム・レベルの選択を更に受けるように構成され、コンフィギュレーション・データは、選択された連続するズーム・レベルに対応する修正されたデジタル地図がディスプレイ装置に送信されるときに、デジタル地図の簡略化の動的制御を可能にするスムージング機能を含む。
1つの実装形態においては、生成することは、複数の生の地図タイルのうちの特定の生の地図タイルのための画素解像度がコンフィギュレーション・データからの第1の閾値未満であると判断することと、特定の生の地図タイルがコンフィギュレーション・データからの第2の閾値より大きい特定の数のフィーチャを有すると判断することと、特定の数のフィーチャのうちの1つのフィーチャを除去することによって特定の生の地図タイルに対する特定の修正された地図タイルを生成することとを含む。
1つの実装形態においては、生成することは、複数の生の地図タイルのうちの特定の生の地図タイルのための画素解像度がコンフィギュレーション・データからの第1の閾値を超えると判断することと、特定の生の地図タイルが、コンフィギュレーション・データからの第2の閾値より大きいフィーチャを含む特定の数のフィーチャを有すると判断することと、フィーチャの画素の少なくとも1つの値を更新することによって特定の生の地図タイルに対する特定の修正された地図タイルを生成することとを含む。
1つの実装形態においては、生成することは、複数の生の地図タイルのうちの複数の生の地図タイルのセット内のフィーチャ中の画素の全ての値の最大値を、複数の生の地図タイルのセット内のフィーチャの少なくとも1つの画素に割り当てることによって、複数の生の地図タイルのセットに対して特定の修正された地図タイルを生成することであって、少なくとも1つの画素はそれぞれ、既に最大値を値として有していない、生成することを含む。
1つの実装形態においては、生成することは、複数の生の地図タイルのうちの特定の生の地図タイルに関連付けられた1つ又は複数のフィーチャのうちの、1つ又は複数の共通の画素に対応する特定のフィーチャの画素の全ての値の最大値を、特定のフィーチャのうちの少なくとも1つの1つ又は複数の共通の画素のうち少なくとも1つの画素に割り当てることによって、特定の生の地図タイルに対して特定の修正された地図タイルを生成することであって、少なくとも1つの画素はそれぞれ、既に最大値を値として有していない、生成することを含む。
1つの実装形態においては、複数の生の地図タイルのうちの特定の生の地図タイルの画素解像度は、地理的領域内の特定の生の地図タイルに関連付けられたサブ領域の位置に依存する。
2.システムの概要
図1は、1つの実装形態による、記載されている技術が実施され得る例示的なコンピュータ・システムを示す。
実装形態においては、コンピュータ・システム100は複数のコンポーネントを含む。複数のコンポーネントは、少なくとも部分的には1つ又は複数のコンピューティング装置においてハードウェアによって実装され得る。1つ又は複数のコンピューティング装置は、例えば、本明細書に記載される機能を実行するための、1つ又は複数のメモリに記憶された、記憶されたプログラム命令を実行する1つ又は複数のハードウェア・プロセッサである。すなわち、実装形態においては、本明細書に記載される全ての機能は、様々な実装形態の専用コンピュータ又は汎用コンピュータにおいてプログラミングを使用して実行されるオペレーションを示すことを意図している。図1は、本明細書に記載されるプログラミングを実行するように構成されたコンポーネントの1つ又は多数の可能な配置のみを示す。他の配置では、より少ない、又は、異なるコンポーネントを含み得、コンポーネント間の仕事の分配は配置に応じて変わり得る。
図1は、データ記憶システム120に接続されたサーバ・コンピュータ110にネットワーク接続106を介して接続されるクライアントのコンピューティング装置102を示す。サーバ・コンピュータ110は、マッピング・アプリケーション112を含む。データ記憶システム120は、電子地図データ122、簡略化された地図データ124、画像地図タイル126、及び、コンフィギュレーション・データ128を記憶する。クライアントのコンピューティング装置は、クライアント地図アプリケーション104を含む。
1つの実装形態においては、クライアントのコンピューティング装置102は、如何なるコンピューティング装置であってもよく、サーバ、パーソナル・コンピュータ、ラップトップ、ハンドヘルド・コンピュータ、セルラ又はモバイル電話、携帯情報端末(PDA)、携帯ナビゲーション装置、タブレット型コンピュータ、インターネット機器、無線装置、有線装置、マルチプロセッサ・システム等を含むがこれらに限定されない。それに加えて、又は、その代わりに、クライアントのコンピューティング装置102は、自動車又は他の車両に搭載されるナビゲーション・システムであってもよい。図1には単一のクライアントのコンピューティング装置が示されているが、任意の数のクライアントのコンピューティング装置が存在してもよい。クライアントのコンピューティング装置102は各々ネットワーク106を介してサーバ・コンピュータ110に通信によって接続する。ネットワーク106は、LAN、WAN、公衆インターネットのような1つ又は複数のインターネットワーク、携帯電話ネットワーク、又は、企業ネットワークの任意の組合せを含む。
図1には示されないが、クライアントのコンピューティング装置102は、例えば、1つ又は複数の入力装置、メモリ、プロセッサ等のハードウェア・エレメントも含む。クライアントのコンピューティング装置102は、アプリケーション、ソフトウェア、及び、他の実行可能命令も含み、本明細書に記載される実装形態の様々な態様を容易にする。これらのアプリケーション、ソフトウェア、及び、他の実行可能命令は、クライアントのコンピューティング装置に関連するユーザ、所有者、製造業者、又は、他のエンティティによってインストールされ得る。1つの実装形態においては、クライアントのコンピューティング装置102は、クライアント地図アプリケーション104を含む。クライアント地図アプリケーション104は、アプリケーション又はソフトウェアの一部としての電子マッピングの機能性を表示、使用、サポート、又は、別途提供するソフトウェアである。クライアント地図アプリケーション104は、例えば、インパクト解析アプリケーション、イベント・モデリング・アプリケーション、タクシー・サービス、ビデオ・ゲーム、チャット・クライアント、食品配送アプリケーション等の任意のタイプのアプリケーションであってもよい。
サーバ・コンピュータ110は、任意のコンピューティング装置であってよく、サーバ、ラック(racks)、ワークステーション、パーソナル・コンピュータ、汎用コンピュータ、ラップトップ、インターネット機器、無線装置、有線装置、マルチプロセッサ・システム、ミニコンピュータ等を含むがこれらに限定されない。図1は単一のエレメントを示すが、サーバ・コンピュータ110は、広く、サーバ・クラスタのような1つ又は複数のマルチプル・サーバ・コンピュータを示し、サーバ・コンピュータ110は1つ又は複数の物理的位置に設けられ得る。サーバ・コンピュータ110は、仮想サーバ・ファームのようなデータセンタの1つ又は複数のコンピュータを用いて実行する1つ又は複数の仮想コンピューティング・インスタンスも示し得る。
実装形態においては、サーバ・コンピュータ110は、ネットワーク106などの、有線及び無線通信の任意の組合せを使用する任意の種類のコンピュータ・ネットワークを介して、データ記憶システム120及びクライアントのコンピューティング装置102と通信によって接続される。
実装形態においては、データ記憶システム120は、1つ又は複数のハード・ディスク・ドライブ、メモリ、又は、データを記憶するように構成される他の任意の電子デジタル・データ記録装置のような、任意の適切な記憶装置に記憶されるプログラム及びデータからなるデータ記憶サブシステムである。図1ではデータ記憶システム120は単一の装置として描かれているが、データ記憶システム120は1つ又は複数の物理的位置に存在する複数の装置に亘ることができる。例えば、データ記憶システム120は、1つ又は複数のデータ・ウェアハウスに位置する1つ又は複数のノードを含むことができる。それに加えて、1つの実装形態においては、データ記憶システム120は、サーバ・コンピュータ110と同じ装置上に位置し得る。その代わりに、データ記憶システム120は、サーバ・コンピュータ110とは別の装置上に位置し得る。
実装形態においては、データ記憶システム120は、簡略化された地図タイルを生成し、且つ/又は、簡略化された地図タイルをクライアントのコンピューティング装置102に提供するためにサーバ・コンピュータ110によって用いられる、電子地図データ122及び簡略化された地図データ124を含むデータを記憶する。実装形態においては、電子地図データ122は、クライアント地図アプリケーション104のようなクライアントの地図アプリケーションに直接又は間接的に提供されるデジタル地図データである。電子地図データ122は、簡略化された地図データ124を生成するために処理され得る。また、図示された実装形態においては、データ記憶システム120は、レンダリングされた、画像地図タイル126及びコンフィギュレーション・データ128を記憶、又は、キャッシュする。
実装形態においては、コンフィギュレーション・データ128は、データベース、コンフィギュレーション・ファイル、或いは、例えば、セッティング、プレファレンス、パラメータ、閾値、又は、プロトコルのようなコンフィギュレーション・データを記憶する他の任意のデータ・ファイルであってもよい。コンフィギュレーション・データ128は複数のコンフィギュレーション・データを記憶することができ、各コンフィギュレーション・データは、1つ又は複数のそれぞれのクライアントの地図アプリケーション、1つ又は複数のそれぞれの電子地図データのセット、及び/又は、1つ又は複数のそれぞれの地図のズーム・レベルと関連付けられている。
例えば、コンフィギュレーション・データ128は、後述する手順のためのコンフィギュレーション・データを記憶することができる。コンフィギュレーション・データは、人間にとっての可視性に関するコンフィギュレーション・データを含み、様々な閾値又はセッティングを含み、結果として生じる地図を目立つように、又は、人間の眼に著しく異なって見えるようにレンダリングすることなく、地図の視覚的アピールを維持又は改善することを助けるために、地図データの簡略化を容易にする。コンフィギュレーション・データは、距離許容度、ジオメトリ・スナッピング(geometry snapping)、分子、分母、及び、デフォルト値のようなパラメータ値を示すことができる。パラメータ値は、ターゲット・クライアントの地図アプリケーション、簡略化されている電子地図データの特定のセット、及び/又は、簡略化されている地図タイルと関連付けられたズーム・レベルに応じて異なり得る。コンフィギュレーション・データは、どの手順がどの地図フィーチャに適用されるべきかについて指示することもできる。以下に更に詳細に記述されるように、コンフィギュレーション・データは統計条件によって変更され得る。例えば、データセットが点の数の閾値より多くを含む場合、点の簡略化、すなわち、点の手順の削減が利用され得る。
それに加えて、コンフィギュレーション・データ128は、ユーザ又は管理者によって、サーバ・コンピュータ110のような1つ又は複数のコンピュータ或いは他の任意のコンピュータを用いて修正され得る。ユーザ・インタフェースは、パラメータ値を入力又は修正するコンフィギュレーション・データが適用されるデータセットを選択又は修正する等のために提供され得る。それに加えて、又は、その代わりに、ユーザは、1つ又は複数の対象とするクライアントの地図アプリケーション、及び/又は、1つ又は複数の対象とする電子地図データのセットに関連付けてコンフィギュレーション・ファイルをコンフィギュレーション・データ128に記憶してもよい。解像度(ズーム・レベル)毎のコンフィギュレーション可能なパラメータは、スムージング機能と共に、ユーザが、完全にズームアウトしてから完全にズームインするまでの地図の雰囲気を動的に制御し、異なる表示域のためのデータの表現を制御することを可能にする。
サーバ・コンピュータ110は、マッピング・アプリケーション112のホストとなるか又はマッピング・アプリケーション112を実行することができ、他のアプリケーション、ソフトウェア、及び、他の実行可能命令を含み、本明細書に記載される実装形態の様々な態様を容易にし得る。
実装形態においては、マッピング・アプリケーション112は、プログラムされるか又は電子地図データ122から地図データを読み出すように構成され、地図データを分析し、地図データに基づいて1つ又は複数の最適化された地図タイルを生成する、プログラム命令を含む。最適化された地図タイルは、元の地図タイルより簡略化され、且つ/又は、より少ない幾何学的エレメントを含む地図タイルである。
実装形態においては、プログラム命令は、1つ又は複数の元の地図タイルを求める要求を受信することに応答して1つ又は複数の最適化された地図タイルを生成するように構成され得る。それに加えて、又は、その代わりに、プログラム命令は、前もって1つ又は複数の最適化された地図タイルを生成して、記憶するように構成され得る。
実装形態においては、最適化された地図タイルは、レンダリングされるとき、対応する元の地図タイルと視覚的に同一又は同様な電子地図データを含む。以下に詳述されているように、最適化された地図タイルを生成することは元の地図タイルに地図フィーチャを含むべきか元の地図タイルから地図フィーチャを除外するべきかについて判断することを伴い得る。それに加えて、最適化された地図タイルを生成することは、元の地図タイルからの2つ以上の地図フィーチャを合体させるべきかについて判断することを伴い得る。
それに加えて、マッピング・アプリケーション112は、電子マッピングをクライアント地図アプリケーション104に提供するようにプログラムされた又は構成されたプログラム命令を含むことができる。プログラム命令は、例えば、クライアントのコンピューティング装置からの地図タイル要求を受信すること、クライアントのコンピューティング装置に対して電子地図データを送信すること、データ・プロバイダから電子地図ソース・データ122を受信すること、電子地図データ122を処理して簡略化された地図データ124を生成すること、及び、本明細書に記載される実装形態の他の任意の態様等である。
明確な実例を示すために、以上の説明では、特定のオペレーション、機能、及び、プログラミングを図1のマッピング・アプリケーション112に帰するものとした。しかしながら、他の実装形態では、同じオペレーション、機能、及び、プログラミングが、ユーティリティ・プログラム又はライブラリなどのマッピング・アプリケーション112とは別のプログラム又はロジックにおいて実行され得る。例えば、簡略化された地図タイルを画像地図タイルにレンダリングする機能は、マッピング・アプリケーション112のプログラム命令が呼び出すライブラリにおいて実施され得る。それに加えて、又は、その代わりに、本明細書に記載される機能性を実装するために必要に応じて、マッピング・アプリケーション112は、他の任意のアプリケーション、ソフトウェア、又は、オペレーティング・システム若しくはドライバなどのサーバ・コンピュータ110によって実行されるモジュールと通信又はインタフェースすることができる。
3.地図タイルの概要
実装形態においては、電子地図データ122は、クライアント地図アプリケーション104のようなクライアントの地図アプリケーションに対して直接又は間接的に提供されるデジタル地図データである。電子地図データ122は、様々なソースから獲得される、ダウンロードされる、又は、受信される生のデジタル地図データに基づくものであってもよい。生のデジタル地図データは、衛星画像、デジタル道路データ、建築又は場所のデータ、或いは、地形データを含むことができる。ソースの例としては、米国航空宇宙局(NASA)、米国地理庁(USGS)、及び、デジタルグローブを含む。また、生のデジタル地図データは、ユーザによって定義され、サーバ・コンピュータにアップロードされ得る。一旦獲得される、又は、受信されると、生のデジタル地図データは電子地図データ130を生成するために用いられる。例えば、生のデジタル地図データは、複数のベクトル地図タイルとして処理され、編成され得る。
実装形態においては、電子地図データ122は、複数の地図タイルを含む。各地図タイルは、地理的地図の部分又はサブ領域に対応し得る。例えば、特定の地図タイルは、特定のズーム・レベルの地理的地図の方形領域、又は、地理的地図内の予め定義されたサイズ及び位置の領域に対応し得る。
それに加えて、複数の地図タイルはグリッド・ベースの構成に編成され得る。地理的地図領域は、複数の方形などのグリッドに分割され得、各タイルはグリッド内のブロックに対応する。グリッド・ベースのシステムの例は、参照によってその内容が本明細書に組み込まれる、Ricky Brundritt、Chris French、Saisang Cai「Bing Maps Tile System」 https://docs.microsoft.com/en-us/bingmaps/articles/bing-maps-tile-systemに記載されているクワッドキー(quadkey)システムを含む。クワッドキー・システムにおいては、最も遠くにズームアウトされた最も低いズーム・レベルで、地理的地図は1つ又は複数のタイルに分割される。次のズーム・レベルで、各タイルは4つのサブタイルに分割される等である。タイルは、それらの親タイルに基づいて参照され、又は、インデックス付けされ得る。
例えば、最も低いズーム・レベルの場合、地理的地図は4枚のタイル、すなわちタイル0、タイル1、タイル2、及び、タイル3に分割されると仮定する。タイル0は4つのサブタイルに分割されて、タイル00、タイル01、タイル02、及び、タイル03のように参照又はインデックス付けされ得る。第1の数字はタイル0に関連し、第2の数字はタイル0内のサブタイルの位置に関連する。同様に、タイル00のサブタイルは、タイル000、001、002、及び、003等のように参照又はインデックス付けされ得る。
実装形態においては、各地図タイルは、例えば、点、線、及び、多角形のような地図上のフィーチャの地図ジオメトリを記述するデータを含む。例えば、地理的地図の部分に対応する電子地図データは、ラベル及びその他の地図作成上のフィーチャの提案された配置のためのジオメトリと共に、地理的地図のこの部分内に位置する、道、建物、水、公園等を表わすジオメトリ・データを含むことができる。フィーチャのための電子地図データは、例えば、点、線、多角形、多重の点、多重の線、又は、多重の多角形のようなフィーチャの形状を示すデータを含むことができ、地図タイル内における、その形状の座標を示すデータを含むこともできる。例えば、街路のための電子地図データは、その街路の形状が多重の線を含むことを示すジオメトリ・データ、これらの多重の線の終点に対応する座標の配列、及び、これらの多重の線の各々の幅を含むことができる。
それに加えて、又は、その代わりに、地図タイルは、例えば、道路名、地名、家屋番号、フィーチャのタイプ、高さ、及び、その他の性質のような地図タイル内のフィーチャの属性を記述するメタデータを含む。メタデータは、デジタル地図上のラベルとしてレンダリングされ得る名称などの各フィーチャに対応するデータを含むことができる。それに加えて、又は、その代わりに、メタデータは、地図タイルが対応する地理的地図の部分を示すデータを含むことができる。例えば、メタデータは、地図タイルの1つ又は複数の座標、或いは、地図タイルの1つ又は複数の境界を示すデータを含むことができる。
地図タイルを表示するために、ベクトル地図タイルは、本明細書において、画像地図タイルとも称される、ラスター(ビットマップ)画像にレンダリングされ得る。共に表示されるときに、画像地図タイルのセットは領域の可視の地図を描く画像を形成する。画像地図タイルは、250画素四方などの同一サイズであってもよい。画像地図タイルの各々は、特定のズーム・レベルにおける地理的地図の特定の方形領域に対応することもできる。
実装形態においては、画像地図タイルは、事前にレンダリングされ、データ記憶システム120に保存され得る。1つ又は複数の地図タイルがクライアント地図アプリケーション104によって要求されるときに、画像地図タイルが読み出されて、クライアントのコンピューティング装置102に送られる。
4.ジオメトリの簡略化
実装形態においては、地図タイルを記憶するために必要な記憶スペースの量を減らすために、電子地図データ122に基づいて簡略化された地図データ124が生成される。実装形態においては、簡略化された地図データ124を生成することは、電子地図データ122の複数の元の地図タイルのうちの各々の元の地図タイルに対して簡略化された地図タイルを生成することを含む。それに加えて、又は、その代わりに、生のデジタル地図データを処理して地図タイルを生成しながら、簡略化された地図データ124は生のデジタル地図データを受け取った後に生成し得る。
実装形態においては、元の地図タイルに基づいて簡略化された地図タイルを生成することは、元の地図タイルによって定義される複数の地図フィーチャの各地図フィーチャ毎に、その地図フィーチャを簡略化された地図タイルから除外するべきかどうかを判断することを含む。地図フィーチャを除外するべきかどうかを判断することは、例えば、そのフィーチャのサイズ、そのフィーチャの形状、そのフィーチャに対応する画素数、フィーチャと同じ画素に対応する他のフィーチャの数、そのフィーチャと関連付けられた値等に基づいてもよい。地図フィーチャを地図タイルから除外することは、ジオメトリ・データ、及び、任意の関連するメタデータなどの、この地図フィーチャに対応する地図データを地図タイルから取り除くことを含むことができる。
それに加えて、元の地図タイルに基づいて簡略化された地図タイルを生成することは、複数の地図フィーチャの各々の地図フィーチャ毎に、その地図フィーチャを1つ又は複数の他の地図フィーチャに合体させるべきかどうかを判断することを含むことができる。地図フィーチャを1つ又は複数の他の地図フィーチャに合体させるべきかどうかを判断することは、例えば、そのフィーチャの形状、1つ又は複数の他の地図フィーチャの形状、そのフィーチャと同じ画素に対応する他のフィーチャの数、そのフィーチャと関連付けられた値等に基づいてもよい。地図タイル中の2つ以上の地図フィーチャを合体させることは、単一合体オペレーション(unary union operation)を2つ以上の地図フィーチャに対応するジオメトリ・データに適用して単一の統合された幾何学的形状に対応するジオメトリ・データを生成することを含むことができる。
例えば、第1の地図フィーチャのためのジオメトリ・データは第1の点集合を用いて第1の多角形を定めることができ、第2の地図フィーチャのためのジオメトリ・データは第2の点集合を用いて第2の多角形を定めることができる。第1の地図フィーチャ及び第2の地図フィーチャを合体させることは、ジオメトリ・データを結合して少なくとも第1の点集合の部分、及び、第2の点集合の部分を含む第3の多角形を生成することを含むことができる。それに加えて、重なり合う又は不必要な点は、合体されたジオメトリを更に簡略化するために取り除かれ得る。
実装形態においては、地図タイル中の地図フィーチャが取り除かれた、且つ/又は、合体された後、更新された地図タイルは、例えば、簡略化された地図データ124に、簡略化された地図タイルとして記憶される。それに加えて、又は、その代わりに、更新された地図タイルは、グラフィック・イメージへレンダリングされ、例えば、画像地図タイル126に、記憶され得る。
実装形態においては、簡略化された地図タイルを生成することは、地図タイル内の1つ又は複数の点、線、形状、及び/又は、地図フィーチャの、実次元空間における位置に基づいてもよい。それに加えて、又は、その代わりに、簡略化された地図タイルを生成することは、地図タイル内で1つ又は複数の点、線、形状、及び/又は、フィーチャの、画素空間における位置に基づいてもよい。簡略化されたジオメトリを生成するための様々な技術は、実空間及び/又は画素空間内における地図フィーチャを分析することに基づいてもよい。
4.1 実空間
実空間は、キロメートル又はマイルなどの、地図データにより用いられる座標系における実単位での測定値に関係する。上述のように、各地図タイルは地理的地図内の方形領域に対応し得る。地図タイル内の各点、線、形状、フィーチャ等は、地理的地図内のそれぞれの点、線、形状、又は、フィーチャに対応する。実空間の測定値は、地図フィーチャのサイズ、長さ、幅、領域等を示すことができる。実装形態においては、フィーチャのための電子地図データは、このフィーチャに対応する1つ又は複数の実空間測定値を示すデータを含むことができる。それに加えて、又は、その代わりに、1つ又は複数の実空間測定値は、地図タイルの方形領域及びズーム・レベルなどの現在の表示域(例えば、)、或いは、地図フィーチャに対応する座標に基づいて算出され得る。
他の解像度ストラテジーと比較すると、実空間を使用することは、クラスタ化又はオペレーションをグループ化するためにより正確であり得る。
4.2 画素空間
画素空間又は座標空間は、地図タイルからレンダリングされる画像地図タイルの画像内の画素に関する測定に関係する。上述のように、各地図タイルは、地理的地図内で方形領域に対応し得る。地図タイルがグラフィック・イメージとしてレンダリングされるとき、地図タイル内の各点、線、形状、フィーチャ等はグラフィック・イメージにレンダリングされる。画素空間の測定値は、地図フィーチャに対応する1つ又は複数の画素を示す。
方形領域及びズーム・レベルなどの現在の表示域に応じて、現在の表示域の各画素は特定の計測単位に対応する。例えば、特定のズーム・レベルにおいて、1画素は100キロメートルに対応し得る。
実装形態においては、実空間から座標空間への変換はクワッドキー解像度に基づいて算出され得る。タイル中の距離を赤道で水平に測定するための例示的な式は、
タイル解像度=C・cos(緯度)/2ズーム・レベル
であり得る。ここで、Cは地球の周囲長である。このとき、画素のサイズは、
画素サイズ=タイル解像度/タイル・サイズ
によって決定され得る。
画素サイズを算出するために、フィーチャが点でない限り、フィーチャの境界が使われ得る。その場合には、その点の周辺に四角形が描かれる。画素空間は赤道の上下では粗く変換される。
画素空間を用いることは、表示域内で人間の眼で見るために何が役立つかを判断するために、より有益であり得る。
4.3 統計的コンテキスト
統計的コンテキストは、以下に記述される技術に用いられるパラメータを決定、且つ/又は、修正するために用いられ得る。統計的コンテキストは、広域コンテキスト、隣接コンテキスト、及び、局所コンテキストを含むことができる。
広域コンテキストは、データセット全体に亘るフィーチャに関する統計を算出する。実装形態においては、広域コンテキスト算出は、複数のコンピューティング・ノードを用いて分散的方法で行われる。例えば、広域コンテキストは、1つ又は複数のApache Sparkクラスタを用いて算出され得る。広域コンテキストは、データセット全体に亘る統計ファクタによってフィーチャを揃えるために使われ得る。例えば、地図ビュー内の最も小さい10%の地図フィーチャが落とされ、地図ビューが複数の地図タイルを含むと仮定する。広域コンテキストは、複数の地図タイル内のフィーチャを分析して最も小さい10%の地図フィーチャを決定するために用いられ得る。
隣接コンテキストは、タイル及びその隣接タイルのうちの1つ又は複数に亘ってフィーチャに関する統計を算出する。例えば、フィーチャが隣接タイル中の1つ又は複数の他のフィーチャに繋がる場合、或いは、フィーチャが隣接タイルにまで延びる場合、このことは、これらの隣接タイルに基づいてフィーチャをスムージングするために役立ち得る。
局所コンテキストは、単一のタイル中のフィーチャに関する統計を算出する。これは、単一のタイル内のフィーチャを比較するために使われ得る。例えば、局所コンテキストは、地図タイル内でフィーチャの、他のフィーチャに対して相対的な、サイズを決定するために用いられ得る。
実装形態においては、統計的コンテキストは、地図タイル中の地図フィーチャがどのように簡略化されるべきかを判断するために用いられ得る。平均頂点簡略化は、局所データ・コンテキスト中の全てのフィーチャに亘る曲線にフィットするように地図タイルの形の頂点の数を削減することを含む。隣接コンテキストを使用して、地図タイルの形の、且つ、隣接した地図タイル中の、フィーチャの頂点の数が分析され、この分析に基づいて、百分位数のセット又は頂点の数の他の1つの総数が決定される。地図タイルの地図フィーチャが合体されるか又は除外され、或いは、地図タイル内の地図フィーチャの形状が変えられて、特定の数の頂点を有するフィーチャの数、及び/又は、全体の頂点の数は、セットの百分位数又は他の総数の値と一致する。例えば、隣接した地図タイルのセットの中のフィーチャの形の頂点の平均数は10であり得る。コンフィギュレーション・データは、フィーチャの形の全体的に一貫した外観を維持するための3つ以下の頂点の違いを示すことができる。そのために、フィーチャの形が13を超える頂点を有するときに、この形の頂点の数を削減するためにこの形はスムージングされ得る。このことは、タイル内の形が同様な形及び雰囲気にフィットすることを確実にする。
4.4 ファクタ
以下に更に詳細に述べるように、フィーチャを除外するべきかどうか、及び/又は、合体させるべきかどうかを判断するために様々なファクタが用いられ得る。実装形態においては、ファクタは2次元、すなわち実座標空間及び表示域画素空間において算出される。実座標空間とはフィーチャの周囲の座標空間を意味する。表示域画素空間とはフィーチャの周囲の画素を意味する。
実座標空間において算出され得るファクタは、以下のものを含む。面積の最小値、最大値、平均値、及び、百分位、長さの最小値、最大値、平均値、及び、百分位、幅の最小値、最大値、平均値、及び、百分位、線の歪みの最小値、最大値、平均値、及び、分布、平均的な線の形、並びに、頂点の数の最小値、最大値、平均値、及び、百分位。
表示域画素空間において算出され得るファクタは、以下のものを含む。画素の最小数、画素の最大数、平均画素数、画素数の百分位、画素数の分布、及び、画素の座標分布。
5.ジオメトリの簡略化
以下に更に詳細に記述されるように、地図タイル中のジオメトリ簡略化のための技術は、画素解像度フィーチャ除外、画素解像度フィーチャ合体、値に基づくフィーチャ合体、値に基づくフィーチャ除外、平均フィーチャ形状検出、範囲に基づくフィーチャ検出、平均頂点簡略化、及び、点簡略化を含む。これらの方法は、別々に又は組み合わせて用いられ得、実装形態によって任意の数の方法が用いられ得る。
5.1 フィーチャ検出
フィーチャ検出は、フィーチャをカテゴリにグループ化するために使われ得る。それに加えて、又は、その代わりに、どの技術が地図フィーチャに適用されるべきか、又は、特定の技術が地図フィーチャのために用いられるべきかを判断するために検出技術が用いられ得る。
実装形態においては、フィーチャ検出は、平均フィーチャ形状検出を含む。平均フィーチャ形状検出は、局所データ・コンテキストのために平均フィーチャ形状を算出することを含む。形状は、通常、直線、又は、湾曲線によって形成される。平均フィーチャ形状を算出することは、フィーチャの頂点の数、並びに、フィーチャの長さ及び幅のようなファクタに基づいてもよい。
フィーチャは、合体又は除外などの他の技術を適用する前に、カテゴリに分類され得る。例として、同じ長さ及び幅を有する4つの頂点を有するフィーチャは、方形に分類され得る。システムは、地図タイル中の全ての方形が共に合体されるべきと判断することができる。別の例としては、ある値より大きい長さを有する全てのフィーチャが集められて、その後合体され得る。このことは、例えば、より大きな地理的フィーチャを構成する川の支流のようなフィーチャを検出するために役立ち得る。
それに加えて、フィーチャ検出は、範囲に基づくフィーチャ検出を含むことができる。範囲に基づくフィーチャ検出は、値が特定の範囲内に入るフィーチャを決定することを含む。実装形態においては、範囲の閾値は、後述する広域データ統計的コンテキストから、動的に算出される。それに加えて、又は、その代わりに、範囲の閾値は明示的に構成され得る。
範囲に基づくフィーチャ検出は、例えば、上述の頂点の数、長さ、幅、フィーチャによって覆われる面積等のような値の範囲に基づいて、どのフィーチャを含むか又は除外するかを判断するために有益であり得る。特定の値は、フィーチャのタイプ、コンフィギュレーション、及び/又は、特定の実装形態に依存し得る。
5.2 フィーチャ除外
実装形態においては、元の地図タイルに基づいて簡略化された地図タイルを生成することは、元の地図タイルによって定義される複数の地図フィーチャの各地図フィーチャ毎に、その地図フィーチャを簡略化された地図タイルから除外するべきかどうかを判断することを含む。地図フィーチャを除外するべきかどうかを判断することは、例えば、そのフィーチャのサイズ、そのフィーチャの形状、そのフィーチャに対応する画素数、そのフィーチャと同じ画素に対応する他のフィーチャの数、そのフィーチャと関連付けられた値等に基づいてもよい。
実装形態においては、地図フィーチャを除外するべきかどうかを判断することが、画素解像度フィーチャ除外を使用して実行される。実空間コンテキストにおいて、タイル内のフィーチャの数は、より多くの記憶スペースを占有することを犠牲にしてフィーチャを含めても如何なる視覚上の利点も提供しない程度に密であってもよい。実装形態においては、画素解像度フィーチャ除外は、フィーチャの画素解像度を決定して、その画素解像度に基づいてフィーチャを除外するべきか否かを判断することを含む。
実装形態においては、画素解像度に基づいてフィーチャを除外するべきかどうかを判断することは、画素解像度が、コンフィギュレーション・データの特定の閾値を超えるか、又は、コンフィギュレーション・データの特定の閾値未満であるかどうかを判断することを含む。この閾値は、例えば、特定の地図タイル内の、局所的閾値であってもよい。それに加えて、又は、その代わりに、画素空間における(例えば、特定のズーム・レベルの全ての地図タイルに亘る)フィーチャの滑らかな移行及び表現を確実にするために、判断は、画素解像度が広域閾値を超えるか、又は、広域閾値未満であるかに基づいてもよい。例えば、解像度が低いときには、全てのフィーチャが見えるとは限らない可能性があるので、幾つかは除去され得るであろう。従って、地図タイル中のフィーチャの数がコンフィギュレーション・データに基づく一定の閾値を超えるときに、フィーチャの幾つかは除去され得る。
実装形態においては、閾値は、フィーチャに対するパーセンテージ的な画素毎の制限に基づく。1つの実装形態においては、上位10%の大きいフィーチャのみが地図タイル中に含まれ得、上位10%の大きいフィーチャより小さい他のフィーチャは含まれないであろう。それに加えて、又は、その代わりに、各画素で、上位10%の小さいフィーチャが地図タイルに含まれ、上位10%の小さいフィーチャより大きい他のフィーチャは含まれない。
実装形態においては、広域閾値は、如何なる所与のタイルにも含まれるであろう画素に対応する最小の実空間である。多角形の面積の広域的な統計を算出するために窓関数が用いられ得、対応する画素値は前記統計から算出され得る。次に、フィーチャは指定されたパーセンテージに基づいて除去され得る。例えば、下位10%の小さい画素数を占有するフィーチャは除外され得る。
画素解像度フィーチャ除外は、大きい河川又は水域のようなフィーチャを含み、より小さいものを無視するためには有益であり得る。この方法のためのコンフィギュレーション・データは、例えば、コンフィギュレーション・データ128のような、システム・コンフィギュレーションのパラメータであってもよい。電子地図データの各セット毎に所望のデータの視覚的表現を達成するために、これは電子地図データのセット毎に調整され得る。
それに加えて、又は、その代わりに、地図フィーチャを除外するべきかどうかを判断することは、値に基づくフィーチャ除外を使用して実行される。実装形態においては、値に基づくフィーチャ除外は、値が予め定義された範囲内に入るフィーチャを除外することを含む。それに加えて、又は、その代わりに、この範囲は、上述の広域データ・コンテキストから静的に算出された範囲であってもよい。
値に基づくフィーチャ除外は、フィーチャのサイズとは無関係に、フィーチャと関連付けられた値に基づいてフィーチャを含めるために有益であり得る。例えば、地図フィーチャと関連付けられた危険を示す地図のためには、値はフィーチャのリスク値に対応するものであり得る。例えば、「0」の値は低リスクを有するフィーチャに対応し、「100」の値は高リスクを有するフィーチャに対応する。値に基づくフィーチャ除外は、面積が小さい場合であっても「危険な」領域をエンド・ユーザに適切に伝えるために、それらのサイズとは無関係に、リスクの大きいフィーチャを強調するために用いられ得る。
5.3 フィーチャの合体
実装形態においては、元の地図タイルに基づいて簡略化された地図タイルを生成することは、複数の地図フィーチャの各地図フィーチャ毎に、その地図フィーチャを1つ又は複数の他の地図フィーチャに合体させるべきかどうかを判断することを含むことができる。地図フィーチャを1つ又は複数の他の地図フィーチャに合体させるべきかどうかを判断することは、例えば、そのフィーチャの形状、1つ又は複数の他の地図フィーチャの形状、そのフィーチャと同じ画素に対応する他のフィーチャの数、そのフィーチャと関連付けられた値等に基づいてもよい。
実装形態においては、2つ以上の地図フィーチャを合体させるべきかどうかを判断することは、画素解像度フィーチャ合体を用いて実行される。画素解像度フィーチャ合体は、フィーチャを画素空間へ変換し、同じ座標を占有する如何なるフィーチャも合体させることを含む。最大/最小のフィーチャを含むだけではなく、最終的な形が、その空間を占有しているフィーチャの数によって強化されるという点で、画素解像度フィーチャ合体はフィーチャ除外とは異なる。
幾つかの実装形態において、フィーチャ除外は、フィーチャ合体と連携して実行され得る。実装形態においては、フィーチャを合体又は除外するべきかどうかを判断することは、ユーザ入力、及び/又は、コンフィギュレーション・ファイルに基づく。それに加えて、又は、その代わりに、例えば、タイルがフィーチャの最大数のような予め定義された限度を超える場合、判断は入力データに基づいて動的に算出され得る。フィーチャ除外及びフィーチャ合体を独立に又は連携して実行するための柔軟性は、多くの修正又はユーザ入力無しに動的なデータセットをレンダリングする能力をエンド・ユーザに与える。
それに加えて、又は、その代わりに、2つ以上の地図フィーチャを合体させるべきかどうかを判断することは、値に基づくフィーチャ合体を用いて実行される。実装形態においては、値に基づくフィーチャ合体は、それらの値が同一である、又は、それらの値が予め定義された範囲内に入るフィーチャを合体することを含む。それに加えて、又は、その代わりに、この範囲は、前述の広域データ・コンテキストから静的に算出された範囲であってもよい。それに加えて、又は、その代わりに、範囲の閾値は、例えば、コンフィギュレーション・データ128に明示的に構成され得る。
例として、第1のフィーチャが値[2,4,4.5,4.25]と関連付けられ、第2のフィーチャが値[4.75,5,8,9]と関連付けられていると仮定する。閾値「1」が使われる場合、第1及び第2のフィーチャは合体され得、合体されたフィーチャは値[2,4,8,9]と関連付けられる。
値に基づくフィーチャ除外と同様に、値はフィーチャの特性に対応し得る。値は、地図フィーチャと関連付けられたメタデータで指定されてもよい。例えば、地図フィーチャと関連付けられた危険を示す地図に対しては、フィーチャ値は、洪水又は地震のような事件に対するリスク・レベル又は危険ゾーンに対応し得る。これらの値は、危険な断層線又はハリケーン・ゾーンを強調することのような状況のために有益であり得る。
5.4 点の簡略化
実装形態においては、元の地図タイルに基づいて簡略化された地図タイルを生成することは、地図フィーチャに対応する点の数を削減することを含むことができる。点の数を削減することは、地図フィーチャに対応する多角形の頂点の数を減らし、且つ/又は、より少ない点を使用して地図フィーチャを表現することを含み得る。
実装形態においては、より少ない点を使用して地図フィーチャを表現することは、複数の点或いは1つ又は複数の線或いは多角形よりもむしろ単一の点を使用する地図フィーチャを表現することを含む。それに加えて、又は、その代わりに、2つ以上の地図フィーチャが単一の点に合体され得る。ズームアウトされた解像度においては、合体されたデータを単一の点へ減少させることは、データセット中の点の数を削減しつつデータのテクスチャ及び全般的な雰囲気を維持するために有利であり得る。
実装形態においては、フィーチャの範囲が窓関数の閾値以下の数の画素を占有する場合、そのフィーチャは画素を占有している単一の点に縮小される。例えば、フィーチャの90%が5つ以上の画素を占有するが、除外されるべきフィーチャである下位10%のフィーチャのうちの1つのフィーチャが3つの画素を占有すると仮定する。このフィーチャは、最終画像における表現のための1つの画素と交換して含まれ得る。
6.フィーチャ値の操作
視覚的エレメントを修正することに加えて、変化を反映するためにフィーチャの値は動的に変えられるべきである。実装形態においては、このことは、デフォルト値を有するコンフィギュレーション・ファイルにおいて様々なズーム・レベルに対する戦略を定めることを通して達成される。例えば、解像度が高いときに、大きいフィーチャは同程度の値を有する多くの画素によって表示され得るので、幾つかの値は明示的に記憶される必要はない。これを実現する1つの方法は、画素を隣接する画素に関連付け、隣接する画素の値をリセット又はスキップすることである。そのために、地図タイル中のフィーチャのサイズがコンフィギュレーション・データに基づく一定の閾値を超えるときに、フィーチャ中の画素の幾つかの値は更新され得る。
実装形態においては、重なり合うフィーチャのために、値が重なり合う/合体された領域を表現するために選択される。この値は、値のセットのうちの最高値をとるか、この値のセットのうちの最低値をとるか、この値のセットの平均値をとるか、又は、最も繰り返されている値(すなわち、モード)をとることによって選択され得る。例えば、地理的位置が、異なるリスク・レベルと関連付けられた、異なる(重なり合う、又は、重なり無しの)地理的フィーチャを有し得る。場合によっては、その位置のための最大リスク・レベルを示すことが最も有益である。従って、地理的位置の範囲によっては、修正された地図タイル中の画素又は画素のクラスタについて、画素の又は画素のクラスタの全ての値の最大値が示され得る。
実装形態においては、加重オペレーションのために、同一時間に他のフィーチャに対して相対的なウェイトがフィーチャに割り当てられる。例えば、以下の値を有する4つのフィーチャがあると仮定する。A=1、B=25、C=100、D=100。フィーチャAがBに合体されることになっている場合、割り当てられるウェイトは「26」であり(1+25)、フィーチャAは算出された平均ウェイト「13」を有するであろう。このタイル中の他の値と比べて、これは下位50%に入るので、この値は低くウェイトされ(このタイル中の全ての値の平均である56.5に基づく値の23%)、「約10」の値としてレンダリングされ得る。
実装形態においては、インデックス付きオペレーション(indexed operation)のために、加重オペレーションと同様のフィーチャ値が算出され得るが、特定の領域の周辺の複数のタイルのウィンドウを与えられる。例えば、クワッドキーによって定義される隣接タイルのセット又は関心領域。
7.例示的なプロセスの概要
図2は、例示的なプログラマブルなアルゴリズム、又は、元の地図タイルに基づいて簡略化された地図タイルを生成するための方法を示す。
図2におけるステップは順序で示されているが、図2のステップは如何なる順序においても実行され得、図2に示される順序には限定されない。それに加えて、幾つかのステップは、任意であり得、複数回実行され得、且つ/又は、異なるコンポーネントによって実行され得る。本明細書に記載されるフロー・チャートの全てのステップ、オペレーション、及び、機能は、様々な実装形態の専用コンピュータ又は汎用コンピュータにおけるプログラミングを使用して実行されるオペレーションを、本開示が関係する当業者によって同様のコンピュータ・プログラム又はアルゴリズムについて互いに伝達するために用いられるレベルと同じレベルの詳細さで示すことを意図している。すなわち、本開示の各フロー・チャートは、記載されている機能をコンピュータが実行するようにプログラムするためのアルゴリズムのガイド、計画、又は、仕様である。
ステップ200において、サーバ・コンピュータは、例えば電子地図データ122のような複数の地図タイルを含む電子地図データを受信するか又は読み出す。電子地図データは、例えばマッピング・アプリケーション112のような簡略化された電子地図データを生成するためのアプリケーション、プログラム、スクリプト、又は、他のプログラム命令を実行することの一部として受信され又は読み出され得る。例えば、ユーザは、簡略化された電子地図データを生成するために、マッピング・アプリケーション112のユーザ・インタフェースを介して電子地図データ122を目標として指定し得る。それに加えて、又は、その代わりに、電子地図データは、データ記憶システム120に電子地図データをインポートし保存するサーバ・コンピュータの一部として受信され又は読み出され得る。それに加えて、又は、その代わりに、電子地図データは、例えばクライアント地図アプリケーション104のようなクライアントの地図アプリケーションから電子地図データを求める要求をサーバ・コンピュータが受信することに応答して受信され又は読み出され得る。
地図タイルが受信された後、複数の地図タイルの各地図タイルについて、各地図タイルのための対応する簡略化された地図タイルを生成するためにステップ202~210が実行される。
ステップ202では、サーバ・コンピュータは、地図タイル中の複数の地図フィーチャのうちの1つ又は複数の地図フィーチャを除外するべきかどうかを判断する。実装形態においては、地図フィーチャを除外するべきかどうかを判断することは、複数のフィーチャの各フィーチャ毎に、そのフィーチャの画素解像度を決定し、その画素解像度が特定の閾値を超えるかどうかを判断することを含む。それに加えて、又は、その代わりに、地図フィーチャを除外するべきかどうかを判断することは、複数のフィーチャの各フィーチャ毎に、そのフィーチャに関連付けられた値を決定すること、及び、その値が特定の値域内に入るかどうか決定することを含み得る。
図4は、例示的な地図タイル400を示す。地図タイル400は、フィーチャ404及び402などの複数のフィーチャを含む。各フィーチャ404はフィーチャ値「30」と関連付けられ、フィーチャ402はフィーチャ値「5」と関連付けられている。それに加えて、フィーチャ404は、フィーチャ402より小さいサイズである。
画素解像度フィーチャ除外が地図タイル400に適用され、フィーチャ404の画素解像度は閾値未満であるが、フィーチャ402の画素解像度は閾値を超えると仮定する。図示の例では、フィーチャ404の各々は簡略化されたタイル410から除外されたが、フィーチャ402は簡略化されたタイル410に含まれる。値に基づくフィーチャ除外がタイル400に適用される場合、閾値によっては、フィーチャ402の値がフィーチャ404の値より小さいので、フィーチャ402が除外されるであろうが、フィーチャ404は除外されないであろう。
図5は、例示的な地図タイル500を示す。地図タイル500はフィーチャ502及びフィーチャ504を含む。フィーチャ502はフィーチャ値「100」と関連付けられ、フィーチャ504はフィーチャ値「20」と関連付けられている。しかしながら、フィーチャ502は、フィーチャ504より小さい。
値に基づくフィーチャ除外が、フィーチャ閾値「80」を有するタイル500に適用されると仮定する。そのフィーチャ値「100」が閾値を超えるので、フィーチャ502は除外されないであろうが、そのフィーチャ値「20」がフィーチャ閾値未満であるので、フィーチャ504は除外されるであろう。図示の例では、簡略化された地図タイル510は、フィーチャ502を含むが、フィーチャ504を含まない。画素解像度フィーチャ除外がタイル500に適用される場合、閾値サイズによっては、フィーチャ502がフィーチャ504より非常に小さいので、フィーチャ502が除外されるであろうが、フィーチャ504は含まれるであろう。
ステップ204では、サーバ・コンピュータは、地図タイルの複数の地図フィーチャのうちの2つ以上の地図フィーチャを合体させるべきかどうかを判断する。実装形態においては、地図フィーチャを合体させるべきかどうかを判断することが、複数の地図フィーチャの各地図フィーチャ毎に、その地図フィーチャに対応する1つ又は複数の画素を決定すること、及び、同じ画素に対応する、又は、重なり合う画素のセットに対応する地図フィーチャ同士を合体することを含む。それに加えて、又は、その代わりに、地図フィーチャを合体させるべきかどうかを判断することが、複数のフィーチャの各複数のフィーチャ毎に、そのフィーチャと関連付けられた1つ又は複数の値を決定すること、及び、それらの関連付けられた値が同一であるか、又は、それらの関連付けられた値が互いに特定の閾値内にある、地図フィーチャを合体することを含む。
ステップ206では、サーバ・コンピュータは、地図タイル中の複数の地図フィーチャのうちの1つ又は複数の地図フィーチャに対応する点の数を削減するべきかどうかを判断する。実装形態においては、地図フィーチャに対応する点の数を削減するべきかどうかを判断することは、その地図フィーチャに対応する多角形の頂点の数を削減するべきかどうかを判断することを含む。それに加えて、又は、その代わりに、地図フィーチャに対応する点の数を削減するべきかどうかを判断することは、フルセットのデータよりもむしろ単一の点を用いてその地図フィーチャを表現するべきかどうかを判断することを含む。
ステップ208では、簡略化された地図フィーチャのフィーチャ値は、変化を反映するように調整される。フィーチャ値を調整することは、除外された地図フィーチャと関連付けられた値及び他のメタデータを削除することを含むことができる。それに加えて、フィーチャ値を調整することは、合体されたフィーチャのための、又は、合体されたフィーチャの部分のためのフィーチャ値を組み合わせることを含むことができる。
図6は、例示的な地図タイル600を示す。地図タイル600は、複数のフィーチャ602を含む。サーバ・コンピュータがフィーチャ602が合体されるべきと判断すると仮定する。簡略化された地図タイル610は、複数のフィーチャ602を合体させることによって生成されたフィーチャ604を含む。図示の例では、フィーチャ604のためのフィーチャ値は、フィーチャ602のフィーチャ値を平均することによって生成する。他の実装形態では、フィーチャ604のためのフィーチャ値は、最高値(例えば、「100」)又は最低値(例えば、「70」)をとることによって生成し得る。
ステップ210では、修正された地図データは、元の地図タイルに関連付けられた簡略化された地図タイルとして記憶される。修正された地図データは、除外されたフィーチャと関連付けられた電子地図データを含まない。修正された地図データは、例えば、複合ジオメトリ・データ、及び、調整されたフィーチャ値のような合体されたフィーチャと関連付けられたデータを含むことができる。それに加えて、又は、その代わりに、修正された地図データは画像地図タイルとしてレンダリングされ得、レンダリングされた画像は元の地図タイルに関連付けて記憶され得る。
ステップ212では、特定の地図タイルを求める要求が受信される。この要求は、クライアントのコンピューティング装置上のクライアントの地図アプリケーションから、又は、レンダリングされた地図をクライアントのコンピューティング装置に提供するサーバ・コンピュータからであり得る。例えば、サーバ・コンピュータ110は、クライアントのコンピューティング装置102上のクライアント地図アプリケーション104から、地図タイルを求める要求を受信し得る。
ステップ214では、特定の地図タイルに対応する簡略化された地図タイルが受信される。例えば、要求は、電子地図データ122の特定の地図タイルを求めるものであってもよい。対応する簡略化された地図タイルは、簡略化された電子地図データ124から読み出され得る。それに加えて、又は、その代わりに、レンダリングされた地図タイルが簡略化された地図タイルに基づいて生成され得る、又は、先にレンダリングされた地図タイルが画像地図タイル126から読み出され得る。
ステップ216では、簡略化された地図タイルは、特定の地図タイルを要求したクライアントのコンピューティング装置又はサーバ・コンピュータに送信される。それに加えて、又は、その代わりに、簡略化された地図タイルに対応するレンダリングされた地図タイルは、クライアントのコンピューティング装置又はサーバ・コンピュータに送信され得る。
8.ハードウェアの概要
1つの実装形態によれば、本明細書に記載される技術は、少なくとも1台のコンピューティング装置によって実施される。これらの技術は、少なくとも1台のサーバ・コンピュータの組合せ、及び/又は、パケット・データ・ネットワークなどのネットワークを用いて接続される他のコンピューティング装置を用いて全体的に或いは部分的に実施され得る。コンピューティング装置は、それらの技術を実行するためにハードワイヤードされたものであってもよく、或いは、少なくとも1つの特定用途向け集積回路(ASIC)のようなデジタル電子装置又はそれらの技術を実行するように永続的にプログラムされたフィールド・プログラマブル・ゲート・アレイ(FPGA)を含むことができ、或いは、ファームウェア、メモリ、他の記憶装置、又は、これらの組合せ中のプログラム命令に従ってそれらの技術を実行するようにプログラムされた少なくとも1つの汎用ハードウェア・プロセッサを含むことができる。この種のコンピューティング装置は、カスタム・ハードワイヤード・ロジック、ASIC、又は、FPGAをカスタムメイドのプログラミングと組み合わせて、記載されている技術を達成することもできる。コンピューティング装置は、サーバ・コンピュータ、ワークステーション、パーソナル・コンピュータ、ポータブル・コンピュータ・システム、携帯用装置、モバイル・コンピューティング装置、ウェアラブル装置、身体装着型又は生体植え込み可能装置、多機能電話、スマート家電、インターネットワーキング装置、ロボット又は無人の地上車両又は航空機のような自律又は半自律の装置、ハードワイヤード・ロジック及び/又はプログラム・ロジックを組み込んで記載されている技術を実施する他の任意の電子装置、データセンタ中の1つ又は複数の仮想コンピューティング・マシン又はインスタンス、並びに/或いは、サーバ・コンピュータ及び/又はパーソナル・コンピュータのネットワークであってもよい。
図3は、実装形態が実装され得る例示的なコンピュータ・システムを示すブロック図である。図3の例において、ハードウェア、ソフトウェア、又は、ハードウェア及びソフトウェアの組合せにおいて開示された技術を実施するためのコンピュータ・システム300及び命令は、コンピュータアーキテクチャ及びコンピュータ・システムの実装について伝達するために本開示が関係する技術分野の当業者によって通常用いられるレベルと同じレベルの詳細さで、例えば、四角形及び円として、模式的に示されている。
コンピュータ・システム300は、電子信号経路を介してコンピュータ・システム300のコンポーネント間で情報及び/又は命令を通信するための、バス、及び/又は、他の通信メカニズムを含み得る入出力(I/O)サブシステム302を含む。入出力サブシステム302は、I/Oコントローラ、メモリ・コントローラ、及び、少なくとも1つの入出力ポートを含むことができる。電子信号経路は、図面において模式的に、例えば、線、一方向の矢印、又は双方向の矢印として示される。
情報及び命令を処理するために少なくとも1台のハードウェア・プロセッサ304が入出力サブシステム302に接続する。ハードウェア・プロセッサ304は、例えば、組込みシステム又は画像処理装置(GPU)又はデジタル・シグナル・プロセッサ又はARMプロセッサなどの、汎用のマイクロプロセッサ若しくはマイクロコントローラ、及び/又は、特殊目的のマイクロプロセッサを含むことができる。プロセッサ304は、統合演算論理ユニット(ALU)を含み得、又は、別のALUに接続し得る。
コンピュータ・システム300は、データ及びプロセッサ304によって実行されるべき命令を電子的且つデジタルで記憶するための入出力サブシステム302に接続する、メインメモリなどのメモリ306の1つ又は複数のユニットを含む。メモリ306は、様々な形のランダムアクセス・メモリ(RAM)又は他の動的な記憶装置のような揮発性メモリを含むことができる。メモリ306は、プロセッサ304によって実行されるべき命令の実行中に一時的な変数又は他の中間情報を記憶するために用いられ得る。この種の命令は、プロセッサ304にアクセス可能な非一時的コンピュータ可読記憶媒体に保存されるときに、コンピュータ・システム300を、命令で指定されているオペレーションを実行するようにカスタマイズされた特殊目的マシンにすることができる。
コンピュータ・システム300は、プロセッサ304用の情報及び命令を記憶するための、入出力サブシステム302に接続された読取り専用メモリ(ROM)308又は他の静的記憶装置などの、不揮発性メモリを更に含む。ROM308は、消去可能PROM(EPROM)又は電気的消去可能PROM(EEPROM)のような様々な形のプログラマブルROM(PROM)を含むことができる。永続的な記憶装置310のユニットは、例えば、FLASH(登録商標)メモリ、又は、ソリッドステート記憶装置、或いは、磁気ディスク、又は、CD-ROM若しくはDVD-ROMなどの光ディスクのような、様々な形の不揮発性RAM(NVRAM)を含み得、情報及び命令を記憶するための入出力サブシステム302に接続され得る。記憶装置310は、命令及びデータを記憶するために用いられ得る非一時的コンピュータ可読媒体の例であり、これらの命令及びデータがプロセッサ304によって実行されるとき、本明細書における技術を実施するための、コンピュータで実施される方法を実行させる。
メモリ306、ROM308、又は、記憶装置310の命令は、モジュール、メソッド、オブジェクト、関数、ルーチン、又は、コールとして構成される1つ又は複数の命令セットを含むことができる。これらの命令は、1つ又は複数のコンピュータ・プログラム、オペレーティング・システム・サービス、又は、モバイル・アプリを含むアプリケーション・プログラムとして構成され得る。これらの命令は、オペレーティング・システム、及び/又はシステム・ソフトウェアと、マルチメディア、プログラミング又は他の機能をサポートする1つ又は複数のライブラリと、TCP/IP、HTTP、又は、他の通信プロトコルを実装するデータ・プロトコル命令又はスタックと、HTML、XML、JPEG、MPEG、又は、PNGを使用して記述されるファイルを構文解析又は翻訳するファイル・フォーマット処理命令と、グラフィカル・ユーザ・インタフェース(GUI)、コマンドライン・インタフェース、又は、テキスト・ユーザ・インタフェースに対してコマンドを翻訳又は解釈するユーザ・インタフェース命令と、オフィス・スイート、インターネット・アクセス・アプリケーション、設計及び製造アプリケーション、グラフィック・アプリケーション、オーディオ・アプリケーション、ソフトウェア・エンジニアリング・アプリケーション、教育アプリケーション、ゲーム、又は、様々なアプリケーションのようなアプリケーション・ソフトウェアとを含むことができる。命令は、ウェブ・サーバ、ウェブ・アプリケーション・サーバ、又は、ウェブ・クライアントを実装し得る。命令は、プレゼンテーション層、アプリケーション層、及び、データ記憶層、例えば、構造化問合せ言語(SQL)を用いた若しくはSQLを用いないリレーショナル・データベース・システム、オブジェクト・ストア、グラフ・データベース、単層ファイル・システム、又は、他のデータ記憶装置として編成され得る。
コンピュータ・システム300は、少なくとも1つの出力装置312に入出力サブシステム302を介して接続され得る。1つの実装形態においては、出力装置312は、デジタル・コンピュータ・ディスプレイである。様々な実装形態において用いられ得るディスプレイの例としては、タッチ・スクリーン・ディスプレイ、又は、発光ダイオード(LED)ディスプレイ、又は、液晶ディスプレイ(LCD)、又は、電子新聞ディスプレイを含む。コンピュータ・システム300は、ディスプレイ装置の代わりに、又は、ディスプレイ装置に加えて、他の種類の出力装置312を含むことができる。他の出力装置312の例は、プリンタ、チケット・プリンタ、プロッタ、プロジェクタ、サウンド・カード又はビデオ・カード、スピーカ、ブザー、又は、圧電デバイス、或いは、他の可聴装置、ランプ、又は、LED、或いは、LCDインジケータ、触覚装置、アクチュエータ、又は、サーボを含む。
少なくとも1つの入力装置314は、信号、データ、コマンド選択、又は、ジェスチャをプロセッサ304に伝達するために入出力サブシステム302に接続される。入力装置314の例は、タッチ・スクリーン、マイクロホン、静止及びビデオ・デジタル・カメラ、英数字及び他のキー、キーパッド、キーボード、グラフィック・タブレット、イメージ・スキャナ、ジョイスティック、クロック、スイッチ、ボタン、ダイヤル、スライド、並びに/又は、力覚センサ、運動センサ、熱感知器、アクセロメータ、ジャイロスコープ、及び、慣性測定ユニット(IMU)センサなどの様々なタイプのセンサ、並びに/又は、様々なタイプのトランシーバ(例えば、セルラ又はWi-Fiのような無線、ラジオ周波数(RF)若しくは赤外線(IR)トランシーバ、及び、全世界方位システム(GPS)トランシーバ)を含む。
他のタイプの入力装置は制御装置316である。制御装置316は、入力機能の代わりに、又は、入力機能に加えて、ディスプレイ・スクリーン上のグラフィカル・インタフェースにおけるナビゲーションのようなカーソル制御又は他の自動制御機能を実行し得る。制御装置316は、プロセッサ304に対して方向情報及びコマンド選択を伝達するための、及び、ディスプレイ312上の制御カーソル移動のための、タッチパッド、マウス、トラックボール、又は、カーソル方向キーであってもよい。入力装置は、2本の軸、すなわち第1の軸(例えば、x)及び第2の軸(例えば、y)において少なくとも2つの自由度を有し得、装置が平面内の位置を特定することを可能にする。他のタイプの入力装置は、ジョイスティック、ワンド(wand)、コンソール、ステアリング・ホイール、ペダル、ギアシフト機構、又は、他のタイプの制御装置のような、有線、無線、又は、光学的制御装置である。入力装置314は、ビデオ・カメラ及び深さセンサなどの複数の異なる入力装置の組合せを含むことができる。
他の実装形態においては、コンピュータ・システム300は、出力装置312、入力装置314、及び、制御装置316のうちの1つ又は複数が省略される、モノのインターネット(IoT)装置を含むことができる。又は、このような実装形態において、入力装置314は、1つ又は複数のカメラ、運動検出器、温度計、マイクロホン、地震検出装置、他のセンサ又は検出器、測定装置又はエンコーダを含むことができ、出力装置312は、シングル・ラインLED又は液晶ディスプレイ、1つ又は複数のインジケータ、表示パネル、メータ、バルブ、ソレノイド、アクチュエータ、或いは、サーボのような特殊目的ディスプレイを含むことができる。
コンピュータ・システム300がモバイル・コンピューティング装置であるときに、入力装置314は、複数のGPS衛星に対する三角測量をし得るGPSモジュールに結合されたグローバル・ポジショニング・システム(GPS)レシーバを含み、コンピュータ・システム300の地球物理学的位置のための緯度-経度値のような地理的位置又は位置データを決定し生成することができる。出力装置312は、位置レポート・パケット、通知、パルス又はハートビート信号、或いは、(単独で又は他の特定用途向けデータと結合して、コンピュータ・システム300の位置を特定し、ホスト324又はサーバ330の方へ向けられた)他の繰り返されるデータ伝達を生成するためのハードウェア、ソフトウェア、ファームウェア、及び、インタフェースを含むことができる。
コンピュータ・システム300は、それらがロードされ、コンピュータ・システムと組み合わせて使用又は実行されるとき、特殊目的マシンとして動作するようにコンピュータ・システムを動作させるか又はコンピュータ・システムをプログラムする、カスタマイズされたハードワイヤード・ロジック、少なくとも1つのASIC又はFPGA、ファームウェア、及び/又は、プログラム命令又はロジックを用いて本明細書に記載される技術を実施し得る。1つの実装形態によれば、本明細書における技術は、メインメモリ306に含まれる少なくとも1つの命令の少なくとも1つのシーケンスを実行するプロセッサ304に応答して、コンピュータ・システム300によって実行される。このような命令は、記憶装置310などの他の記憶媒体から、メインメモリ306に読み込まれ得る。メインメモリ306に記憶される命令のシーケンスの実行は、プロセッサ304に本明細書に記載されるプロセス・ステップを実行させる。他の代替の実装形態において、ハードワイヤード回路が、ソフトウェア命令の代わりに、又は、それと組み合わせて用いられ得る。
本明細書中で使用する「記憶媒体」という用語は、データ、及び/又は、特定の方法でマシンを動作させる命令を記憶する任意の非一時的媒体を意味する。このような記憶媒体は、不揮発性媒体及び/又は揮発性媒体を含むことができる。不揮発性媒体は、例えば、記憶装置310などの光学又は磁気ディスクを含む。揮発性媒体は、メモリ306などのダイナミック・メモリを含む。記憶媒体の一般的な形態は、例えば、ハード・ディスク、固体ドライブ、フラッシュ・ドライブ、磁気データ記憶媒体、任意の光学的又は物理的データ記憶媒体、メモリ・チップ等を含む。
記憶媒体は、伝送媒体とは異なるが、伝送媒体と連動して使われ得る。伝送媒体は、記憶媒体の間で情報を転送することに関与する。例えば、伝送媒体は、同軸ケーブル、銅線、及び、光ファイバを含み、入出力サブシステム302のバスを含むワイヤも含む。伝送媒体は、音響、又は、例えば、電波及び赤外のデータ通信の間に生成されるような光波という形をとることもできる。
媒体の様々な形は、実行するために少なくとも1つの命令の少なくとも1つのシーケンスをプロセッサ304へ伝達することに関係し得る。例えば、命令は、最初に遠隔のコンピュータの磁気ディスク又はソリッド・ステート・ドライブに伝達され得る。遠隔のコンピュータは、命令をそのダイナミック・メモリへロードすることができ、モデムを用いて光ファイバ又は同軸ケーブル又は電話線路のような通信リンクを介して命令を送信し得る。コンピュータ・システム300に対してローカルなモデム又はルーターは、通信リンク上のデータを受信し、コンピュータ・システム300によって読取り可能なフォーマットにデータを変換することができる。例えば、無線周波アンテナ又は赤外線検出器のようなレシーバは無線又は光学信号において運ばれたデータを受信することができ、適切な回路は、データをバスに配置するような入出力サブシステム302にデータを提供し得る。入出力サブシステム302はデータをメモリ306へ伝達し、そこから、プロセッサ304は命令を読み出して実行する。メモリ306によって受信された命令は、プロセッサ304によって、任意選択で、実行の前又は後に記憶装置310に記憶され得る。
コンピュータ・システム300は、バス302に接続された通信インタフェース318も含む。通信インタフェース318は、ネットワーク322又はインターネット上の公共若しくは私的なクラウドなどの、少なくとも1つの通信ネットワークに直接又は間接的に接続しているネットワーク・リンク320への双方向データ通信接続を提供する。例えば、通信インタフェース318は、イーサネット・ケーブル又は任意の種類の金属ケーブル又は光ファイバ線路又は電話線路などの、対応する種類の通信回線にデータ通信接続を提供するイーサネット・ネットワーク・インタフェース、総合サービス・デジタル・ネットワーク(ISDN)カード、ケーブル・モデム、衛星モデム、又は、モデムであってもよい。ネットワーク322は、広く、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、構内ネットワーク、インターネットワーク又は任意のそれらの組合せを示す。通信インタフェース318は、データ通信接続を互換性を有するLANに提供するLANカード、或いは、セルラ無線電話機無線ネットワーク規格に従ってセルラ・データを送信又は受信するために配線されるセルラ無線電話機インタフェース、或いは、衛星無線ネットワーク規格に従ってデジタル・データを送信又は受信するために配線される衛星ラジオ・インタフェースを含むことができる。そのような実装形態の何れにおいても、通信インタフェース318は、様々なタイプの情報を表わすデジタル・データ・ストリームを運ぶ信号経路を介して電気、電磁、又は、光学信号を送受信する。
ネットワーク・リンク320は、典型的には、直接、又は、少なくとも1つのネットワークを介して、電気、電磁、又は、光学データ通信を、例えば、衛星、セルラ、Wi-Fi、又は、BLUETOOTH(登録商標)技術を使用して、他のデータ装置に提供する。例えば、ネットワーク・リンク320は、ホスト・コンピュータ324にネットワーク322を介して接続を提供し得る。
更に、ネットワーク・リンク320は、ネットワーク322を介した接続を、或いは、インターネットワーキング装置を介した、及び/又は、インターネット・サービス・プロバイダ(ISP)326によって操作されるコンピュータを介した、他のコンピューティング装置への接続を提供し得る。ISP326は、インターネット328として示される世界的なパケット・データ通信網を介して、データ通信サービスを提供する。サーバ・コンピュータ330は、インターネット328に接続され得る。サーバ330は、広く、任意のコンピュータ、データセンタ、ハイパーバイザ又はコンピュータの有無にかかわらない仮想マシン又は仮想コンピューティング・インスタンス、或いは、DOCKER又はKUBERNETESのようなコンテナ化されたプログラム・システムを実行するコンピュータを示す。サーバ330は、複数のコンピュータ又はインスタンスを用いて実装され、ウェブ・サービス要求、HTTPペイロードにパラメータを有するユニフォーム・リソース・ロケータ(URL)ストリング、APIコール、アプリ・サービス・コール、又は、他のサービス・コールを送信することによってアクセスされ利用される電子デジタル・サービスを示すことができる。コンピュータ・システム300及びサーバ330は、タスクを実行するため又はアプリケーション若しくはサービスを実行するために協働する、他の複数のコンピュータ、処理クラスタ、サーバ・ファーム、又は、他のコンピュータの編成を含む分散型コンピューティング・システムのエレメントを形成し得る。サーバ330は、モジュール、メソッド、オブジェクト、関数、ルーチン、又は、コールとして構成される1つ又は複数の命令のセットを含むことができる。命令は、1つ又は複数のコンピュータ・プログラム、オペレーティング・システム・サービス、又は、モバイル・アプリを含むアプリケーション・プログラムとして構成され得る。これらの命令は、オペレーティング・システム、及び/又は、システム・ソフトウェアと、マルチメディア、プログラミング又は他の機能をサポートする1つ又は複数のライブラリと、TCP/IP、HTTP又は他の通信プロトコルを実装するデータ・プロトコル命令又はスタックと、HTML、XML、JPEG、MPEG、又は、PNGを使用して記述されるファイルを構文解析又は翻訳するファイル・フォーマット処理命令と、グラフィカル・ユーザ・インタフェース(GUI)、コマンドライン・インタフェース、又は、テキスト・ユーザ・インタフェースに対してコマンドを翻訳又は解釈するユーザ・インタフェース命令と、オフィス・スイート、インターネット・アクセス・アプリケーション、設計及び製造アプリケーション、グラフィック・アプリケーション、オーディオ・アプリケーション、ソフトウェア・エンジニアリング・アプリケーション、教育アプリケーション、ゲーム、又は、様々なアプリケーションのようなアプリケーション・ソフトウェアを含むことができる。サーバ330は、プレゼンテーション層、アプリケーション層、及び、データ記憶層、例えば、構造化問合せ言語(SQL)を用いた、若しくは、SQLを用いない、リレーショナル・データベース・システム、オブジェクト・ストア、グラフ・データベース、単層ファイル・システム、又は、他のデータ記憶装置のホストとなるウェブ・アプリケーション・サーバを含むことができる。
コンピュータ・システム300は、ネットワーク、ネットワーク・リンク320、及び、通信インタフェース318を介してメッセージ及び受信データ及びプログラム・コードを含む命令を送信し得る。インターネットの例では、サーバ330がインターネット328、ISP326、ローカル・ネットワーク322、及び、通信インタフェース318を介してアプリケーション・プログラムのための要求されたコードを送信し得る。受信されたコードは、受信時にプロセッサ304によって実行され、且つ/又は、記憶装置310、若しくは後の実行のために他の不揮発性記憶装置に保存され得る。
この項目にて記載したような命令の実行によって、プログラム・コード及びその現在のアクティビティからなる実行中のコンピュータ・プログラムのインスタンスの形でプロセスを実行し得る。オペレーティング・システム(OS)によっては、プロセスは、並行して命令を実行する実行のマルチ・スレッドから構成され得る。この文脈において、コンピュータ・プログラムは命令の受動的なコレクションであるが、プロセスはそれらの命令の実際の実行であり得る。幾つかのプロセスは、同じプログラムに関連付けられ得る。例えば、同じプログラムの幾つかのインスタンスを開始することは、しばしば、1つ又は複数のプロセスが実行されていることを意味する。マルチタスキングは、複数のプロセスがプロセッサ304を共有し得るように実行され得る。各プロセッサ304又はプロセッサの各コアが一度に単一のタスクを実行する間は、コンピュータ・システム300は、各プロセッサが各タスクの終了を待つ必要なく、実行されているタスクの間で切り替えることを可能にするマルチタスキングを実装するようにプログラムされ得る。実装形態においては、タスクが入出力操作を実行するとき、タスクが切り替え可能であることを示すとき、又は、ハードウェア割込みに際して、切り替えが実行され得る。コンテキスト・スイッチを迅速に実行することによって対話型ユーザ・アプリケーションに対する高速応答を可能にするためにタイム・シェアリングが実施され、複数のプロセスの並列実行という状況を同時に提供することができる。実装形態においては、セキュリティ及び信頼性のために、オペレーティング・システムは、独立したプロセスの間の直接の通信を防止し、厳しく介在され制御されたプロセス間通信機能性を提供することができる。
以上の明細書において、本発明の実装形態は、実装形態毎に変わり得る多数の具体的な詳細事項を参照しつつ記載された。従って、明細書及び図面は、限定的な意味ではなく、例示的な意味で考慮されるべきである。本発明の範囲を唯一且つ排他的に示すもの、及び、出願人によって本発明の範囲であると意図されるものは、本出願から出される請求項の、後に続き得る何らかの訂正は含むが、これらの請求項が出された明確な形における、文字通りの且つ等価な特許請求の範囲である。

Claims (20)

  1. 表示のためのデジタル地図を簡略化するためのコンピュータ・システムであって、
    1つ又は複数のメモリと、
    前記1つ又は複数のメモリに接続される1つ又は複数のプロセッサと
    を具備し、
    前記1つ又は複数のプロセッサは、
    地理的領域のためのデジタル地図を受信することであって、前記デジタル地図は、前記地理的領域の複数のサブ領域と関連付けられた複数の生の地図タイルに編成されている、受信することと、
    前記1つ又は複数のメモリに記憶されたコンフィギュレーション・データを読み出すことであって、前記コンフィギュレーション・データは、前記デジタル地図を簡略化するための、人間にとっての可視性に関する、読み出すことと、
    前記複数の生の地図タイルの各々から1つ又は複数のフィーチャを識別することであって、
    前記複数の生の地図タイルの各々の前記1つ又は複数のフィーチャの各々のフィーチャは、前記生の地図タイル内の画素のクラスタに対応し、前記画素のクラスタの各々に対する値を有し、
    少なくとも2つのフィーチャは、前記複数の生の地図タイルのうちの1つの生の地図タイル内の共通の画素に対応する、識別することと、
    前記複数の生の地図タイルにおける少なくとも1つのフィーチャを除去するか又は合体させることによって、或いは、前記複数の生の地図タイル内のフィーチャの範囲内で画素の値を更新することによって、或いは、前記複数の生の地図タイル内のフィーチャのサイズを縮小することによって、前記複数の生の地図タイルに対して1つの修正されたデジタル地図を形成する複数の修正された地図タイルを生成することであって、前記複数の修正された地図タイルの全体のサイズは、前記複数の生の地図タイルの全体のサイズより小さく、
    隣接する生の地図タイルのリスト全体に亘って生の地図タイル中のフィーチャの形状の頂点の総数を計算することと、
    前記コンフィギュレーション・データからの特定の量だけ前記総数より大きい数の頂点を、隣接する生の地図タイルのリストの特定の生の地図タイル内のフィーチャの形状に有する、前記特定の生の地図タイルを選択することと、
    前記特定の生の地図タイル内の前記フィーチャの前記形状の頂点の数を削減することによって、前記特定の生の地図タイルに対する特定の修正された地図タイルを生成することと
    を含む、生成することと、
    前記複数の修正された地図タイルの各々に対して、前記修正された地図タイル、及び、前記複数の生の地図タイルのうちの対応する生の地図タイルを示す情報を前記1つ又は複数のメモリに記憶することと
    を実行するように構成される、コンピュータ・システム。
  2. 前記1つ又は複数のプロセッサは、
    前記複数の生の地図タイルのうちの特定の生の地図タイルを求める要求を受信することと、
    前記1つ又は複数のメモリから、前記複数の修正された地図タイルのうちの、前記特定の生の地図タイルに対応する特定の修正された地図タイルを読み出すことと、
    前記要求に応答して前記特定の修正された地図タイルをディスプレイ装置に送信することと
    を更に実行するように構成される、請求項1に記載のコンピュータ・システム。
  3. 前記ディスプレイ装置を更に含む、請求項2に記載のコンピュータ・システム。
  4. 前記コンフィギュレーション・データは、前記地理的領域のデジタル地図を見るための複数のズーム・レベル用のデータを含み、
    前記デジタル地図は前記複数のズーム・レベルのうちの1つのズーム・レベルに対応する、請求項1に記載のコンピュータ・システム。
  5. 前記1つ又は複数のプロセッサは、前記複数のズーム・レベルのうちの特定のズーム・レベルの選択を更に受けるように構成され、
    前記コンフィギュレーション・データは、選択された連続するズーム・レベルに対応する修正されたデジタル地図がディスプレイ装置に送信されるときに、デジタル地図の簡略化の動的制御を可能にするスムージング機能を含む、請求項4に記載のコンピュータ・システム。
  6. 前記生成することは、
    前記複数の生の地図タイルのうちの特定の生の地図タイルのための画素解像度が前記コンフィギュレーション・データからの第1の閾値未満であると判断することと、
    前記特定の生の地図タイルが、前記コンフィギュレーション・データからの第2の閾値より大きい特定の数のフィーチャを有すると判断することと、
    前記特定の数のフィーチャのうちの1つのフィーチャを除去することによって前記特定の生の地図タイルに対する特定の修正された地図タイルを生成することと
    を含む、請求項1に記載のコンピュータ・システム。
  7. 前記生成することは、
    前記複数の生の地図タイルのうちの特定の生の地図タイルのための画素解像度が前記コンフィギュレーション・データからの第1の閾値未満を超えると判断することと、
    前記特定の生の地図タイルが、前記コンフィギュレーション・データからの第2の閾値より大きいフィーチャを含む、特定の数のフィーチャを有すると判断することと、
    前記フィーチャの画素の少なくとも1つの値を更新することによって前記特定の生の地図タイルに対する特定の修正された地図タイルを生成することと
    を含む、請求項1に記載のコンピュータ・システム。
  8. 前記生成することは、前記複数の生の地図タイルのうちの複数の生の地図タイルのセット内のフィーチャ中の画素の全ての値の最大値を、前記複数の生の地図タイルのセット内の前記フィーチャの少なくとも1つの画素に割り当てることによって、前記複数の生の地図タイルのセットに対して特定の修正された地図タイルを生成することであって、前記少なくとも1つの画素はそれぞれ、既に前記最大値を値として有していない、生成することを含む、請求項1に記載のコンピュータ・システム。
  9. 前記生成することは、1つ又は複数の共通の画素に対応する前記複数の生の地図タイルのうちの特定の生の地図タイルに関連付けられた前記1つ又は複数のフィーチャのうちの特定のフィーチャの画素の全ての値の最大値を、前記特定のフィーチャの少なくとも1つの前記1つ又は複数の共通の画素の少なくとも1つの画素に割り当てることによって、前記特定の生の地図タイルに対して特定の修正された地図タイルを生成することであって、前記少なくとも1つの画素はそれぞれ、既に前記最大値を値として有していない、生成することを含む、請求項1に記載のコンピュータ・システム。
  10. 前記デジタル地図内のフィーチャの画素の各値は、イベントのリストの特定のイベントが発生するという危険の量を示す、請求項1に記載のコンピュータ・システム。
  11. 前記複数の生の地図タイルのうちの特定の生の地図タイルの画素解像度は、前記地理的領域内の前記特定の生の地図タイルに関連付けられた前記サブ領域の位置に依存する、請求項1に記載のコンピュータ・システム。
  12. 実行されるときに、1つ又は複数のプロセッサにデジタル地図を簡略化する方法を実行させる命令を記憶する、1つ又は複数の非一時的コンピュータ可読記憶媒体であって、
    地理的領域のためのデジタル地図を1つ又は複数のプロセッサによって受信することであって、前記デジタル地図は、前記地理的領域の複数のサブ領域と関連付けられた複数の生の地図タイルに編成されている、受信することと、
    1つ又は複数のメモリに記憶されたコンフィギュレーション・データを前記1つ又は複数のプロセッサによって読み出すことであって、前記コンフィギュレーション・データは、前記デジタル地図を簡略化するための、人間にとっての可視性に関する、読み出すことと、
    前記複数の生の地図タイルの各々から1つ又は複数のフィーチャを識別することであって、
    前記複数の生の地図タイルの各々の前記1つ又は複数のフィーチャの各フィーチャは、前記生の地図タイル内の画素のクラスタに対応し、前記画素のクラスタの各々に対する値を有し、
    少なくとも2つのフィーチャは、前記複数の生の地図タイルのうちの1つの生の地図タイル内の共通の画素に対応する、識別することと、
    前記複数の生の地図タイルにおける少なくとも1つのフィーチャを除去するか又は合体させることによって、或いは、前記複数の生の地図タイル内のフィーチャの範囲内で画素の値を更新することによって、或いは、前記複数の生の地図タイル内のフィーチャのサイズを縮小することによって、前記複数の生の地図タイルに対して1つの修正されたデジタル地図を形成する複数の修正された地図タイルを生成することであって、前記複数の修正された地図タイルの全体のサイズは、前記複数の生の地図タイルの全体のサイズより小さく、
    隣接する生の地図タイルのリスト全体に亘って生の地図タイル中のフィーチャの形状の頂点の総数を計算することと、
    前記コンフィギュレーション・データからの特定の量だけ前記総数より大きい数の頂点を、前記隣接する生の地図タイルのリストの特定の生の地図タイル内のフィーチャの形状に有する、前記特定の生の地図タイルを選択することと、
    前記特定の生の地図タイル内の前記フィーチャの前記形状の頂点の数を削減することによって、前記特定の生の地図タイルに対する特定の修正された地図タイルを生成することと
    を含む、生成することと、
    前記複数の修正された地図タイルの各々に対して、前記修正された地図タイル、及び、前記複数の生の地図タイルのうちの対応する生の地図タイルを示す情報を前記1つ又は複数のメモリに記憶することと
    を含む、1つ又は複数の非一時的コンピュータ可読記憶媒体。
  13. 前記方法は、
    前記複数の生の地図タイルのうちの特定の生の地図タイルを求める要求を受信することと、
    前記1つ又は複数のメモリから、前記複数の修正された地図タイルのうちの、前記特定の生の地図タイルに対応する特定の修正された地図タイルを読み出すことと、
    前記要求に応答して前記特定の修正された地図タイルをディスプレイ装置に送信することと
    を更に含む、請求項12に記載の1つ又は複数の非一時的コンピュータ可読記憶媒体。
  14. 前記コンフィギュレーション・データは、前記地理的領域のデジタル地図を見るための複数のズーム・レベル用のデータを含み、
    前記デジタル地図は前記複数のズーム・レベルのうちの1つのズーム・レベルに対応する、請求項12に記載の1つ又は複数の非一時的コンピュータ可読記憶媒体。
  15. 前記1つ又は複数のプロセッサは、前記複数のズーム・レベルのうちの特定のズーム・レベルの選択を更に受けるように構成され、
    前記コンフィギュレーション・データは、選択された連続するズーム・レベルに対応する修正されたデジタル地図がディスプレイ装置に送信されるときに、デジタル地図の簡略化の動的制御を可能にするスムージング機能を含む、請求項14に記載の1つ又は複数の非一時的コンピュータ可読記憶媒体。
  16. 前記生成することは、
    前記複数の生の地図タイルのうちの特定の生の地図タイルのための画素解像度が前記コンフィギュレーション・データからの第1の閾値未満であると判断することと、
    前記特定の生の地図タイルが前記コンフィギュレーション・データからの第2の閾値より大きい特定の数のフィーチャを有すると判断することと、
    前記特定の数のフィーチャのうちの1つのフィーチャを除去することによって前記特定の生の地図タイルに対する特定の修正された地図タイルを生成することと
    を含む、請求項12に記載の1つ又は複数の非一時的コンピュータ可読記憶媒体。
  17. 前記生成することは、
    前記複数の生の地図タイルのうちの特定の生の地図タイルのための画素解像度が前記コンフィギュレーション・データからの第1の閾値を超えると判断することと、
    前記特定の生の地図タイルが、前記コンフィギュレーション・データからの第2の閾値より大きいフィーチャを含む特定の数のフィーチャを有すると判断することと、
    前記フィーチャの画素の少なくとも1つの値を更新することによって前記特定の生の地図タイルに対する特定の修正された地図タイルを生成することと
    を含む、請求項12に記載の1つ又は複数の非一時的コンピュータ可読記憶媒体。
  18. 前記生成することは、前記複数の生の地図タイルのうちの複数の生の地図タイルのセット内のフィーチャ中の画素の全ての値の最大値を、前記複数の生の地図タイルのセット内の前記複数のフィーチャの少なくとも1つの画素に割り当てることによって、前記複数の生の地図タイルのセットに対して特定の修正された地図タイルを生成することであって、前記少なくとも1つの画素はそれぞれ、既に前記最大値を値として有していない、生成することを含む、請求項12に記載の1つ又は複数の非一時的コンピュータ可読記憶媒体。
  19. 前記生成することは、前記複数の生の地図タイルのうちの特定の生の地図タイルに関連付けられた、1つ又は複数の共通の画素に対応する前記1つ又は複数のフィーチャのうちの、特定のフィーチャの画素の全ての値の最大値を、
    前記特定のフィーチャのうちの、少なくとも1つの前記1つ又は複数の共通の画素の少なくとも1つの画素に割り当てることによって、前記特定の生の地図タイルに対して特定の修正された地図タイルを生成することであって、前記少なくとも1つの画素はそれぞれ、既に前記最大値を値として有していない、生成することを含む、請求項12に記載の1つ又は複数の体非一時的コンピュータ可読記憶媒体。
  20. 前記複数の生の地図タイルのうちの特定の生の地図タイルの画素解像度は、前記地理的領域内の前記特定の生の地図タイルに関連付けられた前記サブ領域の位置に依存する、請求項12に記載の1つ又は複数の非一時的コンピュータ可読記憶媒体。
JP2021575319A 2019-06-17 2020-06-11 地図ジオメトリ簡略化のための空間処理 Pending JP2022532952A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962862664P 2019-06-17 2019-06-17
US62/862,664 2019-06-17
PCT/US2020/037224 WO2020257049A1 (en) 2019-06-17 2020-06-11 Spatial processing for map geometry simplification

Publications (1)

Publication Number Publication Date
JP2022532952A true JP2022532952A (ja) 2022-07-20

Family

ID=71950737

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021575319A Pending JP2022532952A (ja) 2019-06-17 2020-06-11 地図ジオメトリ簡略化のための空間処理

Country Status (6)

Country Link
US (3) US11042961B2 (ja)
EP (1) EP3984003A1 (ja)
JP (1) JP2022532952A (ja)
AU (1) AU2020295360B9 (ja)
CA (2) CA3177646A1 (ja)
WO (1) WO2020257049A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042961B2 (en) 2019-06-17 2021-06-22 Risk Management Solutions, Inc. Spatial processing for map geometry simplification
US11977723B2 (en) * 2019-12-17 2024-05-07 Palantir Technologies Inc. Image tiling and distributive modification
US11435193B2 (en) * 2019-12-30 2022-09-06 Gm Cruise Holdings Llc Dynamic map rendering
CN113378396B (zh) * 2021-06-22 2023-11-24 中国科学院、水利部成都山地灾害与环境研究所 一种小流域地质灾害隐患点早期识别的方法
US11978160B2 (en) 2021-07-13 2024-05-07 Daniel E. Curtis GPU-based digital map tile generation method and system
US20230168106A1 (en) * 2021-11-29 2023-06-01 Here Global B.V. Method, apparatus, and system for providing mock map data for map design validation and documentation
CN116541479B (zh) * 2023-07-06 2023-09-19 深圳依时货拉拉科技有限公司 瓦块数据编译方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003187256A (ja) * 2001-12-21 2003-07-04 Zenrin Co Ltd 電子地図データに記録される図形データのデータ構造および電子地図表示装置
JP2013007889A (ja) * 2011-06-24 2013-01-10 Mitsubishi Electric Corp 3次元道路地図データ生成装置、3次元道路地図データ処理システム、ナビゲーション装置及び3次元道路地図データ生成方法
JP2018025726A (ja) * 2016-08-12 2018-02-15 富士通株式会社 情報提供方法、情報提供プログラムおよび情報提供装置

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4972319A (en) * 1987-09-25 1990-11-20 Delorme David M Electronic global map generating system
US5030117A (en) * 1987-09-25 1991-07-09 Delorme David M Digital global map generating system
CA2441974A1 (en) * 2001-03-27 2002-10-03 Computer Associates Think, Inc. Determining a spatial hierarchy for polygonal data by using cube-root scaling
CA2533279C (en) * 2005-01-18 2011-09-20 Ryan Eccles System and method for processing map data
KR100809522B1 (ko) 2005-12-08 2008-03-04 한국전자통신연구원 지형의 효율적인 뷰-의존 lod 렌더링 방법
US20130202197A1 (en) * 2010-06-11 2013-08-08 Edmund Cochrane Reeler System and Method for Manipulating Data Having Spatial Co-ordinates
US20120206469A1 (en) * 2011-02-15 2012-08-16 Tudor Hulubei Efficient pre-computing of simplified vector data for rendering at multiple zoom levels
US8560600B2 (en) * 2011-09-26 2013-10-15 Google Inc. Managing map elements using aggregate feature identifiers
US9105129B2 (en) * 2012-06-05 2015-08-11 Google Inc. Level of detail transitions for geometric objects in a graphics application
US9367959B2 (en) * 2012-06-05 2016-06-14 Apple Inc. Mapping application with 3D presentation
US9111380B2 (en) * 2012-06-05 2015-08-18 Apple Inc. Rendering maps
US20130325343A1 (en) * 2012-06-05 2013-12-05 Apple Inc. Mapping application with novel search field
US9222787B2 (en) * 2012-06-05 2015-12-29 Apple Inc. System and method for acquiring map portions based on expected signal strength of route segments
US9159153B2 (en) * 2012-06-05 2015-10-13 Apple Inc. Method, system and apparatus for providing visual feedback of a map view change
US9582932B2 (en) * 2012-06-05 2017-02-28 Apple Inc. Identifying and parameterizing roof types in map data
US9147286B2 (en) * 2012-06-06 2015-09-29 Apple Inc. Non-static 3D map views
US9305380B2 (en) * 2012-06-06 2016-04-05 Apple Inc. Generating land cover for display by a mapping application
US9418466B2 (en) * 2012-06-06 2016-08-16 Apple Inc. Geospatial representation of data-less map areas
US9395193B2 (en) * 2012-06-10 2016-07-19 Apple Inc. Scalable and efficient cutting of map tiles
US20140071119A1 (en) * 2012-09-11 2014-03-13 Apple Inc. Displaying 3D Objects in a 3D Map Presentation
US20140365944A1 (en) * 2013-06-09 2014-12-11 Apple Inc. Location-Based Application Recommendations
CN105869202B (zh) * 2015-01-21 2018-11-02 高德软件有限公司 电子地图的数字地面模型数据生成方法和装置
US10902655B1 (en) * 2016-02-01 2021-01-26 United Parcel Service Of America, Inc. Editing cached map titles
US10937126B2 (en) * 2018-05-17 2021-03-02 Intel Corporation Tile-based multiple resolution rendering of images
US11042961B2 (en) 2019-06-17 2021-06-22 Risk Management Solutions, Inc. Spatial processing for map geometry simplification

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003187256A (ja) * 2001-12-21 2003-07-04 Zenrin Co Ltd 電子地図データに記録される図形データのデータ構造および電子地図表示装置
JP2013007889A (ja) * 2011-06-24 2013-01-10 Mitsubishi Electric Corp 3次元道路地図データ生成装置、3次元道路地図データ処理システム、ナビゲーション装置及び3次元道路地図データ生成方法
JP2018025726A (ja) * 2016-08-12 2018-02-15 富士通株式会社 情報提供方法、情報提供プログラムおよび情報提供装置

Also Published As

Publication number Publication date
US11494872B2 (en) 2022-11-08
WO2020257049A1 (en) 2020-12-24
CA3177646A1 (en) 2020-12-24
US20200394753A1 (en) 2020-12-17
CA3143960A1 (en) 2020-12-24
AU2020295360B2 (en) 2022-08-25
US11042961B2 (en) 2021-06-22
US20230057411A1 (en) 2023-02-23
EP3984003A1 (en) 2022-04-20
US20210383502A1 (en) 2021-12-09
AU2020295360A1 (en) 2022-02-17
AU2020295360B9 (en) 2022-09-08

Similar Documents

Publication Publication Date Title
US11494872B2 (en) Spatial processing for map geometry simplification
US11650708B2 (en) System and method of indicating the distance or the surface of an image of a geographical object
US9542770B1 (en) Automatic method for photo texturing geolocated 3D models from geolocated imagery
US10977862B2 (en) Method and system for displaying and navigating an optimal multi-dimensional building model
US10324601B2 (en) Integrating maps and street views
US9625612B2 (en) Landmark identification from point cloud generated from geographic imagery data
US8749580B1 (en) System and method of texturing a 3D model from video
US10480955B2 (en) Travel time mapping using isochrones
US9245366B1 (en) Label placement for complex geographic polygons
EP3080552B1 (en) Method and apparatus for optimized presentation of complex maps
US20200272308A1 (en) Shake Event Detection System
US11682168B1 (en) Method and system for virtual area visualization
CN112105892A (zh) 使用运动数据和面元数据识别地图特征
JP2011039130A (ja) 連携表示装置、連携表示方法、及びプログラム
KR102243138B1 (ko) 환경 정보 취득을 이용한 혼합 현실 기기 지원 장치 및 그 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220601

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220802

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221102

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221227

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230329