我有一个JSF2 .xhtml页面,其中包含一个复合组件,其中包含一个主要的p:gmap组件。 我正在尝试创建一个javascript侦听器,它将从谷歌地图控件捕获缩放事件。 通过添加以下javascript侦听器,我可以在地图不在复合组件中时执行此操作:
function initialize() {
var mapOptions = {
tilt: 0,
panControl: false
};
google.maps.event.addListener( gmap.getMap(), 'zoom_changed', function() {
alert('zoom_changed');
var zoom = gmap.getMap().getZoom();
var mapZoomUpdate = document.getElementById('mapZoomUpdate');
mapZoomUpdate.value = ''+zoom;
changeMapZoomBtn.click();
});
}
google.maps.event.addDomListener(window, 'load', initialize);
在这种情况下,“gmap”是主要的gmap组件ID。
但是,当它在复合组件中时,我无法引用gmap组件。 我知道我需要添加复合组件id作为引用的一部分,但我不知道正确的语法。
组件本身位于名为“formCenter”的表单中,prependId =“false”。 当我查看页面代码时,我看到对gmap组件的引用是: ID = “eventTransactionsMapComp:GMAP”
我为addListener引用尝试了以下操作,但没有运气:
google.maps.event.addListener( eventTransactionsMapComp.gmap.getMap(),'zoom_changed',function(){
google.maps.event.addListener( formCenter.eventTransactionsMapComp.gmap.getMap(),'zoom_changed',function(){
我想我可能需要使用以下类型的引用来获取组件ID:
google.maps.event.addListener( document.getElementById('formCenter:eventTransactionsMapComp:gmap')。getMap(),'zoom_changed',function(){
但这也不起作用。
在添加监听器时,任何人都可以帮助我使用正确的语法来引用gmap组件吗?
由于
答案 0 :(得分:0)
function findMe(){
navigator.geolocation.getCurrentPosition(
function(position) {
var map = gmap.getMap(),
latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
map.setCenter(latlng);
var marker = new google.maps.Marker({
position: latlng
});
marker.setMap(map);
},
function(error) {
alert(error.message);
},
{
enableHighAccuracy: true
});
}
我希望你有用!!
Lobotex