• 締切済み

グーグルマップのストリートビューを適切に表示したい

はじめまして。 ウェブプログラミング初心者です。 ビルの情報を集めたウェブサイトを制作中の者です。 それぞれのビルのグーグルマップとストリートビューを表示したいのですが、 ストリートビューで建物内の店舗が表示されるものがあり どのように調整したらよいか困っています。 道路を表示させるための記述などあるのでしょうか。 下記にソースを添付させていただきます。 ご教示いただければ幸いです。 何卒どうぞよろしくお願いいたします。 <!-- 住所から緯度経度を取得する --> <?php $query =$address; $query = urlencode($query); $url = "http://www.geocoding.jp/api/"; $url.= "?v=1.1&q=".$query; $fp = fopen($url, "r"); while(!feof($fp)) { $line.= fgets($fp); } fclose($fp); $xml = simplexml_load_string($line); ?> <!-- 取得した緯度経度をJavaスクリプト内に入れて地図とストリートビューを表示 --> <script type="text/javascript"> // 変数群 var map,svp; //-------------------------------------------- //初期設定(ページを読み込んだ時に実行する関数) //-------------------------------------------- function initialize() { // 緯度・経度変数 var latlng = new google.maps.LatLng(<?php echo $xml->coordinate->lat; ?>,<?php echo $xml->coordinate->lng; ?>); // 地図のオプション設定変数 var myOptions = { // 向き heading: -20, // 初期のズーム レベル zoom: 17, draggable: false, // 地図の中心点 center:latlng, // 地図タイプ mapTypeId: google.maps.MapTypeId.ROADMAP }; //地図オブジェクト生成 map = new google.maps.Map(document.getElementById('map'), myOptions); // ストリートビューオブジェクト生成 svp = new google.maps.StreetViewPanorama( document.getElementById('svp'),{ position : map.getCenter() }); // ストリートビューオブジェクト詳細設定 svp.setPov({heading: -20, pitch: 0, zoom: 0}); // マップとストリートビューの一致させる為の記述 map.setStreetView(svp); } // function initialize() // ページを読み込んだ時にinitialize()を実行 google.maps.event.addDomListener(window, 'load', initialize); </script>

みんなの回答

回答No.2

逆に情報提供頂き、ありがとうございます。 location: point, radius: 50, //検索半径、数値も変えてみた preference: google.maps.StreetViewPreference.NEAREST, source: google.maps.StreetViewSource.OUTDOOR としており、東京駅付近で試しているのですが、少し道路から 離れた所をクリックするとインドアを拾ってしまいます。 当方としては、インドアを完全排除したいのですが。

回答No.1

>それぞれのビルのグーグルマップとストリートビューを表示したいのですが、 >ストリートビューで建物内の店舗が表示されるものがあり >どのように調整したらよいか困っています。 >道路を表示させるための記述などあるのでしょうか。 私も同様の問題に当り、こちらの情報を参考にしましたが、うまくいきません。 http://d.hatena.ne.jp/scientre/20150331/streetview_image 要はインドアとアウトドアのビューの選択がうまくできないようです。 グーグル公式サイトにも本件に関する情報がありません。 しばらく情報待ちの状態です。

MIKIKO740128
質問者

お礼

コメントありがとうございました! 返信が遅くなり、申し訳ありません。 私もいろいろ調べたのですが、情報がみつからず、 結局、うまくいっているサイトのソースを見て 下記で改善されました。 <div id="wrapper" style="overflow:visible;"> <div id="map"></div> <script type="text/javascript" src="http://maps.google.com/maps/api/js?key="></script> <script type="text/javascript"> (function(){ var latlng = new google.maps.LatLng(<?php echo $xml->coordinate->lat; ?>,<?php echo $xml->coordinate->lng; ?>); var myOptions = { zoom: 15 , center: latlng , mapTypeId: google.maps.MapTypeId.ROADMAP , scrollwheel: false }; var map_01 = new google.maps.Map( document.getElementById("map") , myOptions ); var marker = new google.maps.Marker({ position: latlng, map: map_01, icon: new google.maps.MarkerImage('img/map.png',new google.maps.Size(58,61),new google.maps.Point(0,0),new google.maps.Point(19,60)) }); }()); </script> <div id="svp_area"></div> <script type="text/javascript"> (function(){ var point = new google.maps.LatLng(<?php echo $xml->coordinate->lat; ?>,<?php echo $xml->coordinate->lng; ?>); var pano2; var panoramaDisp = function(id, latlng){ return new google.maps.StreetViewPanorama( document.getElementById(id), { position: latlng, pov: {heading: 165,pitch: 0}, zoom: 1 } ); } var viewS = new google.maps.StreetViewService; viewS.getPanorama( { location: point, preference: google.maps.StreetViewPreference.NEAREST, source: google.maps.StreetViewSource.OUTDOOR }, function(data, status){ if(status=="OK") pano2 = panoramaDisp("svp_area", data.location.latLng); } ); })(); </script> </div> StreetViewSource.OUTDOORと入っているところが ポイントでしょうか。 よろしかったら試してみてください。

