この記事は Google マップ、Google Maps Platform エンジニアリング リード Travis McPhail による Google Cloud Blog の記事 "Richer data visualization on Google Maps Platform using deck.gl" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
...

この記事は Google マップ、Google Maps Platform エンジニアリング リード Travis McPhail による Google Cloud Blog の記事 "Richer data visualization on Google Maps Platform using deck.gl" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

Google Cloud Next では、最新のオープンソース データ可視化ライブラリ deck.gl(バージョン 8.6)をご紹介しました。このリリースでは、ロケーション インテリジェンス プラットフォーム CARTO、vis.gl Technical Steering Committee(TSC)、Google Maps Platform と Google Cloud のチームとの密接な連携により、Maps JavaScript API の WebGL Overlay View 機能と deck.gl の緊密な統合を実現しました。この統合により、2D と 3D といった形式でデータを美しく可視化し、さまざまな知見を得ることができる deck.gl の機能を活用して、新たなレベルのデータ マッピング エクスペリエンスを作り出せます。

deck.gl と WebGL Overlay View の統合により実現したさまざまな可視化の例。

この新しい可視化機能は、地理空間情報を使用する、あらゆるユースケースでご活用いただけます。CARTO チームは、deck.gl と Maps JavaScript API の統合による優れた機能を示すために、テキサス州で電気トラックの可能性を示す各種データソースを可視化したサンプルアプリを作成しました。このサンプルアプリでは、WebGL を利用したマップ機能ツールと deck.gl によって、CARTO がテキサス州の面積と人口の規模を、完全にインタラクティブな地図として可視化した様子がわかります。

deck.gl を使用して、テキサス州のトラックを電化できる可能性を可視化した CARTO のストーリー マップ

deck.gl と Maps JavaScript API が連携する

deck.gl は、これまで Maps JavaScript API のラスター ベースマップをサポートしてきました。今回の新しいリリースでは、インターリーブ モードでのベクター ベースマップもサポートされるようになります。deck.gl によって Google のベクター地図とデータレイヤを組み合わせることができるようになるため、ラベルや 3D などのコンテンツを損ねることなく深度とオクルージョン(手前にある物体が背後にある物体を隠す状態)を確保した完璧なレンダリングを行う、ピクセル パーフェクトな可視化を実現できます。

具体的な仕組みとしては、同じ WebGL レンダリング コンテキストをベクター ベースマップと deck.gl が共有することで、地図上にレンダリングされる描画のパフォーマンスと柔軟性が向上します。つまり、deck.gl によって地図上にレンダリングされて可視化されるのではなく、地図の一部としてレンダリングされるようになりました。この WebGL コンテキストの共有は容易ではないため、Google Maps Platform チームと CARTO チームが協力して両社のライブラリを進化させ、サポートを提供しています。

例を見てみましょう。

以下のコードでは、オープンソース ライブラリの loaders.gl を使用して CSV ファイルからデータを読み込み、deck.gl の可視化レイヤである Hexagon Layer と Google Maps Platform 用のオーバーレイを作成して、最終的に地図に追加しています。

deck.gl の Hexagon Layer で可視化するための簡単なコード。
上記のコードによる Hexagon Layer の可視化が適用された英国の地図。


高度な可視化機能

deck.gl には、可視化表現の作成と既存の可視化の利用に使用できる柔軟性の高いフレームワークが用意されています。参考として、deck.gl ウェブサイトにある例と CARTO のデモギャラリーをご覧ください。

デモギャラリーをご覧ください。

柔軟性の高い deck.gl により、CARTO のテキサス州のデモのように優れた可視化を実現できます。主な可視化表現の種類をいくつかご紹介します。

Hexagon Layer

Hexagon Layer は、集計データを可視化する際に便利です。人口などのプロパティを使用して、六角形の色や高さを定義できます。次の例では、テキサス州の人口がいくつかの大都市に集中していることがわかります。

テキサス州の人口密度を Hexagon Layer で可視化した例。

ベクタータイルを使用した大規模データセットのマッピング

