2012-02-08 65 views
0

目标:获取TEXT地址,然后在同一时间显示的街道视图和地图视图如何改变街景在谷歌地图3

参考网站:

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

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

问题:我能够正确显示地图和地址,但instreet视图不会改变。任何想法为什么?

我的JS变量的地址在此情况下按住文本地址“323235巴尔莫勒尔露台希顿泰恩河畔纽卡斯尔”

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


); 


} 

回答

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

更新:,你可以直接从现有的代码中调用这个函数(我已经修改为使用经纬度,而不是功能各个纬度和经度值:

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

你是如何得到intLat,intLong问题?做ü拥有该 – 2012-02-09 19:15:17

+0

代码,你可以只使用你的“芬威”经纬度? – duncan 2012-02-10 09:06:38

+0

可惜没因为我需要一个文本字符串,然后获得地理编码geocoderTwo.geocode({“地址”:地址},功能(结果状态) – 2012-02-10 13:26:17

0

有你的代码一对夫妇的问题。首先解决这些问题:

64 Uncaught ReferenceError: berkeley is not defined 

此外,你需要设置你的Map之前任何一个节目和zoom选项mapTypeId

+0

在我看来就像他已经得到了变焦的mapTypeId他的MapOptions – duncan 2012-02-09 09:00:40

+0

的问题是,当页面loads.I删除街景视图不更新。上的代码,按您的 – 2012-02-09 19:13:57