見出し画像

昔開発した OSS がフィラデルフィアの自治体サイトに採用されていた話

こんにちは、SmartDrive でプロダクトマネージャー兼フロントエンドエンジニアをやっているヌノカワです。

地理情報 (ざっくり言えば地図) が好きで、趣味で日本一マクドナルドから遠い場所を探したり仕事でビッグデータの可視化をやっていたりします。


みなさんは OSS 開発ってやってますか?

タイトルの通り、昔作った (メンテさぼってる…) プロジェクトが知らぬ間にフィラデルフィアの自治体サイトに採用されていました。


タイトルで期待させていますが、技術的にはなんら難しいことはしていません。

Node や Ruby のコントリビューターとか、キラキラした話はたまに見聞きしますけど、こう言うニッチな OSS でも続けていると面白いことが起こるんだよと言う一つの事例としてお読みいただければと思って書いてみました。


いつ・どこで・何を作ったのか?

前職は GIS (地理情報システム) のソフトウェアを開発している Esri (エスリ、米国ではエズリと読みます) の日本法人で働いていました。

知る人ぞ知るって感じのニッチな業界です。

エスリなんてまったく聞いたことないって人はこれ読んでみてください。


いや、これグーグルでしょってツッコミが入りそうですが、キーホール (Google Earth の前身) 買収前の競合として Esri が登場します。

本の中では咬ませ犬みたいなポジションですけどね。

話を戻しますが、私の業務内容はソフトウェア開発というより、米国で作られたソフトウェアを日本向けにローカライズしたり、テストしたり、営業向けのデモを作ったり、エバンジェリスト活動をしたりといったところが主でした。

2014年頃?、米国側で GitHub を活用したオープンソース戦略が公開され、自分でも何か貢献できるチャンスが巡ってきたようなワクワク感を覚えました。


これが独自に OSS プロジェクトを始めたきっかけです。

そこから米国のエンジニアと直でコミュニケーションする機会が増え、Leaflet と言われるオープンソースの Web 地図ライブラリに自社サービスの機能を移植するプロジェクトは特に強い関心を持ってました。


米国で開催される開発者向けのカンファレンスにて、とあるコア機能の実装はやりたいけど今のところ作る予定無いからチャンスだよ!というコメントをもらい、勝手に作り始めました。

何年か前に書いた私の稚拙なコードをぜひご覧ください。


この L.esri.webmap は Esri が提供する地図サービス (ArcGIS Online) で作成できる Web 地図を Leaflet に描画するためのライブラリです。

このキャプチャは ArcGIS Online の地図作成画面です。


これを JavaScript で呼び出して Leaflet で再現。


この Web 地図にまとめられた地理データセット (WebMap と呼ばれています、そのまんま) は地図保存時に発行される ID を参照するだけで呼び出せるようになっています。

1つの Web 地図を作るにはそれなりのコーディングが必要になりますが、表示する地図データ、可視化方法、属性表示といったものが GUI からワンストップに作れることで、コードを更新せずに変更が可能な Web 地図を作れるようになっています。

JavaScript 上ではたった 1 行で完了。

// L.esri.WebMap(webmapId, { map: L.Map });
var webmap = L.esri.webMap('22c504d229f14c789c5b49ebff38b941', { map: L.map('map') });


転職してからメンテナンスしてない間に起こったこと

およそ 2 年くらい前に転職をして、それからあまり自身のプロジェクトをメンテナンスすることもなくなり、たまに上がるイシューなどに目を通す程度でした。

あるとき、ふと Fork してくれているアカウントを眺めてたら、CityOfPhiladelphia という文字を発見し、「へ?これってあのフィラデルフィア???」と思って覗いてみたところ、まさに米国のペンシルバニア州にあるフィラデルフィアでした。

まさか使ってくれてるの?と思って、npm 経由で使っているプロジェクト (layerboard) を探し当てると、なんと自治体公式サイトで使われているジャマイカ!!!


どひゃー。

この OpenMaps はフィラデルフィアが公開している地理系 (位置情報系) のオープンデータを参照したり、ダウンロードしたりできるサイトらしいです。

自治体サイトにしてはかなり高機能。


これだけの地理データを読み込んだり、初期の表示非表示、可視化表現、属性ポップアップなどのチューニングは全くコーディングせずにできているわけです。

太平洋の向こう側でなんでもいいから活用されるといいなと思ってたのが、予期せず念願叶った瞬間でした。

嬉しい反面、CityOfPhiladelphia が Fork して手直ししてる跡が見えたりすると…全く手をつけてなくてごめんなさい!!


データ可視化の本を出版します (宣伝)

こんな感じで Web エンジニアと地図やデータ可視化の強みを活かして、色々やってきました・やっています。

これは完全なる宣伝なのですが、5 月に技術評論社よりデータ可視化の本を共著で出版します!


地図に限らず、データ可視化ツールごとに章が分かれていて、レシピ集のような本に仕上がっています。

私は冒頭で少し紹介した ArcGIS Online という地図作成サービスを使って東京23区の保育園事情をデータで可視化する方法について書いています。

ちなみに、この本で取り上げる内容は基本「コードを書かない」というルールなんですが、データ可視化表現のバラエティやそれを実現するツール群を眺めるだけでも読み応えあります。


この記事を書いてて、OSS もやりたいなーって気持ちが再燃してきたので、仕事としてできる道を探ってみようと思っています。

Twitter やってるので、地図やデータ可視化に興味のあるエンジニアは気軽に絡んでくださ〜い!


この記事が気に入ったらサポートをしてみませんか?