送電線の可視化のように、大規模なデータセットを可視化する場合は、データをタイルにして徐々に読み込む必要があります。deck.gl では、MVTLayerTileLayerTile3DLayer など、さまざまな既製レイヤが用意されています。

Tile3DLayer を使用したテキサス州の送電線の可視化。

この地図では、約 70 MB に上る送電線の公開データセットを可視化しています。この可視化では、deck.gl の CartoLayer を使用して、データを 512 KB 未満の小さなベクタータイルにして読み込みます。

アニメーションと充実した地図作成機能

地図作成機能に加え、アニメーション機能によって、さらに充実した可視化機能とシームレスなユーザー エクスペリエンスが実現しました。以下の例は、テキサス州の再生可能エネルギー源を示しています。

アニメーションとトランジション効果のサポートにより、データ可視化エクスペリエンスがさらに充実。
アニメーションとトランジション効果のサポートにより、データ可視化エクスペリエンスがさらに充実。


ルートのアニメーション化と 3D 対応

ルートのアニメーション化は、deck.gl の可視化の中でも特によく使用されています。インターリーブのサポートにより、建物など Google Maps Platform の機能をすべて損ねることなくルートを描画できます。

TripsLayer により、データを時系列に可視化。

TripsLayer により、データを時系列に可視化。


こちらからコードをご確認いただけます。

お試しください

まず、deck.gl と Google Maps Platform のデモをご覧のうえ、deck.gl のウェブサイトで、レイヤのカスタマイズ方法や独自レイヤの作成方法の詳細をご確認ください。また、テキサス州のデモのソースコードも自由にご利用いただけます。

deck.gl と Google Maps Platform を活用して、優れた視覚化を実現していただければ幸いです。CARTO の詳細情報、無料アカウントの作成方法、BigQuery のデータをオーバーレイする方法については、CARTO のウェブサイトをご覧ください。

Google Maps Platform に関する詳しい情報はこちらをご覧ください。ご質問やフィードバックはページ右上の「お問い合わせ」より承っております。




Posted by 丸山 智康 (Tomoyasu Maruyama) - Developer Relations Engineer



DevFest は、Google Developer Group(GDG)コミュニティによって世界各地で開かれるデベロッパー向けイベントです。参加者は Android、Firebase、Google Cloud Platform、TensorFlow、Web などの Google のデベロッパー テクノロジーに関する技術情報、知識やアイデアを共有できます。

それぞれの DevFest は、主催するコミュニティとその地域のニーズに沿ったユニークな内容となり、日本では下記のイベントが現時点では企画がされています。情報は追加、更新されていきますので、ブログ記事やツイッターをご確認ください。

■ DevFest Kyoto 2021(Flutter テスト講座)
    日時 : 2021 年 10 月 23 日(土) 13:30~17:00
    場所 : Youtube Live
    参加費 : 無料
    定員 : オンライン 視聴枠(人数制限なし)
         オンライン LT 発表枠参加(6 名)
    申込サイト : こちら
    主催 : GDG Kyoto
    内容 : Flutter 開発でテストができるようになる視点や技術基礎と経験談をご紹介


■ DevFest Shikoku 2021

    日時 : 2021 年 11 月 7 日(日) 13:00~
    場所 : Google Meet
    参加費 : 無料
    定員 : オンライン 視聴枠
         オンライン LT 発表枠参加(8 名)
    申込サイト : こちら
    主催 : GDG Shikoku
    内容 : FIDO などの Web 上での認証コードをコードラボを通して学習
      Google Analytics のデータを集計して可視化するハンズオン


■ DevFest Tokyo 2021
    日時 : 2021 年 12 月 11 日(土)
    場所 : Youtube Live
    参加費 : 無料
    定員 : 人数制限なし
    申込サイト : こちら
    主催 : GDG Tokyo
    内容 : 技術テーマは絞らずに幅広くセッションを予定中


※ リンクがない箇所は、情報が入り次第更新していきます。

皆さまのご参加を心よりお待ちしております。


Posted by Takuo Suzuki - Developer Relations Team

この記事はプロダクト マネージャー、Yana Yushkina による Chromium Blog の記事 "Helping users explore the web and continue prior tasks" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

