投稿者「TsuruNoTsurugi」のアーカイブ

全地球 札幌住所化システム

誰しも札幌の綺麗な碁盤の目がずっと続いたらいいのに...と思ったことはありますよね?それを実現したのが「全地球 札幌住所化システム」です.

地図上の点をタップするとおなじみの(?)「北/南n条西/東m丁目」の表示が得られます.今回はこの「全地球 札幌住所化システム」の内部でどのようなことをしているのか,どのような限界があるのかなどを解説します.

作成の経緯

毎年変なWebアプリ(n年度大学入学共通テストまでのカウントダウンなど)を作っている一環として作りました.

札幌に住んで1年,札幌市の住所システムを至上だと思ってきました.2組の数字と南北・東西で座標を指定できるのは素晴らしいものです.これを日本,さらには世界に延長して提供出来たら面白いのではないか.そう考えて作ったのが始まりです.

思い立ったが吉日,ということで1日経ったら出来てました.

内部で何をしているのか

一言で言えば「札幌中心の正距方位図を直交座標に直して札幌市のタイルを計算している」ということになります.この試みは言わば地球平面説の上でタイルを敷き詰める行為と同じです.

北海道中心ですとメルカトル図法をそのまま使えばいいですが,残念なことに地球は球なのでそううまくはいきません.正距方位図法を使うと地球儀の上でずっと北に進むとどこに行くのかという情報が得られます.本システムはこれを利用しているわけです.

札幌中心の正距方位図

札幌中心の正距方位図は下の図のようになっています(どこでも方位図法を使用して作図).これを中心に直交座標(普通の座標(?)・x軸とy軸が直交した座標系・デカルト座標)を敷きます.

上の図のように札幌中心地からの距離dと札幌から見た北極点方向とのなす角θを使って直交座標に直すと

x=dsinθy=dcosθx=-d\sin\theta \quad y=d\cos\theta

となります.このxとyを札幌市のタイル延長に直して札幌市の住所表示を得ています.

札幌市は傾いている

札幌市は下に示す国土地理院の地図のように磁北線を基準に作られています.図は真上が真北です.したがって,札幌市の延長を作るにはこの「磁北線の傾き」である「9度40分」を考慮する必要があります.

上で示したθに9度40分をいれて調節すれば問題ないです.

道路幅が一定ではない

今回のシステムでは札幌市のタイルを「65.5間」(60間と道路幅11間の半分)の正方形ブロックとして考えました.しかしながら,札幌市の道路幅は一定ではなく,例えば北18条の環状通などは道路幅が大きく,1ブロック65.5間を逸脱しています.

さらに,北18条以北では1条の南北方向の大きさが大きくなっています.

このように,札幌市は厳密な碁盤の目(というより綺麗なタイル)になっていないのです.本システムは仮に「札幌市が真の碁盤の目だったら」という前提で構築されているのです.

おわりに

技術的な話をすると本システムはHTMLファイル1本で動いています.JavaScriptライブラリに感謝です.

多くの人に遊んでいただき,うれしく思っております.これからも変なWebアプリを作っていきます.

(2026年・札幌にて)

n年度大学入学共通テストまでのカウントダウン

n年度大学入学共通テストまでのカウントダウンを作りました。

以下のサイトで試せます。(kougakubu.tsuru-no-tsurugi.tokyo内)

【n年度大学入学共通テストまでのカウントダウン】

124519年度大学入学共通テストまでのカウントダウン
function getFirstSaturday(year) {
    var date = new Date(year, 0, 13);
    var day = date.getDay();
    return new Date(year, 0, 13 + (6 - day));
}

1月13日以降の初めの土曜日・日曜日に本試験が実施されるので、適当にその日を取得してカウントダウンするようにしています。

2024共テ数ⅠAの謎タイマー

2024年の共通テスト数学Ⅰ・A本試では、大問4(整数・選択問題)にて、「謎タイマー」が登場しました。

「謎タイマー」とは

問題はこちら(大学入試センターが公開したのをアーカイブ保存しました。)から閲覧できます。

要は、一般的なストップウォッチをn進数で表したものです。(タイマーはカウンドアップもタイマーと言うらしい。)

これが新過程になる前の最後の共通テストでした。さらに、新しい学習指導要領では、「整数」(人間と数学的活動)は入らないので、当分出ない共テセンターの整数問題でした。

作ってみた

プログラム部分は全く問題なく、普通のタイマーを作った後に「10進法からn進法」に変えてあげる関数に突っ込んで終わりです。

大変だったのはビジュアル部分で、かなり共テの実物に似せました。全部CSSで作りました。

公開

このリンクで、「kougakubu.」内で公開しているのでぜひご覧ください。

共通テスト謎タイマー