例−25:Googleマップ・ストリート・ビューを実装する
Googleマップ・ストリートビュー
| サンプルプログラム |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Google Maps JavaScript API Example</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=[あなたのAPIキー]" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[
var svObj=null;
var svContainer,marker, infoWnd;
function load(){
//===============================//
// 地図の初期化 //
//===============================//
//コンテナの取得
var container = document.getElementById("map");
//地図の作成
var map = new GMap2(container);
//地図の表示
var point=new GLatLng(35.658587, 139.745425);
map.setCenter(point, 17);
//マップコントローラを付ける
map.addControl(new GLargeMapControl());
//===============================//
// ストリートビューの初期化 //
//===============================//
//ストリートビュー用のコンテナ
svContainer = document.createElement("div");
svContainer.style.width="300px";
svContainer.style.height="300px";
//GStreetviewOverlayの追加
map.addOverlay(new GStreetviewOverlay());
//===============================//
// マーカーの初期化 //
//===============================//
//マーカーを作成
marker = new GMarker(point,{draggable: true});
//マーカーをクリックしたら、ふきだしを表示する
GEvent.addListener(marker, "click", showStreetView);
//マーカーがドラッグを開始したら、ふきだしを閉じる
GEvent.addListener(marker, "dragstart", function(){
map.closeInfoWindow();
if(!svObj && svObj!=undefined){
//GStreetViewPanoramaの削除
//(メモリ開放)
svObj.remove();
}
});
//マーカーのドラッグが終了したら、マーカーを擬似クリック
GEvent.addListener(marker, "dragend", function(){
GEvent.trigger(marker, "click");
});
//マーカーの追加
map.addOverlay(marker);
//===============================//
// 初期位置の表示 //
//===============================//
//マーカーのふきだしを開く
marker.openInfoWindowHtml("<b>青い線の上にドラッグ&ドロップしてください</b>");
}
function showStreetView(){
//===============================//
// ストリートビューの表示 //
//===============================//
//マーカーの現在位置を取得
var markerPos = marker.getPoint();
//GStreetviewPanoramaの作成
svObj = new GStreetviewPanorama(svContainer,{latlng:markerPos});
//ふきだしの表示
marker.openInfoWindow(svContainer);
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 500px; height: 500px"></div>
</body>
</html>
|