皆さんがインターネットで情報を探したり、プロジェクトの作業に取り組んだりする場合、そのプロセスは直線的には進まないはずです。同じものを何度も探したり、ページ間をジャンプしたり、Google 検索に戻ったり、二度と見つけられないページを探すために履歴をたどったりするかもしれません。これは困難な作業であるだけでなく、なにより、用事を済ませるために使えるはずの時間を奪ってしまう可能性があります。

そこで今回、2 つの新しい試験運用を始めます。その目的は、ウェブで見つけたものを開いたり、詳しく調べたり、履歴を管理したりする作業を簡単にすることです。

ウェブの検索を続ける

あるトピックについてすでに調査を始めており、数日または数週間程度さまざまなサイトにアクセスしている場合、再度アクセスしたい有用な情報を見つけていることでしょう。しかしその過程で、ニュースを読む、友達にメールを送信する、新しい靴を買うなど、多少寄り道していることはほぼ確実です。そこで、完了した検索についての情報を評価したり、有用な情報に再度アクセスしてトピックの検索を続けたりする際に役立つように、Journeys という新機能を試しています。

数週間にわたってヨセミテ国立公園への旅行について調べている場合を考えてみましょう。Journeys は、アクセスしたページのうち、ヨセミテ国立公園に関連するものをすべてまとめてくれます。そのため、閲覧履歴を細かく調べなくても、そのページを簡単に参照できます。さらに、関連する検索の提案も表示されるので、すぐに旅行の計画の続きに取りかかることもできます ...
この記事はプロダクト マネージャー、Yana Yushkina による Chromium Blog の記事 "Helping users explore the web and continue prior tasks" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

皆さんがインターネットで情報を探したり、プロジェクトの作業に取り組んだりする場合、そのプロセスは直線的には進まないはずです。同じものを何度も探したり、ページ間をジャンプしたり、Google 検索に戻ったり、二度と見つけられないページを探すために履歴をたどったりするかもしれません。これは困難な作業であるだけでなく、なにより、用事を済ませるために使えるはずの時間を奪ってしまう可能性があります。

そこで今回、2 つの新しい試験運用を始めます。その目的は、ウェブで見つけたものを開いたり、詳しく調べたり、履歴を管理したりする作業を簡単にすることです。

ウェブの検索を続ける

あるトピックについてすでに調査を始めており、数日または数週間程度さまざまなサイトにアクセスしている場合、再度アクセスしたい有用な情報を見つけていることでしょう。しかしその過程で、ニュースを読む、友達にメールを送信する、新しい靴を買うなど、多少寄り道していることはほぼ確実です。そこで、完了した検索についての情報を評価したり、有用な情報に再度アクセスしてトピックの検索を続けたりする際に役立つように、Journeys という新機能を試しています。

数週間にわたってヨセミテ国立公園への旅行について調べている場合を考えてみましょう。Journeys は、アクセスしたページのうち、ヨセミテ国立公園に関連するものをすべてまとめてくれます。そのため、閲覧履歴を細かく調べなくても、そのページを簡単に参照できます。さらに、関連する検索の提案も表示されるので、すぐに旅行の計画の続きに取りかかることもできます。


重要な点は、皆さんが Journeys のエクスペリエンスをコントロールできることです。たとえば、Journeys はいつでもオフにすることができます。また、Chrome の設定を使うか、アドレスバーに「clear browsing data」と入力することで、いつでも簡単に閲覧履歴を削除できます。必要に応じて、特定の内容に関する履歴だけを削除することも、履歴全体を削除することもできます。なお、現在の Journeys の試験運用はデバイス内の履歴をグループ化するだけで、Google アカウントには何も保存されません。今後のバージョンでは、ユーザーのフィードバックと関心を踏まえて、(ブックマークやパスワードのように)複数のデバイスの Chrome から Journeys にアクセスする機能を提供するかもしれません。

Journeys は、デスクトップ向けの Chrome Canary 版で試験運用として公開します。広く展開する前に改善できるように、皆さんのフィードバックをお待ちしています。

Chrome OS で検索結果を簡単に比較する

