我有一张校园区的街景地图。我可以使用getCustomLinks创建的链接在这些区域中导航。但我现在已经坚持了一段时间:有没有办法通过选择组件在自定义街景全景图之间进行更改?我希望能够使用箭头在校园区域内导航,同时也能够跳转到选择组件中的任何全景图。箭头完美无缺。到目前为止,我已设法更改全景图
我的选择框
<select onChange="onChange()" id="hamk_select" width="1000px">
<option value="b_talo_piha">HAMK Visamäki</option>
<option value="kirjasto">Kirjasto</option>
<option value="c_talo_auditorio">Auditorio</option>
</select>
的onChange() - 功能
function test(){
d = document.getElementById("hamk_select").value;
var panoOptions = {
pano: d,
visible: true,
panoProvider: getCustomPanorama,
scrollwheel: true,
enableCloseButton: false,
centerHeading: 270,
disableDoubleClickZoom: true,
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL
},
pov: {
heading: 130,
pitch: 0
},
clickToGo: false,
imageDateControl: false,
panControl: false
};
panorama = new google.maps.StreetViewPanorama(document.getElementById('map_canvas'),panoOptions);
现在我无法创建正确的链接。在初始化方法中,类似于example at the documentation,eventListener被添加到&#39; links_changed&#39;事件和&#39; result.location.pano&#39;用于创建链接。
streetviewService = new google.maps.StreetViewService();
var radius = 50;
streetviewService.getPanoramaByLocation(THE_ENTRY_LOCATION, radius,
function(result, status) {
if (status == google.maps.StreetViewStatus.OK) {
google.maps.event.addListener(panorama, 'links_changed',
function() {
createCustomLinks(result.location.pano);
});
}
});
我认为我应该使用get StreetViewService's getPanoramaById-method而不是getPanoramaByLocation。我试过这个,但是GET失败了(状态= UNKNOWN_ERROR,JavaScript控制台说:标题中没有找到404,所以显然有些东西不起作用。)
streetviewService.getPanoramaById(panorama.getPano(),
function(result, status) {
if (status == google.maps.StreetViewStatus.OK) {
createCustomLinks(result.location.pano);
}
});
调用createCustomLinks(d)也没有帮助,因为没有定义var链接。任何想法如何正确地做到这一点?
答案 0 :(得分:1)
解决方案非常简单:只更改全景值并将其用作panorama.setOptions值以触发原始的“links_changed”事件。
function onChange(){
d = document.getElementById("hamk_select").value;
var panoOptions =
{
pano: d,
};
panorama.setOptions(panoOptions);
}