はじめに
日本の目指す未来像として内閣府が提唱しているSociety 5.0 (内閣府ホームページ:https://www8.cao.go.jp/cstp/society5_0/) の紹介において、「サイバー空間 (仮想空間) とフィジカル空間 (現実空間) を高度に融合させたシステム」というキーワードが出てきます。実際に、IoT・ロボティクス・建築/土木におけるBIM/CIM (*1) ・ゲームなどさまざまな分野において、仮想空間と現実空間をつなぐ仕組みに注目が集まってきています。この仮想空間と現実空間をつなぐ仕組みの1つに、地理空間情報が挙げられます。地理空間情報とは、現実空間の物や事象をコンピュータが扱える仮想空間上のデータとして表現したものです。地理空間情報の表現方法として、地球上の特定の場所や空間を示す位置情報と、そこに紐づく属性情報のセットが一般的に用いられます。たとえば、あるコンビニチェーンの店舗における地理空間情報は、各店舗の場所を示す緯度経度を位置情報として、営業時間や1日あたりの来客数を店舗に紐づく属性情報として表現することができます。
このような地理空間情報を活用するために、世の中にはさまざまなアプリケーションがあります。出店場所の検討や災害のリスク評価などを目的として、地理空間情報を分析・可視化するアプリケーションが GIS (Geographical Information System、地理情報システム) です。GISは研究者や専門家のあいだで古くから使われてきました。また近年では、Web関連の技術が発達したことにより、日常生活のなかでWebアプリケーション・モバイルアプリケーションを利用して、現在地周辺のレストランを探したり、目的地までのルートを調べることができます。
それでは、このようなアプリケーションの実現にあたり、地図を表示したり、目的地へのルート案内をするといった機能は、どのように用意すればよいでしょうか?
地理空間情報を活用したアプリケーションを実現する際に、一般的に用いられる技術要素が、地図サービス基盤です。地図サービス基盤は、地理空間情報を活用するアプリケーションでよく使われる共通機能を、Web APIやライブラリといった、開発で使いやすい部品の形で提供する仕組みです (図1)。地図サービス基盤が提供する機能には、地図の描画、ルート検索、ジオコーディング (地名や住所を緯度経度に変換すること) 、POI (Point Of Interest、店舗や駅など特定の地点) の検索といったものがあります。今回のコラムでは、地図サービス基盤を用いてアプリケーションを実現するアプローチを、2つ紹介したいと思います。
図1:地図サービス基盤のWeb APIをアプリケーションから利用するイメージ
(*1) BIM/CIM (Building/ Construction Information Modeling, Management) は、「計画、調査、設計段階から3次元モデルを導入することにより、その後の施工、維持管理の各段階においても3次元モデルを連携・発展させて事業全体にわたる関係者間の情報共有を容易に」する、建設生産・管理システムです。 (出典:国土交通省 BIM/CIMポータルサイト (http://www.nilim.go.jp/lab/qbg/bimcim/bimcimnotice.html))
既成の地図サービス基盤を使う
1つ目は、民間企業や公共団体が提供する既成の地図サービス基盤を、アプリケーションで使用するアプローチです。既成の地図サービス基盤として有名なものに、Google Maps Platform (https://developers.google.com/maps) やMapbox (https://www.mapbox.com/) があります。開発者は、こうした地図サービス基盤が提供するWeb APIに対してHTTPリクエストを実行し、Web APIからのHTTPレスポンスを利用するプログラムを作ることで、アプリケーションを実現します。
ルート検索機能を例として、Web APIの使い方のイメージを紹介します。開発者は、出発地と目的地のそれぞれの緯度経度や、徒歩や自動車などの交通手段についてパラメータを設定したHTTPリクエストを用意し、Web APIに対して実行します。するとWeb APIから、出発地から目的地までに通る道路の名称や緯度経度、移動距離、移動時間などが、HTTPレスポンスとしてXML (eXtensible Markup Language) やJSON (JavaScript Object Notation) の形式で返ってきます。返ってきた情報を地図の上に重ねて描画するプログラムを作ることで、アプリケーションのユーザに対するおすすめルートを、画面上に表示する仕組みが実現できます。
地図サービス基盤の中には、Web APIだけでなく、Webアプリケーションに組み込むためのJavaScriptライブラリや、モバイルアプリケーションに組み込むためのAndroid / iOS向けSDK (Software Development Kit、ソフトウェア開発キット) をセットで提供しているものもあります。ただし民間企業が提供する地図サービス基盤は基本的に有償です。一定の無料枠が設定されているものもありますが、Web APIの利用回数やSDKを組み込んだモバイルアプリケーションのユーザ数に応じて課金される料金体系となっています。一方で、国土地理院が提供するWeb APIである、地理院タイル (国土地理院ウェブサイト:https://maps.gsi.go.jp/development/ichiran.html) など、利用規約に従えば無償で利用可能な地図サービス基盤もあります。
自分で用意した地図サービス基盤を使う
2つ目は、自分で用意した地図サービス基盤を、アプリケーションで使用するアプローチです。地図サービス基盤を用意するといっても、何もないところからデータを集めてプログラムを作るわけではありません。世の中に公開されているオープンデータ・オープンソースソフトウェアを活用して機能を実現することが可能です。以下では、OpenStreetMapについて紹介します。OpenStreetMapは、地図サービス基盤を用意する際に利用可能なオープンデータを提供しています。
OpenStreetMapは、単なるオープンデータの提供元ではなく、誰もが自由に使える全世界の地図をみんなで作っていこうという活動です。インターネット上に百科事典を作りあげる取り組みとしてWikipedia (https://ja.wikipedia.org/wiki/) がありますが、OpenStreetMapはその地図版といわれることもあります。OpenStreetMapの特徴は、地図の描画やルート検索といった地図のサービスがWebで公開 (https://www.openstreetmap.org/) され誰でも利用できるようになっているだけでなく、ユーザ登録をすることでその地図の元になるデータを登録したり編集できることが挙げられます。OpenStreetMapのデータの多くは、ボランティアで活動する個人やコミュニティメンバー、あるいはOpenStreetMapを支援する企業に勤める人々が登録してきたものになります。
OpenStreetMapのデータには、地球上に現存するさまざまな物や事象が登録されています。道路や建物といった目に見えるものだけでなくバスの路線のように見えないもの、街路樹やベンチといった小さなものから空港などの巨大な構造物まで、OpenStreetMap Wikiに掲載された表 (https://wiki.openstreetmap.org/wiki/JA:Map_Features) を見ていただくとわかるとおり、主要なものだけでも非常に多くのカテゴリが用意されています。OpenStreetMapでは、地球上の1つ1つの物や事象について、位置情報を「ノード」・「ウェイ」・「リレーション」の3要素で表現し、各要素に紐づく属性情報を「タグ」と呼ぶデータ構造で持っています (図2) 。地図上でアイコンとしてあらわされるカフェやバス停は緯度経度を1点含む「ノード」として、道路や家といった2点以上の緯度経度を結んだ線や面などのカタチであらわされるものは「ウェイ」として、鉄道の路線や大学のキャンパスなど複数の「ノード」・「ウェイ」を組み合わせた複雑な形状は「リレーション」として、それぞれ登録されています。属性情報である「タグ」が「ノード」・「ウェイ」・「リレーション」に付与されていることで、それぞれの要素に意味が付けられます。たとえば、ある1つの「ウェイ」について、カテゴリは道路、種別は国道、車線数は4本という情報が登録されるようなイメージです。
図2:東京駅周辺におけるOpenStreetMapのデータのイメージ (© OpenStreetMap contributors)
OpenStreetMapに登録されている全世界のデータは、オープンデータとして公開されており、ODbL (Open Data Commons Open Database License) のライセンスに従うことで、誰でも自由に利用することができます。OpenStreetMapのデータは、Geofabrik (https://www.geofabrik.de/) や BBBike (https://extract.bbbike.org/) といったWebサイトで配布されており、物や事象のカテゴリ・対象地域やファイル形式を選んでダウンロードできます。ダウンロードしたOpenStreetMapのデータと、関連するオープンソースソフトウェアを組み合わせることで、自分の使いたい地図サービス基盤の機能を実現できます。地図を描画する機能だけでなく、道路データを使ってルート検索をする機能、地名や建物名のデータを使ってジオコーディングをする機能も実現可能です。このようにさまざまな地図サービス基盤の機能を実現できるのは、地球上の多種多様なカテゴリの地理空間情報がOpenStreetMapに登録されているためです。実際にOpenStreetMapのデータは、Mapbox (https://www.mapbox.jp/) やArcGIS Platform (https://www.esri.com/en-us/arcgis/products/arcgis-platform/overview) といった商用の地図サービス基盤、ポケモンGOなどの位置ゲーム、研究や教育といった分野まで広く活用されています。(*2)
OpenStreetMapのデータを活用する際の留意点として、データの品質や登録されている情報量にばらつきがあることが挙げられます。地域によっては、道路や建物の情報が未登録である場合や、登録されていても内容が古い・誤っている場合があります。これは、OpenStreetMapへのデータ登録の取り組みが、ボランティアベースで行われているためです。データ活用の目的次第では、現実空間の物や事象がどの程度登録されているか、その登録情報の正確性はどの程度か、といったことを事前に確認する必要も生じます。
(*2) 参考:OpenStreetMap「Who uses OpenStreetMap?」(https://welcome.openstreetmap.org/about-osm-community/consumers/)
さいごに
今回は、地理空間情報を活用したアプリケーションを実現するアプローチとして、既成の地図サービス基盤を使う・自分で用意した地図サービス基盤を使う、という2つのパターンを紹介しました。既成の地図サービス基盤を使うアプローチの利点は、機能が用意されているため、手軽にすばやくアプリケーションを実現できることです。一方、自分で用意した地図サービス基盤を使うアプローチは、要件に合わせた機能でアプリケーションを柔軟に実現できることが利点です。また、無償のオープンデータ・オープンソースソフトウェアを組み合わせる場合は、有償の地図サービス基盤を使う場合と異なり、Web APIの利用回数が増えても利用料がかからない (自分で用意した地図サービス基盤の運用費を除く) ことも利点として挙げられます。アプリケーションを実現する際にどちらのアプローチが適しているかは、求められる要件や期間によって異なります。
三井情報では、自分で用意した地図サービス基盤を使うアプローチの有効性や留意点を確認するため、OpenStreetMapのデータをもとに地図の描画やルート検索機能のプロトタイプ開発を行ってきました。今後も引き続き、地理空間情報の活用に関する調査・検証を行い知見をためていくことで、顧客の課題解決に貢献することを目指します。
関連ページ
おすすめコラム:
量子コンピュータとは?
量子コンピュータはなぜ速いのか?
量子コンピュータ(量子ビット)の実現方法は?
マテリアルズ・インフォマティクスはじめました。

阪野 弘典
R&D部 研究開発室
IoTや地理空間情報に関する調査を行っています。
コラム本文内に記載されている社名・商品名は、各社の商標または登録商標です。 本文および図表中では商標マークは明記していない場合があります。 当社の公式な発表・見解の発信は、当社ウェブサイト、プレスリリースなどで行っており、当社又は当社社員が本コラムで発信する情報は必ずしも当社の公式発表及び見解を表すものではありません。 また、本コラムのすべての内容は作成日時点でのものであり、予告なく変更される場合があります。