Geolonia 開発ブログ

位置情報ホスティングサービス Geolonia の開発者ブログです。

Hello World! 地図サービスをはじめます!

2019/05/07

みなさん、はじめまして。

このブログは、TileCloud という地図サービスを開発しているチームの開発者ブログです。

今日からちょくちょく地図サービスというものの裏側についてご紹介していきますので、よろしくお願いいたします。

グランフロント

TileCloud とは?

TileCloud とは超簡単に説明すると地図サービスですが、Google マップのように自社で独自の地図アプリを提供するというタイプのサービスではなく、みなさんのウェブサイトやアプリに埋め込んで使ってもらうことに特化した地図のホスティングサービスです。

TileCoud 独自にエンドユーザーの個人情報を取り扱うことがありませんので(Cookie も使用していません)、プライバシーポリシーなどの記述が簡単になり安心して使ってもらうことができます。

一方で、アプリ開発者が独自に実装することがとても困難な、ユーザーの位置情報のアナリティクスサービスも提供する予定で、エクサバイト/日の膨大なデータがあつかえるようになると思います。そして、このアナリティクスサービスではアプリユーザーの匿名性は保持されます。

これは、たとえば災害時にその防災アプリユーザーの位置情報の分布などを把握するなどのユースケースを想定しています。

仕組み

地図そのものの仕組みについては今後徐々に詳しく紹介していきますが、インフラ構成としては俗にいうサーバーレスな構成になっていて、CloudFront と API Gateway、そして Lambda によって成り立っています。

ウェブ地図をサーバーレスで提供するには、地図用のデータを S3 に保存する必要があって、これには170億以上の膨大なファイルを取り扱う必要がありますが、地球を分割して同時並行でデプロイしていくことで、国や地域ごとに非同期でアップデートされていく構造になっており、週に1回以上のペースでアップデートしていく予定です。

ただし、海外の地図についてのローカライゼーションのノウハウがまだまだ不足しているため、詳細地図の提供は日本国内から徐々に始めていく感じになります。

この部分をサーバーレスにできたということは、スケールや信頼性の問題から開放されたということであり、自信をもって多くのユーザーさんに提供できるかなと思っています。

現在の開発状況

TileCloud というサービスを提供するにあたって、大きく分けると以下の3種類の作業に現在取り組んでいます。

  • 地図およびそれを提供するためのインフラ
  • API - Google でいうところの Google Map API。
  • ダッシュボード。

ここからさらに細かい膨大な作業があるのですが、まあだいたいこんな感じです。

これらの中で、API に関しては、予定している機能がほぼ揃っている状態でして、Embed API という名称でドキュメントもすでに公開しています。

TileCloud 公式ドキュメント

この Embed API はとても便利な API で、一般的に必要となるであろう地図のカスタマイズのほとんどを HTML の記述のみで可能にしています。

グランフロント

たとえば、上の地図を表示するための記述は以下のような感じです。

<div
  class="tilecloud"
  data-lat="34.704395"
  data-lng="135.494771"
  data-zoom="14"
>グランフロント</div>

次に、地図そのものについてですが、現在は開発チームの目標に対して8割ぐらいの完成度かなという感じで、残りの2割がなにかというとローカライゼーションです。

これは単純な翻訳というわけではなく、たとえばあるズームレベルでどんな地物が表示されるべきかとか、地図記号であるとか、そういう地図のレイヤー構造やデザインなどが主な内容となり、今後専門家の人たちに協力を依頼して徐々に改善していきたいと思っています。

さいわい、言語の切り替えについてはわりとあっさりと実現しておりまして、サービス開始当初は日本語と英語に対応する予定です。

グランフロント

(言語はブラウザの設定で自動的に切り替わりますが、上の例ではあえて英語で固定しています。)

地図のデータにはオープンストリートマップといくつかのオープンデータを使用しています。どうしても地図のデータの充実度合いに地域格差がでてしまいますが、これに関してはコミュニティによる地図のアップデートを促すためのいくつかのアイディアがありまして、徐々に取り組んでいきたいと思っています。

サービス全体としては、現時点でプライベートベータという段階と認識してまして、新聞社や行政関係などのいくつかのサイトで、すでに実運用に入っています。

これから徐々に範囲を広げていき、2ヶ月以内にはパブリックベータぐらいまで行きたいなと思っております。

以上、自己紹介にしてはやや長い記事なってしまいましたが、今後とも宜しくお願いします。

和歌山県の串本町という辺境の地に在住。オープンソースが好きでコーギーとパンダの写真には問答無用でいいねをします。