2

GoogleマップV3APIをウェブサイトに統合しようとしています。地図にその住所のストリートビューが表示されるように、住所を読み取ってMAPAPIに設定する必要があります。

だから私は3つの点で助けが必要です。

  1. アドレス値の読み方。

    例:(var streetAddressArray = getElementsByAttribute(parent.document.forms[0], "*", "smokeid", "Address Line 1");この関数が何をするのかわかりません。貼り付けて、正確に何を探しているのかを把握してください。)

  2. マップがストリートビューを表示できるように、APIクラス/メソッドに設定された値を読み取った後。

  3. ストリートビューとして表示します。

これは私が探しているものに似ています:


私はあなたの応答Suviにとても感謝しています!これが私のプログラムです:

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">      html { height: 100% }      body { height: 100%; margin: 0; padding: 0 }      #map_canvas { height: 100% }    </style>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=KEY_VALUE &sensor=true">
</script>    
<script type="text/javascript">     
  function initialize() {  
    
   var fenway = new google.maps.LatLng(42.345573,-71.098326);
   var mapOptions = {
     center: fenway,
     zoom: 14,
     mapTypeId: google.maps.MapTypeId.ROADMAP
   };
   var map = new google.maps.Map(
   document.getElementById("map_canvas"), mapOptions);
   var panoramaOptions = {
      position: fenway,
      pov: {
        heading: 34,
        pitch: 10,
        zoom: 1
      }
    };
    var panorama = new  google.maps.StreetViewPanorama(document.getElementById("pano"),panoramaOptions);
   map.setStreetView(panorama);
                
  }    
</script> 
</head>  
<body onload="initialize()"> 
<div id="map_canvas" style="width:100%; height:100%">
<div id="pano" style="position:absolute; left:410px; top: 8px; width: 400px; height: 300px;"></div>
</div>
</body>
</html>

私はこれに関して2つの問題に直面しています。

  1. どういうわけかパノラマビューが表示できません。私のコードに問題はありますか?
  2. 地図の住所は、一連の入力フィールド(住所1行目、City and Zipなど)から取得する必要があります。マップにその特定の場所が直接表示されるように、入力フィールドのアドレスをマップに割り当てるにはどうすればよいですか?

カスタム商品を使用しています。彼らが使用しているという点で別の例があります:

var streetAddressArray = getElementsByAttribute(parent.document.forms[0], "*", "smokeid", "LossLocation_Address1");

私はターゲットに少し近づいていると思いますが、この例は機能しておらず、何もレンダリングされていません。

<!DOCTYPE html><html>  <head>    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />    <style type="text/css">      html { height: 100% }      body { height: 100%; margin: 0; padding: 0 }      #map_canvas { height: 100% }    </style>    <script type="text/javascript"    
  src="http://maps.googleapis.com/maps/api/js?key=AIzaSyBweQln0Jf5uBWvkTGSkv8AfkBdt-zZ3dE&sensor=true">    </script>    
<script type="text/javascript">     
  
  <!-- -->
  
  var geocoder;  
  var map;
  function initialize() {
    geocoder = new google.maps.Geocoder();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions = {      zoom: 8,      center: latlng,      mapTypeId: google.maps.MapTypeId.ROADMAP    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    } 
  function codeAddress() {
    var address = document.getElementById("address").value;
    geocoder.geocode( { 'address': address}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        map.setCenter(results[0].geometry.location);
        var marker = new google.maps.Marker({ map: map, position: results[0].geometry.location});
       } 
        else 
       {
        alert("Geocode was not successful for the following reason: " + status);
       }   
      });
     }
 <body onload="initialize()">
 <div id="map_canvas" style="width: 320px; height: 480px;">
 </div>  
<div> 
   <input id="address" type="textbox" value="Sydney, NSW">
   <input type="button" value="Encode" onclick="codeAddress()">
</div>
</body>
  <!-- -->
</html>

何が悪かったのか手伝ってくれませんか。

4

2 に答える 2

1

あなたの2つの問題への答え:

  1. どういうわけか、パノラマ ビューを表示できません。私のコードに問題はありますか?

これは</div>、map_canvas を閉じるとパノラマも囲まれているために発生しています。次のように、map_canvas の div の直後に配置する必要があります。

<body onload="initialize()"> 
<div id="map_canvas" style="width:100%; height:100%"></div>
<div id="pano" style="position:absolute; left:410px; top: 8px; width: 400px; height: 300px;"></div> 
</body>

また、Google マップの api スクリプト タグを含むヘッダーに API キーを必ず含めてください。


2 番目の質問については、さまざまな方法でこれを行うことができます。最も簡単なのは、入力テキスト フィールドを使用し、jquery の .val() 関数を使用してテキスト フィールドの値を取得することです。次に、値をジオコーダに渡して検索を実行します。

役立つリソース:

https://developers.google.com/maps/documentation/javascript/geocoding

http://api.jquery.com/val/

于 2012-06-01T16:10:09.317 に答える
1

最初に StreetView を初期化する必要があります (マップの代わりに、またはマップにバインド)。セットアップについては、StreetView のドキュメント (https://developers.google.com/maps/documentation/javascript/streetview) を参照してください。住所を検索するには、Google の Geocode サービスを使用する必要があります。このドキュメント (https://developers.google.com/maps/documentation/javascript/geocoding) は、住所の簡単な検索を設定するのに役立ちますが、検索をレンダリングするように少し調整する必要があります。ストリートビューマップ。基本的に、次のように変更する必要があります。

geocoder.geocode( { 'address': address}, function(results, status) {
 if (status == google.maps.GeocoderStatus.OK) {
  map.setCenter(results[0].geometry.location);
 }

map.setCenter の代わりに、位置を panorama.setPosition(results[0].geometry.location); に設定する必要があります。

ストリートビューの視点は、常に目的の建物を指すように配置されているとは限らないことに注意してください.Googleには、検索している建物/場所が通りのどちら側にあるかを正確に伝える方法はないと思います.なれ。

それが役立つことを願っています。

于 2012-05-27T14:40:45.967 に答える