我正在尝试使我的地理位置应用程序正常工作,经过大量验证和console.log()函数之后,一切都应该有效。我的问题是它实际上没有用。我只有灰色背景而不是我想要的街景。
以下是代码:
StreetView: function (latitude, longitude) {
$('#streetview').css({'width': $(window).width(), 'height': $(window).height()});
var lookTo = {lat: parseFloat(latitude), lng: parseFloat(longitude)};
var latlong = new google.maps.LatLng(parseFloat(latitude), parseFloat(longitude));
var panoOptions = {
position: lookTo,
panControl: false,
addressControl: false,
linksControl: false,
zoomControlOptions: false
};
// initialize a new panorama API object and point to the element with ID streetview as container
var pano = new google.maps.StreetViewPanorama(document.getElementById('streetview'), panoOptions);
// initialize a new streetviewService object
var service = new google.maps.StreetViewService;
// call the "getPanoramaByLocation" function of the Streetview Services to return the closest streetview position for the entered coordinates
console.log('Pano Positon :'+ pano.getPosition());
service.getPanoramaByLocation(pano.getPosition(), 50, function (panoData) {
// if the function returned a result
if (panoData != null) {
// the GPS coordinates of the streetview camera position
var panoCenter = panoData.location.latLng;
console.log('PanoCenter' + panoCenter);
// the "computeHeading" function calculates the heading with the two GPS coordinates entered as parameters
var heading = google.maps.geometry.spherical.computeHeading(panoCenter, latlong);
console.log('Heading : '+ heading);
// now we know the heading (camera direction, elevation, zoom, etc) set this as parameters to the panorama object
var pov = pano.getPov();
pov.heading = heading;
pano.setPov(pov);
// set a marker on the location we are looking at, to verify the calculations were correct
var marker = new google.maps.Marker({
map: pano,
position: lookTo
});
} else {
// no streetview found
console.log('not found');
}
});
}
我复制了一些我发现的关于Google API的代码,并且有评论。所以它应该是可读的。 如果有人有想法......
答案 0 :(得分:0)
尝试设置缩放参数。如果这不起作用,请注意版本3.20,3.21,3.22不再可用,如forum中所述。检查此documentation。如果您的浏览器是Internet Explorer,请确保使用supported version并且不要使用兼容模式。
检查以下相关问题:
使用
google.maps.StreetViewService.getPanoramaByLocation()
确定是否有适用于指定位置的全景图。
希望这有帮助!
答案 1 :(得分:0)
感谢您的回答。
实际上,我发现了什么是错的。我没有安装Whitelist插件。
因此,行<access origin='*' />
未被解释。
在通过$ .getScript获取Google Api脚本后,我正在调用此函数(StreetView函数)。
从未调用Ajax调用,因为不接受跨域请求。