カテゴリー
SugiBlog Webデザイナー・プログラマーのためのお役立ちTips

指定した座標から一番近い場所のストリートビューを表示する

グーグルストリートビューで、指定した座標が建物上だったり、ストリートビューが提供されていない場所だった場合、そこから一番近い場所のストリートビューを表示する方法があります。

GoogleMap APIのバージョンが異なると書き方が違ってくるので、その違いを紹介。

JavaScriptのクラスとして定義しています。

バージョン2の場合、以下のようにしていました。

var stViewClass = {

    panoramaOptions: {
        latlng: new GLatLng({緯度}, {経度}),
        pov: {
            heading: 0,
            pitch: 0,
            zoom: 1
        }
    },

    makeStreetView: function(id)
    {
        stPanorama = new GStreetViewPanorama(document.getElementById(id), this.panoramaOptions);

        stClient = new GStreetviewClient();
        stClient.getNearestPanoramaLatLng(this.panoramaOptions.position, function(latlng) {
            if (latlng != null)
            {
                stPanorama.setLocationAndPOV(latlng);
            }
        });
    }

}

バージョン3の場合、以下のような記述になります。 続きを読む…»

4,764 views

Ajax レスポンス処理の注意点

Ajaxを使用して通信し、得た結果を処理するときの注意点。

サーバーサイドでオブジェクト等を生成して返し、それをeval処理する際、
無効な改行が含まれるとエラーが発生することがあります。

具体的には「終了していない文字列型の定数です。」とスクリプトエラーが発生してしまいます。

例えば、PHPで単純に以下のようなデータを出力するとします。

echo "var a = \"文字列\";";

それをJavaScriptでeval処理すると

eval(responseText);
alert(a);

「文字列」というアラートが表示される。
続きを読む…»

6,992 views

GoogleMaps JavaScript API v3 日本語リファレンス

https://developers.google.com/maps/documentation/javascript/services?hl=ja

2,525 views

GoogleMap v3のmapオブジェクトのイベント

イベント 引数 説明
bounds_changed None このイベントは、ビューポートの境界が変更されると発生します。
center_changed None このイベントは、地図の中心プロパティが変更されると発生します。
click MouseEvent このイベントは、ユーザーが地図をクリックすると発生します(ただしマーカーや情報ウィンドウをクリックした場合には発生しません)。
dblclick MouseEvent このイベントは、ユーザーが地図上でダブルクリックすると発生します。この直前には、クリック イベントも発生します。
drag None このイベントは、ユーザーが地図をドラッグしている間に繰り返し発生します。
dragend None このイベントは、ユーザーが地図のドラッグを停止すると発生します。
dragstart None このイベントは、ユーザーが地図のドラッグを開始すると発生します。
idle None このイベントは、移動またはズームの後に地図がアイドルになると発生します。
maptypeid_changed None このイベントは、map TypeId プロパティが変更されると発生します。
mousemove MouseEvent このイベントは、ユーザーが地図コンテナ上にマウスオーバーすると発生します。
mouseout MouseEvent このイベントは、マウスが地図コンテナから離れると発生します。
mouseover MouseEvent このイベントは、マウスが地図コンテナ内に入ると発生します。
projection_changed None このイベントは、投影が変更されると発生します。
resize None DIV のサイズが変更される場合、デベロッパーは地図でこのイベントをトリガする必要があります: google.maps.event.trigger(map, ‘resize’)
rightclick MouseEvent このイベントは、地図のコンテナで DOM コンテキストメニュー イベントが発生すると発生します。
tilesloaded None このイベントは、表示タイルで読み込みを終了すると発生します。
zoom_changed None このイベントは、地図のズーム プロパティが変更されると発生します。
3,816 views

Google Static Map

imgタグを使って静的な画像を取得する。
mapprintは正式な方法ではないようだ。

<img src="http://maps.google.com/staticmap
?center=35.65641,139.699477
&amp;markers=35.65660,139.699477,red
&amp;zoom=16
&amp;size=500x300
&amp;key=[ここに Key を記述]">

・center(必須):マップの中央の座標を緯度と経度で指定します(例:center=35.65641,139.699477)
・zoom(必須):ズームレベルを0~19の間で指定します(例:zoom=13)
・size(必須):表示するマップのサイズを幅×高さで指定します。なお、指定できる地図の最大の大きさは512×512です
・maptype(オプション):マップの表示タイプを指定します。値はroadmapとmobileの2種類で、roadmapは標準のマップ表示、mobileは携帯用に見やすくした表示となります。roadmapがデフォルトとなります。
・markers(オプション):マーカーをマップ上に配置します。マーカーを指定した場合、centerやzoomは指定しなくても構いません。指定で きる内容は、マーカーの緯度・経度、マーカーの色(red,blue,green)、マーカーの文字(a-z)を指定できます。また、複数のマーカーを指 定するときは、|(パイプ、%7C )で区切ります。
・key(必須):Google Maps API キーを指定します。

1,756 views