如何更改谷歌地图中的街景3

时间:2012-02-08 20:14:16

标签: google-maps google-maps-api-3

目标:获取 TEXT 地址,然后同时显示街景和地图视图

参考网站:

http://code.google.com/apis/maps/documentation/javascript/examples/streetview-simple.html

我的网站: http://www.iamvishal.com/dev/property/P2154(请点击地图视图查看地图)

问题:我能够正确显示地图和地址,但instreet视图不会改变。知道为什么吗?

我的js变量地址在这种情况下保留文本地址“323235 Balmoral Terrace Heaton Newcastle Upon Tyne”

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);

var geocoderTwo = new google.maps.Geocoder();

geocoderTwo.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);
}
}


);


}

2 个答案:

答案 0 :(得分:0)

您的代码存在一些问题。先修复它们:

64 Uncaught ReferenceError: berkeley is not defined

此外,在显示任何内容之前,您需要在zoom上设置mapTypeIdMap个选项。

答案 1 :(得分:0)

以下是我之前创建街景的方式:

function createStreetMap(strMapCanvasID, yourLatLng)
{
    var panorama;

    //once the document is loaded, see if google has a streetview image within 50 meters of the given location, and load that panorama
    var sv = new google.maps.StreetViewService();

    sv.getPanoramaByLocation(yourLatLng, 50, function(data, status) {
        if (status == 'OK') {
            //google has a streetview image for this location, so attach it to the streetview div
            var panoramaOptions = {
                pano: data.location.pano,
                addressControl: false,
                navigationControl: true,
                navigationControlOptions: {
                    style: google.maps.NavigationControlStyle.SMALL
                }
            }; 
            var panorama = new google.maps.StreetViewPanorama(document.getElementById(strMapCanvasID), panoramaOptions);


            // lets try and hide the pegman control from the normal map, if we're displaying a seperate streetview map
            objCreatedMap.setOptions({
                streetViewControl: false
            });
        }
        else{
            //no google streetview image for this location, so hide the streetview div
            $('#' + strMapCanvasID).parent().hide();
        }
    });
}

更新,您可以直接在现有代码中调用此函数(我修改了函数以使用LatLng而不是单独的纬度和经度值:

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
      });

      createStreetMap('yourStreetViewDiv', results[0].geometry.location);
   }