我在OpenLayers 3網絡地圖上有一個按鈕,點擊後會激活一個函數,在用戶單擊地圖時返回div中的Google街景視圖圖像。如果div在OpenLayers中關閉,則刪除'singleclick'地圖事件3
這工作正常,但我想要做的是關閉div時關閉地圖點擊功能。
目前我有:
$("#street-view").click(function() {
map.on('singleclick', function(evt) {
var coord = evt.coordinate;
var x = coord[0];
var y = coord[1];
var os1w = new OSRef(x, y);
var coordres = os1w.toLatLng(os1w);
coordres.OSGB36ToWGS84();
xResult = coordres.toLatString();
yResult = coordres.toLngString();
var sv = new google.maps.StreetViewService();
panorama = new google.maps.StreetViewPanorama(document.getElementById('street-view-image'));
var googleCoord = new google.maps.LatLng(xResult,yResult);
sv.getPanorama({location: googleCoord, radius: 20}, getStreetViewImage);
});
});
function getStreetViewImage(data, status) {
if (status === google.maps.StreetViewStatus.OK) {
panorama.setPano(data.location.pano);
panorama.setPov({
heading: 0,
pitch: 0
});
$('#street-view-pane').fadeIn("slow");
panorama.setVisible(true);
} else {
$("#street-view-image").html("Sorry! No Street View images are available at this location.");
}
}
$("#close-street-view").click(function(evt) {
$('#street-view-pane').fadeOut("slow");
});
我試圖創建一個if語句內的for循環,也就是說,當環路大於0,DIV是開放的,然後運行該代碼(所以如果該div沒有顯示,然後什麼都不做) - 但這是行不通的。
一旦div關閉,是否有簡單的方法來停止singleclick事件?我有一個singleclick事件,可以識別地圖上在頁面加載時啓用的功能,因此我無法禁用所有singleclick功能。
感謝
這樣做的工作,謝謝Alvin! – Chris