PHPで8分の1メッシュコードを取得する関数を作成しました
function calculateMeshCode($lon, $lat){
$p = floor(($lat * 60) / 40);
$a = fmod($lat * 60.0, 40);
$q = floor($a / 5);
$b = fmod($a, 5);
$r = floor(($b * 60) / 30);
$c = fmod($b * 60, 30);
$s = floor($c / 15);
$d = fmod($c, 15);
$t = floor($d / 7.5);
$e = fmod($c, 7.5);
$tt = floor($e / 3.75);
$u = floor($lon - 100);
$f = $lon - 100 - $u;
$v = floor(($f * 60) / 7.5);
$g = fmod($f * 60, 7.5);
$w = floor(($g * 60) / 45);
$h = fmod($g * 60, 45);
$x = floor($h / 22.5);
$i = fmod($h, 22.5);
$y = floor($i / 11.25);
$j = fmod($h, 11.25);
$z = floor($j / 5.625);
$m = ($s * 2) + ($x + 1);
$n = ($t * 2) + ($y + 1);
$o = ($tt * 2) + ($z + 1);
$mesh = "" . $p . $u . $q . $v . $r . $w . $m . $n . $o;
return $mesh;
}
逆に取得したメッシュコードをmapboxに描画するやり方は地域メッシュコードから緯度経度を取得してMapboxにポリゴンを描画に記載しています。