2015-01-06 5 views
1

확대/축소가 변경 될 때마다 서버 측지도에 일부 다각형을 그립니다. 이것은 잘 작동합니다!Primefaces p : remoteCommand update가 Google지도 청취자를 지움

내 문제는 p : remoteCommand에서 "업데이트"를 호출하면 처음 실행 후 내 리스너 "zoom_changed"가 삭제된다는 것입니다. "업데이트"를 제거하면 'zoom_change'리스너가 정상적으로 작동하지만지도가 업데이트되지 않고 페이지가 새로 고침 된 경우에만 폴리곤이 표시되지 않습니다.

두 가지를 함께 사용하려면 어떻게해야합니까?

내가 사용하고 primefaces 5.1

$(document).ready(function() { 
    google.maps.event.addDomListener(window, 'load', initialize); 
}); 

function initialize() 
{ 
    google.maps.event.addListener(PF('map').getMap(), 'zoom_changed', function() { 
     var map = PF('map').getMap(); 

     var center = map.getCenter(); 
     var zoom = map.getZoom(); 

     myRemoteBoundsChange([{name: 'zoom', value: zoom}, {name: 'center', value: center}]); 
    }); 
} 
<body> 
    <p:remoteCommand name="myRemoteBoundsChange" 
     actionListener="#{MB.drawPolygon}" update="map"/> 

    <div id="divmap"> 
     <p:gmap id="map" model="#{MB.mapa}" center="#{MB.centroMapa}" zoom="#{MB.zoom}" 
       fitBounds="false" type="ROADMAP" widgetVar="map" /> 
    </div> 
</body> 

답변

1

는에 remoteCommand 변경 : 원격 명령이 실행되고 업데이트가 된 후 다시 추가

<p:remoteCommand name="myRemoteBoundsChange" actionListener="#{MB.drawPolygon}" 
    update="map" oncomplete="initialize()"/> 

을 실행하고 <body>을으로 변경하십시오.210

+0

안녕하세요! 귀하의 답변에 감사드립니다. 사실이 방법을 시도했지만 작동하지 않았습니다. 그건 그렇고 .. 클라이언트 측을 통해 폴리곤을 그려보기로했습니다. –

관련 문제