過去の履歴に再アクセスする機能に加えて、何かを積極的に検索するときに、探しているものを簡単に見つけるための方法についても試しています。贈り物の買い物、旅行の計画、友人と会食するためのレストランの比較、夕食のレシピの検索などをしているとき、皆さんは必要なものを見つけるために複数のサイトにアクセスしているはずです。

Chrome で検索結果を簡単に比較して、探しているものをすばやく見つけられるように、Chrome OS の Dev チャンネルで新しいサイドパネルの試験運用を行っています。これを使うと、ページと検索結果を同時に見ることができます。メインブラウザのウィンドウに直接ページを表示できるので、ページを行き来したり、検索結果を失ったりすることはなくなります。この試験運用の目的は、先月お知らせした機能と同じく、結果を比較するユーザーを Chrome がどのくらいサポートできるかを確認することです。

検索バーの隣の G アイコンをクリックするだけで、サイドパネルを開いて結果を表示できます。探しているものが見つかった場合や、もう結果が不要になった場合は、いつでもパネルをクローズできます。この機能の試験運用は、まず Chrome OS の Dev チャンネルの Google 検索で行います。今後は、この機能を広く展開することで、多くのプラットフォームの多くのデフォルト検索エンジンに拡大したいと考えています。
今回の試験運用は、Chrome によるウェブの検索をさらに便利にするために試行を繰り返しているもののうち、わずか 2 つにすぎません。Journeys はデスクトップ向けの Chrome Canary 版で、新しいサイドパネルは Chrome OS の Dev チャンネルで、近日中に確認できるようになります。動作の仕組みについては、もう少し詳しく説明する機会を設けたいと思っています。また、いつものように、皆さんのフィードバックもお待ちしています。

Google Cloud Japan は 10 月 20 日 (水)21 時より Google Cloud オフィスアワーを開催いたします。

Google Cloud オフィスアワーは、Google Cloud の最新情報をお届けする場です。
また、みなさまからの質問に Google Cloud エンジニアが直接お答えします。当日は YouTube Live で放送します。
参加登録不要でご視聴いただけますので、ぜひお気軽にご参加ください。

10 月開催のセッションでは、モダンなアプリケーション開発について紹介します。
今回は Next で発表されたアップモダナイゼーションに関する最新情報と、最近リリースされた、デプロイのためのマネージド サービス Cloud Deploy について解説します。

Google Cloud Japan は 10 月 20 日 (水)21 時より Google Cloud オフィスアワーを開催いたします。

Google Cloud オフィスアワーは、Google Cloud の最新情報をお届けする場です。
また、みなさまからの質問に Google Cloud エンジニアが直接お答えします。当日は YouTube Live で放送します。
参加登録不要でご視聴いただけますので、ぜひお気軽にご参加ください。

10 月開催のセッションでは、モダンなアプリケーション開発について紹介します。
今回は Next で発表されたアップモダナイゼーションに関する最新情報と、最近リリースされた、デプロイのためのマネージド サービス Cloud Deploy について解説します。

ご視聴はこちら

ご質問投稿はこちら


開催概要

名 称 Google Cloud オフィスアワー

日 程 2021 年 10 月 20 日(水)21 時~22 時

対 象 開発エンジニア、インフラエンジニア、運用エンジニア

参加費 無料、事前登録不要

ご視聴 URL



Google Cloud Japan は 10 月 20 日 (水)、10 月 27 日 (水)の 2 週にわたって Google Cloud App Modernization OnAir を開催いたします。

Google Cloud App Modernization OnAir では、Google Cloud のエンジニアが、モダンなアプリケーション開発で利用可能な Google Cloud のサービスや、コンテナ、Kubernetes を利用した開発手法、マイクロサービス アーキテクチャの採用、CI/CD パイプラインの構築、DevOps の実践方法、SRE の考え方、アプリケーション セキュリティ、デザインパターンなどをご紹介いたします。

Google Cloud Japan は 10 月 20 日 (水)、10 月 27 日 (水)の 2 週にわたって Google Cloud App Modernization OnAir を開催いたします。

