Skip to content

Instantly share code, notes, and snippets.

@kurain
Created October 27, 2009 10:18
Show Gist options
  • Save kurain/219471 to your computer and use it in GitHub Desktop.
Save kurain/219471 to your computer and use it in GitHub Desktop.
// ==UserScript==
// @name Your Location Bookmarks
// @namespace kurain.net
// @include http://b.hatena.ne.jp/*
// ==/UserScript==
(function () {
var KEY = 'ABQIAAAAesrOSnfHiupcC1SX4HlcpxS4Ub5LNodPnSvUeVQvSorjE2hlyhSzO7n6dOEDwvDXs9DXsJW21wCMkQ';
var prefectures = {
"北海道" : "HOKKAIDO",
"青森県" : "AOMORI",
"岩手県" : "IWATE",
"宮城県" : "MIYAGI",
"秋田県" : "AKITA",
"山形県" : "YAMAGATA",
"福島県" : "FUKUSHIMA",
"茨城県" : "IBARAKI",
"栃木県" : "TOCHIGI",
"群馬県" : "GUNMA",
"埼玉県" : "SAITAMA",
"千葉県" : "CHIBA",
"東京都" : "TOKYO",
"神奈川県" : "KANAGAWA",
"新潟県" : "NIIGATA",
"富山県" : "TOYAMA",
"石川県" : "ISHIKAWA",
"福井県" : "FUKUI",
"山梨県" : "YAMANASHI",
"長野県" : "NAGANO",
"岐阜県" : "GIFU",
"静岡県" : "SHIZUOKA",
"愛知県" : "AICHI",
"三重県" : "MIE",
"滋賀県" : "SHIGA",
"京都府" : "KYOTO",
"大阪府" : "OSAKA",
"兵庫県" : "HYOGO",
"奈良県" : "NARA",
"和歌山県" : "WAKAYAMA",
"鳥取県" : "TOTTORI",
"島根県" : "SHIMANE",
"岡山県" : "OKAYAMA",
"広島県" : "HIROSHIMA",
"山口県" : "YAMAGUCHI",
"徳島県" : "TOKUSHIMA",
"香川県" : "KAGAWA",
"愛媛県" : "EHIME",
"高知県" : "KOCHI",
"福岡県" : "FUKUOKA",
"佐賀県" : "SAGA",
"長崎県" : "NAGASAKI",
"熊本県" : "KUMAMOTO",
"大分県" : "OITA",
"宮崎県" : "MIYAZAKI",
"鹿児島県" : "KAGOSHIMA",
"沖縄県" : "OKINAWA"
};
function jumpLink( dist ) {
window.location.href = dist;
}
function getName ( json ) {
var data = eval(json);
var kanjiName = data.result.prefecture.pname;
var ucName = prefectures[kanjiName];
var locationPage = 'http://b.hatena.ne.jp/location/' + ucName.toLowerCase();
jumpLink( locationPage )
}
function getPrefecture (lat, lng) {
var url = 'http://www.finds.jp/ws/rgeocode.php?lat=' + lat + '&lon=' + lng + '&jsonp=getName';
GM_xmlhttpRequest({
method: "GET",
url: url,
onload: function(x){eval(x.responseText)}
});
}
function getLocation (e) {
e.preventDefault();
navigator.geolocation.getCurrentPosition(function(position) {
getPrefecture(position.coords.latitude, position.coords.longitude);
});
}
function drawLocationLink () {
var navLink = document.createElement('li');
var anchor = document.createElement('a');
anchor.setAttribute('id', 'location-page-link' );
anchor.setAttribute('href', 'location')
anchor.appendChild( document.createTextNode('地域') );
anchor.addEventListener('click', getLocation, true);
navLink.appendChild(anchor);
var target = document.getElementById('header-navigation');
var posTarget = target.childNodes[2];
target.insertBefore(navLink, posTarget);
};
if (navigator.geolocation) {
drawLocationLink();
}
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment