動機
- 気軽に心だけ旅をしたい
- ランダムを楽しみたい
3種類 + ストビュー
- 地球ダーツ
- 日本ダーツ
- 関東・東海ダーツ
- ストリートビュー表示(相互)
ズームレベルは2z(1目盛:2,000km) から 21z(1目盛:5m)
コード
1. 地球ダーツ
- 南極率が高すぎたので南緯55~85は出ないよう設定
- 緯度85~90の極付近は南北とも提供なし
- PC用にズームアップ分岐を入れたがスマホでは必要なかった
- 陸地に当たる確率は半分以下※約7割が海
1a. スマホ用@移動のみ(世界)
javascript:(()=>{if(!confirm('Jump?'))return;const base=10**7;const ido=Math.floor((Math.random()*170-85)*base)/base;const keido=Math.floor((Math.random()*360-180)*base)/base;const url=`https://www.google.co.jp/maps/@${ido},${keido},6z/data=!3m1!1e3`;window.open(url,'_self')})()
1b. PC用@ズーム選択あり(世界)
javascript:(()=>{const regex=/\,((\d|11|12)?(\.\d{1,10})?)z|\,\d{5,8}m/;const isFarMap=location.href.match(regex)??!1;if(!isFarMap){jump()}else if(!confirm('[OK]: Zoom Up\n[Cancel]: Other Place')){jump()}else{window.open(location.href.replace(regex,'\,15z'),'_self')} function jump(){if(!confirm('Jump?'))return;const base=10**7;const ido=Math.floor((Math.random()*140-55)*base)/base;const keido=Math.floor((Math.random()*360-180)*base)/base;const url=`https://www.google.co.jp/maps/@${ido},${keido},5z/data=!3m1!1e3`;window.open(url,'_self')}})()
1a. コード全体/スマホ用(移動のみ)
function worldTravel()
{
if(!confirm('Jump?')) return;
const base = 10**7;// 小数点以下7桁
const ido = Math.floor( (Math.random()*140-55) * base ) / base;
const keido = Math.floor( (Math.random()*360-180) * base ) / base;
const url = `https://www.google.co.jp/maps/@${ido},${keido},6z/data=!3m1!1e3`;// ズームレベル:6z
window.open( url, '_self' );
}
1b. コード全体/PC用(ズーム選択あり)
function worldTravelwithZoom()
{
const regex = /\,((\d|11|12)?(\.\d{1,10})?)z|\,\d{5,8}m/;
const isFarMap = location.href.match(regex) ?? false;
if(!isFarMap) {
jump();
} else if( !confirm('[OK]: Zoom Up\n[Cancel]: Other Place') ) {
jump();
} else {
window.open( location.href.replace(regex, ',15z') , '_self');// ズームレベル:15z
}
function jump() {
// ここはスマホ用と同一
}
}
2. 日本ダーツ
- 北海道~九州が収まる程度の緯度経度に限定
- 世界版より一目で分かる土地が多いため縮尺は大きめ設定
- 陸に当たる可能性低い/隣国も出る
ブクマ用
2a. スマホ用@移動のみ(日本)
javascript:(()=>{if(!confirm('Jump?'))return;const base=10**7;const ido=Math.floor((Math.random()**14+31)*base)/base;const keido=Math.floor((Math.random()*15+130)*base)/base;const url=`https://www.google.co.jp/maps/@${ido},${keido},9z/data=!3m1!1e3`;window.open(url,'_self')})()
2b. PC用@ズーム選択あり(日本)
javascript:(()=>{const regex=/\,((\d|11|12)?(\.\d{1,10})?)z|\,\d{5,8}m/;const isFarMap=location.href.match(regex)??!1;if(!isFarMap){jump()}else if(!confirm(%27[OK]: Zoom Up\n[Cancel]: Other Place%27)){jump()}else{window.open(location.href.replace(regex,%27\,17z%27),%27_self%27)} function jump(){if(!confirm(%27Jump?%27))return;const base=10**7;const ido=Math.floor((Math.random()*14+31)*base)/base;const keido=Math.floor((Math.random()*15+130)*base)/base;const url=`https://www.google.co.jp/maps/@${ido},${keido},9z/data=!3m1!1e3`;window.open(url,%27_self%27)}})()
主な変更点
const ido = Math.floor( (Math.random()*14+31) * base ) / base;
const keido = Math.floor( (Math.random()*15+130) * base ) / base;
// ズーム前を9z、ズーム後を17zに指定
3. 関東・東海ダーツ
- 前2つが海ばかり出て疲れるため、ほぼ陸地の関東~東海に限定
ブクマ用
3a. スマホ用@移動のみ(関東〜東海)
javascript:(()=>{if(!confirm('Jump?'))return;const base=10**7;const ido=Math.floor((Math.random()**1.5+35)*base)/base;const keido=Math.floor((Math.random()*3.5+136.5)*base)/base;const url=`https://www.google.co.jp/maps/@${ido},${keido},13z/data=!3m1!1e3`;window.open(url,'_self')})()
3b. PC用@ズーム選択あり(関東〜東海)
javascript:(()=>{const regex=/\,((\d|11|12)?(\.\d{1,10})?)z|\,\d{5,8}m/;const isFarMap=location.href.match(regex)??!1;if(!isFarMap){jump()}else if(!confirm(%27[OK]: Zoom Up\n[Cancel]: Other Place%27)){jump()}else{window.open(location.href.replace(regex,%27\,17z%27),%27_self%27)} function jump(){if(!confirm(%27Jump?%27))return;const base=10**7;const ido=Math.floor((Math.random()*1.5 + 35)*base)/base;const keido=Math.floor((Math.random()*3.5 + 136.5)*base)/base;const url=`https://www.google.co.jp/maps/@${ido},${keido},11z/data=!3m1!1e3`;window.open(url,%27_self%27)}})()
主な変更点
const ido = Math.floor((Math.random()*1.5+35) * base) / base;
const keido = Math.floor((Math.random()*3.5+136.5) * base) / base;
// スマホ用は13z
// PC用はズーム前を11z、ズーム後を17zに指定
4. ストリートビュー表示(相互)
- 1~3で道路や市街地に当たった際に使用
- 確認ダイアログで「OK」選択:ストリートビュー、「Cancel」選択:近接写真に遷移
- 撮影座標にマッチせず表示できない場合は、手動でストビュー人形や縮尺を操作、または再ダーツ
ブクマ用
javascript:(()=>{const url=location.href;const regex=/(@|viewpoint=)(\-?\d{0,3}(\.\d{1,8})?\,\-?\d{0,3}(\.\d{1,8})?)/;const m=url.match(regex)??!1;if(!m){alert('not work on this page.');return} let jumpTo;if(confirm('[OK]: Street View\n[Cancel]: closest pic')){jumpTo='https://www.google.com/maps/@?api=1&map_action=pano&viewpoint='+m[2]}else{jumpTo=`https://www.google.co.jp/maps/@${m[2]},19z/data=!3m1!1e3`} if(url!==jumpTo)window.open(jumpTo,'_self')})()
コード全体
function stview()
{
const url = location.href;
const regex = /(@|viewpoint=)(\-?\d{0,3}(\.\d{1,8})?\,\-?\d{0,3}(\.\d{1,8})?)/;
const m = url.match(regex) ?? false;
if(!m) {
alert('not work on this page.');
return;
}
let jumpTo;
if(confirm('[OK]: Street View\n[Cancel]: closest pic')) {
jumpTo = 'https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=' + m[2];// ストリートビュー
} else {
jumpTo = `https://www.google.co.jp/maps/@${m[2]},19z/data=!3m1!1e3`;// 近接写真(19z)
}
if(url !== jumpTo) window.open(jumpTo, '_self');
}
ブックマーク方法
Android版Chromeはブックマークのタップでは動作しないため、自分でつけたブクマ名「だーつ」等をアドレスバーに直接入力し、サジェスト欄に表示された当該ブックマークをタップすれば実行可能です。
- 「新規タブ」ページでは使用できません
- ブックマークレットの使用は自己責任でお願い致します
- 臨場感を求めて、いずれも航空写真のURLにしています。通信量にご注意下さい
- 地図表示にしたい場合は「data=!3m1!1e3」の部分を削除して下さい
- 極端な連続使用はご遠慮下さい
良き旅を!