0

GMap을 마우스 오른쪽 버튼으로 클릭하면 시작할 프라임 컨텍스트 메뉴를 만드는 방법을 아는 사람이 있습니까?GMap의 ContextMenu primefaces 구성 요소

일반적으로 코드는 다음과 같아야합니다

<p:gmap id="gmapElement" widgetVar="gmtls" center="41.381542, 2.122893" zoom="15" type="hybrid" styleClass="mapClass"/> 
<p:contextMenu for="gmapElement" > 
    <p:menuitem value="Method A" onclick="method1()" /> 
    <p:menuitem value="Method B" onclick="method2()" /> 
</p:contextMenu> 

그러나, 구글 API를 마우스 오른쪽 버튼으로 클릭 이벤트를 무시합니다. 나는 그것을 처리하는 가장 좋은 방법은 Google지도에서 추가 수신기라고 생각합니다. 하지만 문맥 메뉴를 프로그래밍 방식으로 표시하는 방법에 대한 정보는 찾을 수 없습니다.

var mapComponent = gmtls.getMap(); 
google.maps.event.addListener(mapComponent, 'rightclick', function(mouseEvent) { 
    //show context menu at coordinates: mouseEvent.latLng 
}); 

누군가 내가 청취자 본문에 무엇을 넣어야한다고 말할 수 있습니까?

+1

이를 :

var mapComponent = gmtls.getMap(); google.maps.event.addListener(mapComponent, 'rightclick', function(mouseEvent) { $(PrimeFaces.escapeClientId('mainForm:contextMenu')).css({ top: yPos+'px', left: xPos+'px' }).show(); }); 

좌표를 얻을 수있는 가장 쉬운 방법 (Y 좌표를 X 좌표는) MouseMove 이벤트에서 수신 jQuery를 사용하는 것입니다 당신을 도울 수 있습니다 : http://stackoverflow.com/a/16446515/1834700 –

+0

Thx, 이것은 매우 도움이되었다 :) – gawi

+0

당신은 환영합니다 :) –

답변

0

그래서 여기에 내가 원하는 답변이 있습니다. 구글지도 API에서 GMAP 구성 요소 추가 리스너의 초기화 동안 등록해야합니다 :

var xPos = 0; 
var yPos = 0; 
jQuery(document).ready(function(){ 
    $(document).mousemove(function(e){ 
     xPos = e.pageX; 
     yPos = e.pageY; 
    }); 
}) 
관련 문제