Google Cloud App Modernization OnAir では、Google Cloud のエンジニアが、モダンなアプリケーション開発で利用可能な Google Cloud のサービスや、コンテナ、Kubernetes を利用した開発手法、マイクロサービス アーキテクチャの採用、CI/CD パイプラインの構築、DevOps の実践方法、SRE の考え方、アプリケーション セキュリティ、デザインパターンなどをご紹介いたします。

10 月開催のセッションでは、モダンなアプリケーション開発について紹介します。
今回は Next で発表されたアップモダナイゼーションに関する最新情報と、最近リリースされた、デプロイのためのマネージド サービス Cloud Deploy について解説します。

すでに Google Cloud についてご存知のお客様、これから利用を検討しているお客様、ぜひご視聴ください。

この Google Cloud App Modernization OnAir は、一度ご登録いただくと、2 週間分のセッションを追加登録なしでご視聴いただけます。配信当日はライブでの Q&A も行いますので、ぜひご参加ください。

また、参加ご登録者の中から抽選で 10 名様に Google Cloud T シャツをプレゼントいたします。
(全配信終了後に送付いたします)

参加登録 受付中


開催概要

名 称 App Modernization OnAir

日 程 毎週 水曜日(2 週連続開催)
    2021 年 10 月 20 日(水)、10 月 27 日 (水)

対 象 開発エンジニア、インフラエンジニア、運用エンジニア

参加費 無料(事前登録制)

登 録 https://goo.gle/gcamblog




GCCN (Google Cloud Community News) は Google Cloud に関連したコミュニティの情報をまとめた Web サイトです。

Google Cloud に関するイベント情報やレポート、コミュニティ支援など、すでにコミュニティで活躍している方だけでなく Google Cloud に興味をもった方にとっても、役立つサイトとなるよう、各コミュニティメンバーが中心となってさまざまな情報を発信していきます。

GCCN を活用して、興味がある分野のイベントやお住まいの地域のコミュニティを見つけてぜひ参加してみましょう ...

GCCN (Google Cloud Community News) は Google Cloud に関連したコミュニティの情報をまとめた Web サイトです。

Google Cloud に関するイベント情報やレポート、コミュニティ支援など、すでにコミュニティで活躍している方だけでなく Google Cloud に興味をもった方にとっても、役立つサイトとなるよう、各コミュニティメンバーが中心となってさまざまな情報を発信していきます。

GCCN を活用して、興味がある分野のイベントやお住まいの地域のコミュニティを見つけてぜひ参加してみましょう。



GCCN に対するフィードバックやコミュニティ支援が必要な場合、こちらのフォームからお問い合わせください。


この記事は Chrome セキュリティ チーム、Adrian Taylor、Andrew Whalley、Dana Jansens、Nasko Oskov による Google Online Security Blog の記事 "An update on Memory Safety in Chrome" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

セキュリティは、いたちごっこのようなものです。攻撃者が新しい手法を生み出せば、ブラウザは一歩先を行くために新たな防御策を講じ続けなければなりません。そのため、Chrome は、サンドボックスサイト分離をベースとした今までにない強固なマルチプロセス アーキテクチャを構築してきました。これらは、ファジングとともに、現在も私たちの主要な防衛線であり続けています。しかし、それも限界に近づきつつあり、この戦略だけに頼って実際に出回っている攻撃に対処することはできなくなっています。

この記事は Chrome セキュリティ チーム、Adrian Taylor、Andrew Whalley、Dana Jansens、Nasko Oskov による Google Online Security Blog の記事 "An update on Memory Safety in Chrome" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

セキュリティは、いたちごっこのようなものです。攻撃者が新しい手法を生み出せば、ブラウザは一歩先を行くために新たな防御策を講じ続けなければなりません。そのため、Chrome は、サンドボックスサイト分離をベースとした今までにない強固なマルチプロセス アーキテクチャを構築してきました。これらは、ファジングとともに、現在も私たちの主要な防衛線であり続けています。しかし、それも限界に近づきつつあり、この戦略だけに頼って実際に出回っている攻撃に対処することはできなくなっています。

