目标:获取文本地址,然后同时显示街道视图和地图视图
参考网站:
http://code.google.com/apis/maps/documentation/javascript/examples/streetview-simple.html
我的网站:http://www.iamvishal.com/dev/property/P2154 (请点击地图视图查看地图)
问题:我能够正确地显示地图和地址,但是instreet视图不会改变。知道为什么吗?
我的js变量地址持有文本地址--在本例中为"323235 Balmoral Terrace 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);
}
}
);
}发布于 2012-02-09 09:07:32
下面是我以前创建街景的方法:
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);
}发布于 2012-02-08 21:31:55
您的代码有几个问题。首先修复它们:
64 Uncaught ReferenceError: berkeley is not defined此外,在显示任何内容之前,您还需要在zoom和mapTypeId选项上设置Map。
https://stackoverflow.com/questions/9200692
复制相似问题