css3とjavascriptで回します。
htmlで以下のように箱を用意し
<div id="mapOuterCanvas"> <div id="map-canvas"> <p></p> </div> </div>
cssで大きさ等を指定しておき
<style> #map-canvas{ position: absolute; width: 100%; height: 960px; top: -100%; left: 0%; background-size: cover; } #mapOuterCanvas { position: relative; width: 100%; height: 340px; background: #333; overflow: hidden; } </style>
jsで回す。
// rotate map canvas var dir=10; var mapCanvas = document.getElementById("map-canvas"); mapCanvas.style.webkitTransform = "rotate("+ dir +"deg) "; mapCanvas.style.MozTransform = "rotate("+ dir +"deg)"; mapCanvas.style.transform = "rotate("+ dir +"deg)";
こちらで実演:みんなでつくる避難マップ にげるーと
端末のコンパスを使って方角を取得し、それを使って地図とコンパスを回している。
下のコンパスは方角を表示しており、「地図を回転する」を押すと地図自体が回転する。
ただし、回転した地図のクリックは、回転していない状態でクリックした座標を認識するので、スクロールやクリック位置がずれている。そのため、動かす時は「地図を回転しない」をクリックしてからにしたほうがいいかも。
使い勝手を考慮し、ボタンでtoggleするようにした。
回転しない状態
回転した状態
これで、青い線が前に見えるようにして、その通りに進めば目的地にたどり着ける。
災害時とか、知らないところでとか、パニックしているときにはけっこう大事な機能じゃなかろうか。