昨年、Google は、重大なセキュリティ バグの 70% 超がメモリの安全性の問題であることを明らかにしました。つまり、C 言語や C++ 言語のポインタのミスによって、メモリが誤解釈されてしまうのです。

メモリの安全性は、世界のソフトウェア エンジニアリング コミュニティが真剣に受け止める必要がある問題です。しかし、これは同時にチャンスでもあります。なぜなら、多くのバグに同じような根本原因があるということは、1 つの対策で相当のバグを撲滅できる可能性があるからです。

Chrome では、このチャンスを活かすため、大まかに次の 3 つの方法を検討しています。

  1. ポインタが正しいことをコンパイル時にチェックすることで、C++ の安全性を向上
  2. ポインタが正しいことを実行時にチェックすることで、C++ の安全性を向上
  3. メモリ安全な言語をコードベースの一部に使うことについて調査

「コンパイル時にチェック」とは、Chrome が皆さんのデバイスにインストールされる前の、ビルドプロセスの段階で安全性を保証することを指します。「実行時」とは、Chrome が皆さんのデバイスで実行されている間にチェックを行うことを指します。

実行時チェックには、パフォーマンスのコストが伴います。ポインタが正しいかどうかをチェックする操作は、メモリや CPU 時間にとっては微少なコストです。しかし、ポインタの数は膨大なので、そのコストは積み重なります。莫大な数のユーザーを持つ Chrome にとって、パフォーマンスは重要です。ユーザーの多くはメモリの少ない低電力モバイル デバイスを使っているため、こういったチェックが増加すれば、ウェブが遅くなってしまいます。

つまり、選択肢 1、コンパイル時に C++ を安全にする方法を選ぶのが理想です。しかし、この言語はそのような設計にはなっていません。この領域で Google が取り組んできたことを詳しく知りたい方は、借用の問題 : C++ の Borrow-Checker の難しさをご覧ください。

そのため、ほとんどは選択肢 2 と 3、つまり C++ の安全性を向上させる(ただし遅くなる)か、別の言語を利用する方法をとらざるをえません。Chrome のセキュリティでは、この両方のアプローチを試しています。

C++ の安全性ソリューションに向けた主な取り組みには、MiraclePtrABSL/STL 強化モードなどがあります。どちらも、悪用できるセキュリティ バグの大半を解消することを目指していますが、ある程度のパフォーマンス低下も想定されます。たとえば MiraclePtr は、参照されているメモリを隔離することで解放後の使用に関するバグを防ぎますが、多くのモバイル デバイスではメモリはとても貴重なため、隔離用の領域を割り当てるのは難しくなっています。それでも、MiraclePtr は、ブラウザのプロセスで解放後の使用に関するバグを 50% 以上解消できる可能性を秘めています。今のところ、これは Chrome のセキュリティにとって大きなメリットです。

それと並行して、将来的に Chrome の一部でメモリ安全な言語を使えないかを検討しています。その第一候補は、Mozilla にいる私たちの友人が開発した Rust です。Rust は(ほとんどが)コンパイル時に安全です。つまり、Rust コンパイラは、コードが皆さんのデバイスにインストールされる前にポインタのミスを見つけます。そのため、パフォーマンスが低下することはありません。しかし、C++ と Rust を十分に連携して使えるかどうかという未解決の問題が残されています。また、たとえ明日から Rust で新しい大型コンポーネントを書き始めたとしても、セキュリティ脆弱性の大部分を解消できるのは、おそらく何年も後になるはずです。さらに、既存のコンポーネントの一部を Rust で書けるほど言語の境界を十分にクリーンにできるかという問題もあります。この点は、まだ明らかではありません。Google は、Chromium ソースコード ツリーのユーザーが触れることのない限られた部分で、Rust の実験を始めています。しかし、製品版の Chrome にはまだ含まれておらず、試験運用版のフェーズにとどまっています。

以上の理由から、Google は両方の戦略を並行して追求しています。C++ の安全性向上、Chrome での新しい言語の試行というこの領域の最新情報にぜひご注目ください。


Reviewed by Eiji Kitamura - Developer Relations Team