2013年10月20日

GoogleマップでURLの短縮ができなくなった(追記あり:今は短縮可能)

(追記あり:今は短縮可能です。)

Googleマップがリニューアルしました。

Googleのいくつかのサービスは、もはやネット上におけるインフラのようなもので(もちろん、同じようなサービスを提供している他社もありますが)いわゆるデファクトスタンダードとなっています。

そのため、見た目や使い方(UI、UX)が変更されると、それが改悪ではなく改善だとしても、極端に言うと「拒否反応」が出てしまいがちです。

で、この新しくなったGoogleマップには、以前はあったURL短縮の機能がなくなっています。これは拒否反応どころではありません。

あの長ったらしいURLは、たとえば、メーラーによっては本文にコピー&ペーストしてもリンクとして認識されないことがあるからです。自分側のことならともかく、受け取った相手に正しく伝わらないのは困ってしまいます。

調べたところ、意図的に削除したわけではなく、提供するつもりだが時期は未定とのことでした。
http://productforums.google.com/forum/#!topic/maps-ja/Yx6h0UXooZs

リンク先にもあるように、しばらくはGoogle url shortener等の別の短縮URLサービスで我慢するしかないようですね。

追記

Googleマップのメイン画面右下にある歯車アイコンをクリック→
「地図を共有/埋め込む」をクリックして地図のリンクの取得やURLの短縮、地図の埋め込みが可能になっています。

ラベル:Webサービス
posted by ガトー at 12:54| Comment(0) | WEB | 更新情報をチェックする

2013年08月03日

javascript で訪問者のアクセス地域(国、都道府県、市区町村、緯度、経度)を取得する

google.loader の ClientLocation を使用することで、そのウェブサイトの訪問者の都道府県や市区町村を取得できるようです。

精度は低いので正確な判別が必要な場合には向きませんが、javascript なので使い勝手が良いです。

なお、取得できない場合は ClientLocation は null を返します。

書き方ですが、取得できた場合に実行する関数を、たとえば hogehoge() とします。

//javascript code
function hogehoge(){
var cl = google.loader.ClientLocation;
    if(cl){
        //都道府県(例:東京都)
        var todofuken = cl.address.region;
        //市区町村(例:東村山市)
        var sikuchoson = cl.address.city;
        //国名(例:Japan)
        var kuni = cl.address.country;
        //緯度
        var lat = cl.address.latitude;
        //経度
        var lon = cl.address.longltude;
    }
}

で、上記 js の後に、google.loader の api を scriptタグで置くわけですが、



このように callback を指定することで、 api を読込んだ直後に hogehoge() を実行することができます。

ラベル:javascript
posted by ガトー at 15:05| Comment(0) | WEB | 更新情報をチェックする

2012年10月11日

内部リンクの position を fixed にすると iPhone 用サイトでスムーススクロールできない(iOS5.x対象)

iPhone(iOS5) 向けのウェブサイトに、jQuery でスムーススクロールさせるための内部リンク(anchor)を置いたのですが、うまく動きません。

最初のタップでは正常にスクロールするのですが、その最初のスクロールの直後にタップしても反応せずスクロールしないのです。スムーススクロールの後に指で少しでもスクロールさせてやれば、また反応するようになります。

どうやらスクロール用の内部リンクを css で position を fixed で固定させてしまうと、このような現象が起こるようです。

回避策としては javascript でスクロール直後に body の height を1px追加してあげることにしました。もっとスマートな回避策があるのかもしれませんが。

これをスクロール直後に実行させるようにするとよい

//javascript(jQuery)の例
var newBodyHeight = $('body').height() + 1;

$('body').css({
    height: newBodyHeight
});
ラベル:iPhone javascript jquery
posted by ガトー at 17:52| Comment(0) | WEB | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。