関連するQ&A

  • GoogleMapsAPIのストリートビュー

    GoogleMapsAPIでマーカーをストリートビューで表示させたい GoogleMapsAPIでマーカーを追加し移動もできるようにしましたが、 このマーカーのストリートビューを別窓で表示させる方法を教えていただけないでしょうか マーカーは人型のアイコンではなく、追加したマーカーです よろしくお願いします 以下、ソースです /////////////////////////////////////////////// <script type="text/javascript"> function initialize() { var map = new google.maps.Map( document.getElementById("gMap"),{ zoom : 16, center : new google.maps.LatLng(35.688272,139.696459), mapTypeId : google.maps.MapTypeId.ROADMAP, streetViewControl : true } ); var marker = new google.maps.Marker({ position: new google.maps.LatLng(35.688272,139.696459), map: map, draggable : true }); } </script> <style> #gMap{ width: 900px; height: 500px; } #View{ width: 900px; height: 300px; border: 1px solid #000; /* この枠線内にストリートビューを表示させたい */ } </style> </head> <body onload="initialize()"> <div id="gMap"></div> <div id="View"></div> </body> ///////////////////////////////////////////////

  • gmap ストリートビュー

    普通の地図とストリートビューを両方表示したいですが。 どうもストリートビューのほうが不具合が生じます。 ストリートビューがない場所に近いところのストリートビューを表示したいですが、どうすればいいですか? IEで見ると、ストリートビューの方角標識がズレてて、修正方法を教えていただけますでしょうか? よろしくお願いします。 <script type="text/javascript"> <!-- var map_canvas; function initialize() { var initPos=new google.maps.LatLng(35.658613,139.745525); var mapOptions = { center:initPos, zoom:14, mapTypeId : google.maps.MapTypeId.ROADMAP, streetViewControl: true, mapTypeControl : true, mapTypeControlOptions : { style : google.maps.MapTypeControlStyle.DROPDOWN_MENU } }; map_canvas = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); var request = { address: "千葉県佐倉市ユーカリが丘4-575-22" }; var geocoder = new google.maps.Geocoder(); geocoder.geocode(request, procGeocodeCallback); } function procGeocodeCallback(results,status){ var response; if(status == google.maps.GeocoderStatus.OK){ for (var i = 0; i < results.length; i++){ map_canvas.setCenter(results[i].geometry.location); openInfoWnd(results[i].geometry.location, results[i].formatted_address.replace(/^日本, /, '')); var markerOpts = { position : results[i].geometry.location, map : map_canvas }; var marker = new google.maps.Marker(markerOpts); // ストリートビュー表示 var svp = new google.maps.StreetViewPanorama( document.getElementById("street"), { position : results[i].geometry.location, pov : { heading : 90, // 東 pitch : 20, // 斜め上 zoom : 0.5 // ズームアウト } }); map_canvas.setStreetView(svp); // ストリートビューの方角などを求める function checkSTV(){ var pov = svp.getPov(); var hd = pov.heading; // 方角 var pt = pov.pitch; // 見上げる角度 var zm = pov.zoom; // ズーム alert("方角:"+hd+"、角度:"+pt+"、ズーム:"+zm); } } } } function openInfoWnd(latlng,txt){ if( txt === undefined) { txt =""; } else { txt += "<BR>"; } var info = new google.maps.InfoWindow(); info.setContent("<div id=\"gmap_d\">" + "<span>" + "ユーカリが丘" + "</span>" + txt + "</div>".toString()); info.setPosition(latlng); info.open(map_canvas); } google.maps.event.addDomListener(window,"load",initialize); --> </script> <div id="map_canvas" style="width: 450px; height: 300px; float:left"></div> <div id="street" style="width: 300px; height: 300px; float:left"></div>

  • 緯度と経度をグーグルMAPに入れ込む

    緯度と経度を利用して、グーグルMAPを見る方法を探しています。 グーグルMAPは、 https://www.google.co.jp/maps/place/ で見ることができますが、これに、 https://www.google.co.jp/maps/place/@40.59875,130.38725,13z とやると、その緯度と経度の場所を見ることが出来るようです。 さらに、13Zとかいうのは、地図の大きさを示しているみたいです。 これで緯度と経度からグーグルMAPを表示することは出来るようになったのですが、ピンを立たせることができません。 このURLに何を付け加えればピンを立たせることが出来るでしょうか?

    • ベストアンサー
    • HTML
  • google map api v3の表示の不具合について教えてください

    google map api v3の表示の不具合について教えてください。 google map api v3を実装してマーカーをつけたのですが、あれこれ直していたら表示されない箇所ができてしまいました。(下記画像参照) ソースは下記です。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>××</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="css/page.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> google.maps.event.addDomListener(window, 'load', function() { var mapdiv = document.getElementById("map"); var myOptions = { zoom: ズーム, center: new google.maps.LatLng(緯度, 経度), mapTypeId: google.maps.MapTypeId.ROADMAP, scaleControl: true }; var map = new google.maps.Map(mapdiv, myOptions); var marker = new google.maps.Marker({ position: new google.maps.LatLng(緯度, 経度), map: map, title: '名称' }); }); </script> </head> <div id="map"></div> お手数かけて申し訳ありませんが、ホームページ初心者なのでご指導いただければ助かります。 なにとぞよろしくお願い致します。

  • googleマップのストリートビュー

    いつもgoogleマップのストリートビューを利用するんですが以下のようなエラーメッセージが出てしまいます。ブラウザをIE8にして見ると住所検索などしてみたい場所の地図を開きストリートビューをすると1回目は見れるんですが違う場所をストリートビューで見ようとするとエラーが出ます。何か対処法は無いのでしょうか? メッセージ: オブジェクトでサポートされていないプロパティまたはメソッドです。 ライン: 1 文字: 1 コード: 0 URI: http://maps.google.co.jp/maps?sourceid=navclient&ie=UTF-8&hl=ja&rlz=1T4GGLL_jaJP312JP312&q=%e6%96%b0%e5%a4%a7%e9%98%aa%e9%a7%85

  • Google Maps APIの動作が???

    いつもお世話になっております。 Google Maps APIで、ピクセル単位で緯度・経度を出す関数fromDivPixelToLatLng()について質問させてください。 少々簡略化していますが、現在下記のようなコードで緯度、経度を表示させようとしています。 function showXY(){ var LatLng = map.fromDivPixelToLatLng(new GPoint(100,100)); document.getElementById("show_x").innerHTML = LatLng.x; document.getElementById("show_y").innerHTML = LatLng.y; } 地図を動かさなければこれでも動きます。 ところが、地図の中心をドラッグで移動させた後にこのコードを起動させるとおかしなことになります。緯度・経度が変わらないのです。 移動させた後の地図の経度・緯度を算出させたいのですが、どうすれば良いのでしょうか?

  • Google Map のストリートビューが見えない

    MacPro Leopard early 2008 OS X.5.8 から Snow Leopard OS X.6.8 にバージョンアップしてから、Safari でGoogle Map のストリートビューが見ることが出来なくなりました。どのようにしたら見られるようになりますか? 地図だけでしたら問題無く見ることが出来ます。

    • ベストアンサー
    • Mac
  • 【Googleマップ】ストリートビューについて、で

    Googleマップのストリートビューについての質問です。 ストリートビューの画像にない建物があるの理由は何なのでしょうか? 詳しい方、お願い致します。

  • googleマップのストリートビューが使えなくなりました。

    こんにちは。よろしくおねがいします。 googleのストリートビューが使えなくなりました。 以前は、マップ上の青い道路を選んで、利用できたと思います。 ストリートビューに入る手順を教えてください。 (win-vista)

  • Google mapV3 display=non

    失礼いたします。 Google maps V3 をタブメニューの中で表示させたいのですが、初期状態がdisplay=”none”のため、うまく表示できません。 Mapのタブメニューを初期状態で開いている display=”list-item” の状態だとうまく表示できています。 ・初動 display:none   ↓ ・Map呼び出し前にjsにて強制表示 display:block   ↓ Mapのtilesloadedイベント完了後に display:none のような流れで回避できるようですが、javascript の知識がないのでたいへん困っております。 現在 <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript"> google.maps.event.addDomListener(window, 'load', function() { var mapdiv = document.getElementById('map_canvas'); var myOptions = { zoom: 17, center: new google.maps.LatLng(緯度, 経度), mapTypeId: google.maps.MapTypeId.ROADMAP, scaleControl: true, }; var map = new google.maps.Map(mapdiv, myOptions); var marker = new google.maps.Marker({ position: new google.maps.LatLng(緯度, 経度), map: map, title: 'タイトル' }); }); </script> となっております。 たいへんお手数ですが、どなたかご教授頂けると助かります。