Leaflet の縮尺スケールはマップ中央の位置を基準として表示される、ズームレベルが高い場合はまだ良いがレベルを下げて広域表示にするほど上端や下端との差異は大きくなる、ということを前の記事で書いた。
A simple scale control that shows the scale of the current center of screen (Documentation - Leaflet)
仕様ではスケール表示位置のオプションは4つのコーナーに限定されるが、チカラワザで中央の左に入れる
さらに上端と下端には、ピクセル寸法で x=20 と x=200 の位置にマーカーを付し、layerPointToLatLng() によって各マーカーの緯度経度の値を取ったうえ distanceTo() で2点間の距離を示した。
ズームアウトしてレベル5にもなれば、同じ 180 px 幅でも上下の差がとても大きい。メルカトル図法の性格がよく現れるともいえる。
中段のスケールはズームレベルに応じてインタラクティブに幅も変わるので注意深く見ていただきたいところ。
前の記事「ポリゴンの大きさと緯度の関係」でスケールについて「ズームレベル 0 ~ 5 程度の場合は無視するか、あるいは表示しないほうがよいと思っている」と私が書いたのは、つまりこういうこと。Google Maps や地理院地図を使うときも同様に注意が必要。
スケールはもともと目安に過ぎず存在感が薄いとはいえ、Google Maps も Leaflet も「取って付けた」ような感じ。ネット用途として他に適当な投影法もないので、しかたないといえば仕方ない。
地球は丸いのだから重箱の隅をつついても栓ないことだが、先の記事では説明が充分ではなかったので補完した。
「距離を測定する地図」も参照を。