Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

On-demand realtime image tile rendering on Raspberry Pi / Raspberry Pi を用いたオンデマンド・リアルタイム・画像タイルレンダリング #14

Open
hfu opened this issue Jun 18, 2020 · 7 comments
Assignees
Labels
help wanted Extra attention is needed ja 日本語 / in Japanese language

Comments

@hfu
Copy link
Member

hfu commented Jun 18, 2020

FOSS4G 2019 Bucharest で @hfu から発表したとおり、 Mapbox GL JS を使用しない従来型のウェブ地図システムとベクトルタイルとの相互運用を最も安定的に、かつ最も高速に実施できる方法は、オンデマンド・リアルタイム画像タイルレンダリング機能を用いる方法であると考えています。

これは、リソースとしては一義的にベクトルタイルを管理し、画像タイルをリクエストに応じて生成する様にする方法で、tmcw によれば、2.75 世代のサービスであるとされ、例えば mapbox のタイルもこの方式での運用がされていたとのことです。

この機能は、次の通り実装しています。

hasekura は多少ブリンディシ実装特有の設定を混ぜているかもしれませんが、多分まずは hasekura を見ると言うことでイメージはわくかも知れません。140行ほどのコードです。

このコードは、かつて Node 8 でしか動かない、という問題があったようですが、2019年の6月末ころにその問題は解消されたようです。< mapbox/mapbox-gl-native#12252

ちなみに、インストールが「すごくむずかしい」です。サーバ側でグラフィックライブラリを動かす必要があるのですが、そういうことができるようにサーバを設定するのはそれほど簡単ではない、というのが正直なところです。また、グラフィックスなので当然といえば当然なのですが、計算負荷はとても高いです。

この機能を国土地理院でも評価したいという要望がありました。

このため、@hfu のほうで、この機能を Raspberry Pi で動かせないか試してみようと思っています。

help wanted です。

@hfu hfu added help wanted Extra attention is needed ja 日本語 / in Japanese language labels Jun 18, 2020
@hfu hfu self-assigned this Jun 18, 2020
@hfu
Copy link
Member Author

hfu commented Jun 18, 2020

#15 での検討の結果次第で、この作業を UNVT Portable プロジェクトの一部にするか、あるいは別のプロジェクトにします。

@hfu
Copy link
Member Author

hfu commented Jun 18, 2020

インストール作業に関して、これまででベストのドキュメントは これ です。

@mapbox/mapbox-gl-native を導入するためには、libegl1、libgles2とxvfbが必要であるというメモが残っています。当時は RHEL 6.10 (Santiago) を使っていました。

Raspberry Pi OS ではこれらが何になるか、ということをまず調べることになると思います。

@hfu
Copy link
Member Author

hfu commented Jun 18, 2020

ライブラリーの確認・導入(RPi 4)

Raspberry Pi OS (64 bit) で確認してみました。

pi@raspberrypi:~ $ uname -a
Linux raspberrypi 5.4.42-v8+ #1319 SMP PREEMPT Wed May 20 14:18:56 BST 2020 aarch64 GNU/Linux

libEGL (libegl1)

libegl1/testing,now 1.3.0-7~bpo10+1 arm64 [installed,automatic]                
  Vendor neutral GL dispatch library -- EGL support

libGLES2 (libgles2)

libgles2/testing,now 1.3.0-7~bpo10+1 arm64 [installed,automatic]
  Vendor neutral GL dispatch library -- GLESv2 support

xvfb

xvfb/testing 2:1.20.4-1+rpt1 arm64
  Virtual Framebuffer 'fake' X server

sudo apt install xvfb で導入しておきました。

@hfu
Copy link
Member Author

hfu commented Jun 19, 2020

mapbox-gl-native は、Raspberry Pi ではビルドする必要があります。
https://github.com/mapbox/mapbox-gl-native/blob/master/platform/node/DEVELOPING.md を見て導入していきます。

@hfu
Copy link
Member Author

hfu commented Jun 19, 2020

こちらも見る必要があるようですね。
https://github.com/mapbox/mapbox-gl-native/blob/master/README.md

@hfu
Copy link
Member Author

hfu commented Jun 19, 2020

これらのパッケージを導入しました。

  • cmake
  • libcurl
  • libcurl4-openssl-dev
  • libicu-dev
  • libjpeg-dev
  • libegl1-mesa-dev
  • libglfw3-dev
  • libuv-dev

まだビルドはできていません。

@hfu
Copy link
Member Author

hfu commented Jun 20, 2020

いろいろなパッケージを加えてみましたが、

cannot find -lOpenGL::OpenGL

が出るのを乗り越えることができていません。

Raspberry Pi OS で使用可能なのは、Open GL ES であって Open GL ではない、というところを私が乗り越えることができていないような気がします。

(参考)https://blog.mapbox.com/vector-maps-on-raspberry-pi-and-yocto-faf9f1423757

@hfu hfu changed the title On-demand realtime image tile rendering on Raspberry Pi On-demand realtime image tile rendering on Raspberry Pi / Raspberry Pi を用いたオンデマンド・リアルタイム・画像タイルレンダリング Jun 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed ja 日本語 / in Japanese language
Projects
None yet
Development

No branches or pull requests

1 participant