<a:form> <a:growl id="messages" showDetail="true" life="2000" /> <a:gmap id="gmap" center="41.381542, 2.122893" zoom="15" type="ROADMAP" style="width:100%;height:400px"> <a:ajax event="stateChange" listener="#{eventView.onStateChange}" update="messages" /> <a:ajax event="pointSelect" listener="#{eventView.onPointSelect}" update="messages" /> </a:gmap> </a:form>
package com.jarch.showcase.view.data.gmap; import java.io.Serializable; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.context.FacesContext; import org.primefaces.event.map.PointSelectEvent; import org.primefaces.event.map.StateChangeEvent; import org.primefaces.model.map.LatLng; import org.primefaces.model.map.LatLngBounds; @ManagedBean public class EventView implements Serializable { public void onStateChange(StateChangeEvent event) { LatLngBounds bounds = event.getBounds(); int zoomLevel = event.getZoomLevel(); addMessage(new FacesMessage(FacesMessage.SEVERITY_INFO, "Zoom Level", String.valueOf(zoomLevel))); addMessage(new FacesMessage(FacesMessage.SEVERITY_INFO, "Center", event.getCenter().toString())); addMessage(new FacesMessage(FacesMessage.SEVERITY_INFO, "NorthEast", bounds.getNorthEast().toString())); addMessage(new FacesMessage(FacesMessage.SEVERITY_INFO, "SouthWest", bounds.getSouthWest().toString())); } public void onPointSelect(PointSelectEvent event) { LatLng latlng = event.getLatLng(); addMessage(new FacesMessage(FacesMessage.SEVERITY_INFO, "Point Selected", "Lat:" + latlng.getLat() + ", Lng:" + latlng.getLng())); } public void addMessage(FacesMessage message) { FacesContext.getCurrentInstance().addMessage(null, message); } }