Я пытаюсь получить долготу и широту, где я щелкаю мышью на карте Google.Как я могу это сделать?
Я использовал EventView Primefaces, который я рекомендую в соответствии с моим проектом, и вызвал его метод со страницы JSF
Моя страница xhtml
<h:form>
<p:inputText value="#{userAddPlaceBean.place.placeName}" id="name">Place Name </p:inputText>
<p:inputText value="#{userAddPlaceBean.place.lng}" id="lng"> Longitude </p:inputText>
<p:inputText value="#{userAddPlaceBean.place.lat}" id="lat"> Latitude </p:inputText>
<p:commandButton action="#{userAddPlaceBean.addPlace()}" value="Add Place"></p:commandButton>
<p:gmap id="gmap" center="41, 29" zoom="8" type="ROADMAP" style="width:100%;height:400px">
<p:ajax event="pointSelect" listener="#{eventView.onPointSelect}" update="lng, lat" />
</p:gmap>
</h:form>
MyКласс EventView:
@ManagedBean
@ViewScoped
public class EventView {
private double lat=0;
private double lng=0;
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();
this.lat = latlng.getLat();
this.lng= latlng.getLng();
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Point Selected", "Lat:" + latlng.getLat() + ", Lng:" + latlng.getLng()));
}
public void addMessage(FacesMessage message) {
FacesContext.getCurrentInstance().addMessage(null, message);
}
public double getLat() {
return lat;
}
public void setLat(double lat) {
this.lat = lat;
}
public double getLng() {
return lng;
}
public void setLng(double lng) {
this.lng = lng;
}
В результате, когда я нажимаю на название текстового поля карты, долгота и широта увеличиваются как долгота-долгота-долгота ...
Страница результата: