座標系の擬人化プラグインをつくった

# 概要

むしゃくしゃしてやった。反省はしていない。

## 経緯

このへん

https://x.com/jtagusari/status/1901610660628414580

https://x.com/ra0kley/status/1901768846249542091

https://x.com/ra0kley/status/1902133638038528365


## つくった

https://gitlab.com/jtagusari/fun-reprojector

zipでダウンロードして，QGISのプラグインとしてインストール！
→QGISリポジトリに登録申請中。そのうちapproveされるでしょう。

プラグインを公開した後にも，擬人化界隈（笑）では動きがあったり。Web Mercatorかわいい。

https://x.com/boiledorange73/status/1902697256383627585

## 見た目

こんなかんじ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3617623/29e5ddfe-1874-4c3e-9a87-9ed1d22111a3.png)

## 機能

なんとこのプラグインでベクトルタイルの投影変換が可能！！
（中で動いているのはただの`native:reprojectlayer`）

あと，地味に日英対応。

## 画像とかフレーバーテキストとか解説とか

とりあえずいま4つだけ登録してある。

画像は上のツイートのやつを使い，フレーバーテキスト（？）とか解説はChatGPTに投げた。
~~プラグインの`img`フォルダ内にある画像ファイルとか`codes.json`を参照しているだけなので~~（`crs`フォルダに各座標系のデータを保存する形に）これを太らせていけば色々な座標系に対応可能。

## 作ってみて思ったこと

座標系の解説とかをきちんと書いていくと，これ，実はGIS初学者にスゲー良いのでは？

## もっと色々な座標系に対応したいよね

でもそこまで私の手は回らんのです。仕事とは別だし。求ム，コントリビューション。

このプラグインでは，`crs`フォルダ以下にある各座標系の情報（座標系につきフォルダひとつ）を読み込んで表示しています。

各座標系のフォルダには，`avatar.jpg`と`info.json`が保存されていて，

`avatar.jpg`はただの画像ファイル。（500x500くらいで十分）

`info.json`はアバターや座標系の情報で，`EPSG:4326`を例にとると，たとえばこんな感じになっている（修正：かんたんにした）
```json
{
  "code": "EPSG:4326",
  "avatar_title": null,
  "avatar_url": "avatar.jpg",
  "avatar_description": "I'm the standard, no matter where you go, east or west.",
  "crs_title": "World Geodetic System 1984",
  "avatar_description_ja": "東経でも西経でも、どこに行こうと俺が基準だ。",
  "crs_description": "EPSG:4326, also known as WGS 84, is the standard coordinate reference system used for global positioning and geospatial applications. It employs a geographic coordinate system (GCS) with latitude and longitude expressed in decimal degrees. WGS 84 is the reference system for GPS and is widely used in web mapping and geospatial data storage. However, due to its angular unit, calculations involving distances and areas require transformation into projected coordinate systems. The datum is continuously updated to account for tectonic movements, making it suitable for global applications but requiring local adjustments in precise geospatial analyses.",
  "crs_description_ja": "EPSG:4326、またはWGS 84としても知られている、世界的な位置決めと地理空間アプリケーションに使用される標準の座標参照系です。緯度と経度を10進度で表現した地理座標系（GCS）を使用しています。WGS 84はGPSの基準系であり、ウェブマッピングや地理空間データの保存に広く使用されています。ただし、角度単位のため、距離や面積に関する計算には投影座標系への変換が必要です。この基準系は、テクトニック運動を考慮して連続的に更新されており、世界的なアプリケーションに適していますが、精密な地理空間分析では地域ごとの調整が必要です。"
}
```

それぞれのフィールドは以下の通り。
- `code`: `EPSG:{code}`の形で記載
- `avatar_url`: アバターの画像ファイルのパス
- `avatar_description`: アバターの説明
- `crs_title`: 座標系の名称
- `crs_description`: 座標系の説明

以下はオプショナルなフィールド
- `avatar_title`: アバターのタイトル
- `avatar_subtitle`: アバターのサブタイトル

で，`avatar_description_ja`みたいに，`_ja`と付けると，ロケールが`ja`のときに表示される内容になる。


一見かなり手間がかかるんだけど，こんなかんじでプロンプトを与えると生成AIで簡単に作れる。そもそも擬人化画像も生成AIで作ることを前提。（ぴっかりん氏がGPTsを作ってたり→<https://t.co/AL3ndUbyxr>）
```
あなたは一流の地理空間データサイエンティストでありストーリーテラーです。地理空間データの初学者のために，また日々の業務の息抜きのために，解析に使われる座標系を擬人化することにしました。座標系EPSG:4326を擬人化して以下のjson形式で情報をまとめてください。
{
 "code": EPSG code, formatted as EPSG:{code}
 "avatar_description": description of the avatar, approx 100 words
 "crs_title": name of the crs
 "crs_description": description of the crs, approx 100 words
 "avatar_description_ja": アバターの説明
 "crs_description_ja": 座標系の説明
}
```

情報を埋めてリポジトリにプッシュしてもらえれば，楽しくなるのでは！？