タグ

ブックマーク / gunmagisgeek.com (3)

  • Fetch APIのStream機能を使ってデータを読み込みながら地図を描画する

    地理空間データはどうしてもデータサイズが大きくなりがちです。 通常のデータ読み込みでは、読み込みが終わるまで地図の描画を始めることができないのですが、Fetch APIのReadableStreamを使うことで、「一部データを読み込んでは地図の一部分を描画する」という分割したレンダリングを実装することができます。 サンプルコード 約50MBのポリゴンデータを読み込みながら逐次描画しています。 DEMO //地理データをstreamを使って読み込む fetch("city.txt").then((response) => { const reader = response.body.getReader(); const stream = new ReadableStream({ start(controller) { function push() { reader.read().then(

    Fetch APIのStream機能を使ってデータを読み込みながら地図を描画する
  • GeoJSONをフロントエンドでベクトルタイル化して表示する。

    中規模のデータをどうやって地図上に視覚化するか フロントエンドで地図を表示するのは、データサイズとの戦いです。 現在のところ、大量のデータを表示するにはベクトルタイル化するのがもっともベターですが、ベクトルタイルにもいくつかの何点があります。 例)全国のガソリンスタンドの位置を地図上にプロットしてみた。 一つは、データのコンバート作業に時間がかかること。 どの程度のズームレベルまで作成するかによるのですが、タイルファイルを生成するまでには何工程か経なければならず、運用で頻繁にデータを差し替えたり更新したりする必要がある場合、無視できない作業量になります。 もう一つは、フロントエンドでかなり多くの404アクセスエラーがでること。 タイルのコンバート時間を短くするには、必要な部分のみ作成するのがもっとも効果的なのですが、その場合、地図クライアントソフトが存在しないタイルに対してもリクエストを投

    GeoJSONをフロントエンドでベクトルタイル化して表示する。
  • まるでシムシティのようなWeb地図ライブリラリ「eegeo.js」

    eeGeo eeGeoは、「グランド・セフト・オート」や「レミングス」などのクリエイティブディレクターであったイアン ヘザーリントン氏が2010年9月に設立した3D地図を提供する会社です。 日では、NTTドコモがライセンス供与を受け、屋内3Dマップの提供などを行っています。 今のところ、日では3Dで表示できる地域がないのですが、ゲーム業界のノウハウを用いた地図サービスとして個人的に期待しています。 登録すれば個人ユーザーでもAPIを使用することができるので、紹介がてらサンプルを載せておきます。 Web版サンプル example 公式サイトに登録し、ダッシュボードから「Create new app」ボタンをクリックして「API Token」を取得してください。 スタイルシートとライブラリを読み込みます。 <link href="https://cdnjs.cloudflare.com/a

    まるでシムシティのようなWeb地図ライブリラリ「eegeo.js」
  • 1