2017-02-04 7 views
0

Я хочу получить широту и долготу точки, созданной службой геокодирования, с использованием геодезических полей и я застрял. Однако, когда я пытаюсь получить эти координаты из бэкбона, я получаю значения 0.0.Графический интерфейс с геодезическими полями 0.0, 0.0 gps от бэкбона

Как я могу получить к ним доступ со временем, когда у них есть правильные значения (сразу после входа в консоль), а не нули?

Обратите внимание, что я новичок в Spring и PF.

Вот мой primefaces переднего конца, где я хочу, чтобы получить доступ к резервному класса боба соответствующих переменных значений:

<script type="text/javascript"> 
    function geocode() { 
     PF('geoMap').geocode(document.getElementById('address').value); 
    } 
</script> 

<h:form prependId="false"> 
    <h3 style="margin-top:0">Geocode</h3> 
    <h:panelGrid columns="3" style="margin-bottom:10px" cellpadding="5"> 
     <p:outputLabel for="address" value="Address:" /> 
     <p:inputText id="address" /> 
     <p:commandButton value="Geocode" icon="ui-icon-search" onclick="geocode()" type="button" /> 
    </h:panelGrid> 

    <p:gmap id="geoGmap" widgetVar="geoMap" center="#{geocodeView.centerGeoMap}" zoom="2" type="ROADMAP" model="#{geocodeView.geoModel}" style="width:100%;height:400px"> 
     <p:ajax event="geocode" listener="#{geocodeView.onGeocode}" update="@this" /> 
    </p:gmap> 

    <!-- Here for example I want to show this values --> 
    <p:commandButton value="Show values" action="" update="display" oncomplete="PF('dlg').show()" /> 

    <p:dialog header="Value" modal="true" resizable="false" showEffect="fade" widgetVar="dlg"> 
     <h:panelGrid columns="1" id="display"> 
      <h:outputText value="Latitude: #{geocodeView.latitude}" /> 
      <h:outputText value="Longitude: #{geocodeView.longitude}" /> 
     </h:panelGrid> 
    </p:dialog> 
</h:form> 

и противни класса бин:

import java.util.List; 
import javax.annotation.PostConstruct; 
import javax.faces.bean.ManagedBean; 
import org.primefaces.event.map.GeocodeEvent; 
import org.primefaces.model.map.DefaultMapModel; 
import org.primefaces.model.map.GeocodeResult; 
import org.primefaces.model.map.LatLng; 
import org.primefaces.model.map.MapModel; 
import org.primefaces.model.map.Marker; 

@ManagedBean 
public class GeocodeView { 

private MapModel geoModel; 
private String centerGeoMap = "41.850033, -87.6500523"; 
private double latitude; 
private double longitude; 

@PostConstruct 
public void init() { 
    geoModel = new DefaultMapModel(); 
} 

public void onGeocode(GeocodeEvent event) { 
    List<GeocodeResult> results = event.getResults(); 

    if (results != null && !results.isEmpty()) { 
     LatLng center = results.get(0).getLatLng(); 
     centerGeoMap = center.getLat() + "," + center.getLng(); 

     for (int i = 0; i < results.size(); i++) { 
      GeocodeResult result = results.get(i); 
      Marker currentMarker = new Marker(result.getLatLng(), result.getAddress()); 
      geoModel.addOverlay(currentMarker); 

      // Here are problematic values 
      latitude = currentMarker.getLatlng().getLat(); 
      longitude = currentMarker.getLatlng().getLng(); 

      System.out.println(latitude); 
      System.out.println(longitude); 
      } 
     } 
    } 

    public MapModel getGeoModel() { 
     return geoModel; 
    } 

    public String getCenterGeoMap() { 
     return centerGeoMap; 
    } 

    public double getLatitude() { 
     return latitude; 
    } 

    public void setLatitude(double latitude) { 
     this.latitude = latitude; 
    } 

    public double getLongitude() { 
     return longitude; 
    } 

    public void setLongitude(double longitude) { 
     this.longitude = longitude; 
    } 
} 
+0

Попробуйте @ViewScoped на bean (один из пакета с «bean» в нем) –

+0

Работал! Большое спасибо. Таким образом, это был жизненный цикл bean ... –

+0

Да - я думаю, что по умолчанию RequestScoped, так что вы получите новое все время. Попробуйте - поставьте System.out в init() –

ответ

0

добавить сеттер Geomodel в бэк-бэк.

+0

Добавлено, но все еще не работает –

Смежные вопросы